Skip to main content

ReqCheck MCP server

Finds ambiguous terms in a requirements document, checked against ISO/IEC/IEEE 29148:2018, and hands the client the question templates needed to ask the author what they actually meant.

Detection is deterministic — regex over a versioned rule catalog, no model involved — so the same text always produces the same findings, and every finding cites the clause it came from.

Part of ReqCheck, which also ships a web app for the same checks.

What it exposes

Kind Name Purpose
Tool ambiguity_analysis(text) Every flagged term with its statement, severity, explanation, ISO citation, and question templates
Resource reqcheck://knowledge-base The full rule catalog as authored, with citations
Prompt check_requirements(text) Analyses a document and reports findings in a fixed format

Install from PyPI

Once published, nothing needs cloning.

Claude Code:

claude mcp add reqcheck -- uvx mcp-reqcheck

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "ReqCheck": { "command": "uvx", "args": ["mcp-reqcheck"] }
  }
}

Then restart Desktop.

Install from source

1. Install uv (skip if you already have it):

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Get the code:

git clone https://github.com/hjchen114514/ReqCheck.git
cd ReqCheck/apps/mcp_reqCheck

3a. Claude Desktop:

uv run mcp install src/mcp_reqcheck/server.py --with PyYAML

Restart Desktop. ReqCheck should show green under Settings → Developer.

3b. Claude Code — needs the absolute path. Print it from this folder:

pwd
# /Users/you/ReqCheck/apps/mcp_reqCheck
claude mcp add reqcheck -- uv run --with "mcp[cli]" --with PyYAML mcp run <paste-path>/src/mcp_reqcheck/server.py

Check it with claude mcp list.

--with PyYAML is required when running from source. The client launches the server from its own working directory, so uv never reads this project's pyproject.toml and builds an environment from the --with flags alone. Without it the catalog loader fails on import yaml and the client reports "Server disconnected". Installed users don't need it — uvx resolves declared dependencies.

Use it

Ask your client something like:

Check these requirements for ambiguity: The system shall be user-friendly and load significantly faster than the old site.

It calls ambiguity_analysis, gets back the flagged terms with their reasons and citations, and asks you follow-up questions rather than rewriting your requirement for you.

Develop

uv run mcp dev src/mcp_reqcheck/server.py

Opens the MCP Inspector, where you can call the tool, read the resource, and render the prompt without a client.

Layout

server.py holds the records, the rule catalog, the analyser, and the MCP surface in one module, with ambiguity_rules.yaml beside it. That is deliberate: a client may load the file directly (mcp run server.py, with no package around it) or run the installed console script (uvx mcp-reqcheck, with one), and imports between sibling files resolve differently in those two cases. Importing nothing of its own makes both behave identically.

Two details in that file must stay as they are, or the file-based launch breaks:

  • no from __future__ import annotations — it turns annotations into strings, which dataclasses resolves through sys.modules[cls.__module__], and that is None for a directly-loaded file
  • Pattern[str], not re.Pattern[str] — same reason

The catalog and analyser are copied from apps/api. Rule changes made there need copying here too.

Publishing

uv build
uv publish --index testpypi     # sandbox first
uv publish                      # then the real index

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_reqcheck-0.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_reqcheck-0.1.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file mcp_reqcheck-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_reqcheck-0.1.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_reqcheck-0.1.0.tar.gz
Algorithm Hash digest
SHA256 56e51cc1a1137910d6d7619f8936b1f19c9c0010b645c6878f19ea8196bd9e42
MD5 fa5a321753eb04992f1d499d306bdce4
BLAKE2b-256 fa94d3f01bec4533dc4beea9c4e26a37c35d399ffdcfdb5c3576352d7a73f58b

See more details on using hashes here.

File details

Details for the file mcp_reqcheck-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_reqcheck-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_reqcheck-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0fcd3239c916881d2e568ca1aa100d99984f170fce1e6b2178656dc5d9e36169
MD5 b0d6edce52f7d7f1245ce08cda843c15
BLAKE2b-256 00b2c3b371405b9d0305743c4f68b73804a4413059e2d6d968ff1bce3058dbcf

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page