Architecture Drift MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Architecture Drift MCPcheck if API docs match current implementation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
English | 한국어
Architecture Drift MCP
Compare evidence-linked documentation claims with facts observed in the current source tree. The server keeps extraction, deterministic comparison, model adjudication, and patch proposals separate so an uncited guess cannot become confirmed architecture drift.
flowchart LR
A[Discover bounded sources] --> B[Cited documentation claims]
A --> C[Cited implementation facts]
B --> D[Deterministic comparison]
C --> D
D --> E{Evidence strength}
E --> F[Aligned]
E --> G[Suspected or unknown]
E --> H[Evidence-bound adjudication]
H --> I[Review-only patch proposal]Highlights
Bounded inventory of documentation, manifests, configuration, specifications, and source files
Deterministic command, environment, endpoint, dependency, and service extraction
Host-model claim extraction with exact path and line-range validation
Fresh source hashes that reject mixed old/new citations
Exact semantic alignment plus conservative
suspectedandunknownstatesConfirmed model adjudication restricted to known claim and fact IDs
Review-only documentation replacements that never write into the audited project
Redacted Markdown and JSON reports outside the project tree
Related MCP server: docs-assistant-mcp
Install
uv tool install "git+https://github.com/efficjump/architecture-drift-mcp.git"
architecture-drift-mcp --transport stdioFor source development:
git clone https://github.com/efficjump/architecture-drift-mcp.git
cd architecture-drift-mcp
uv sync --all-extras --locked
uv run architecture-drift-mcp --transport stdioGeneric MCP client configuration
{
"mcpServers": {
"architecture-drift": {
"command": "architecture-drift-mcp",
"args": ["--transport", "stdio"]
}
}
}The installed command keeps local checkout paths out of client configuration.
Tool workflow
Stage | Tools |
Audit state |
|
Discovery |
|
Evidence |
|
Decision |
|
Output |
|
Deterministic absence never becomes confirmed drift. A confirmed adjudication requires known
implementation fact IDs, while unsupported extractor coverage remains unknown.
Safety model
Project roots must remain inside
ARCH_DRIFT_ALLOWED_ROOTS.Symlinks, binary files, and over-limit sources are excluded from extraction.
Sources are hash-checked again before citation or fact extraction.
Sampled content is redacted and every returned citation is validated against source lines.
Patch proposals are persisted externally and never applied by this server.
The path boundary is not an operating-system sandbox. Audit untrusted projects in isolation.
Streamable HTTP
architecture-drift-mcp --transport streamable-http --host 127.0.0.1 --port 8768The default endpoint is http://127.0.0.1:8768/mcp.
Development
uv sync --all-extras --locked
uv run ruff format --check .
uv run ruff check .
uv run mypy src
uv run pytest --cov --cov-report=term-missing
uv buildSee architecture, security policy, and contribution guide.
License
Available Tools
10 toolsadjudicate_driftB
Ask the host model to adjudicate drift using only cited, known claim and fact IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the behavioral note that it invokes the host model and restricts to cited IDs, which goes beyond the bare readOnlyHint/destructiveHint flags. However, it doesn't disclose whether this operation is expensive, whether it mutates state, or what kind of response is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and includes a relevant constraint. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation and the constraint, and the output schema handles the return format. However, it omits usage context (when to adjudicate vs. other drift operations), which reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter audit_id is fully described in the schema as an identifier returned by create_audit. The tool description adds no additional semantic detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: asking the host model to adjudicate drift, with the specific constraint of using only cited claim and fact IDs. This distinguishes it from sibling tools like compare_drift and build_drift_report, though not explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to select this tool over alternatives such as compare_drift or build_drift_report. It neither states prerequisites nor exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_drift_reportA
Write a redacted Markdown and JSON report in the external audit state directory.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false, which are consistent with "Write". The description adds valuable behavioral context: the report is redacted and written to an external audit state directory. It does not mention overwrite behavior or permissions, but given the annotations, these are less critical; the added context goes beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action, and contains no superfluous words. It is exceptionally concise while still conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, an output schema, and sibling context, the description sufficiently covers the essentials: it states the output format, redaction, and destination. It would benefit from mentioning any state requirements (e.g., audit must exist), but the overall picture is clear for a simple write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the only parameter, audit_id, is documented as "Identifier returned by create_audit." The tool description adds no further parameter-specific meaning, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb "Write" and names the resource: a redacted Markdown and JSON report in the external audit state directory. This clearly identifies the tool's output artifact and distinguishes it from sibling tools like get_audit or create_audit, which deal with audit objects themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It is implied from the name and sibling tools that this is for generating a final report after drift comparison, but no explicit context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_driftC
Compare normalized claims and facts; absence remains suspected or unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=false, but the description does not elaborate on side effects, return behavior, or what 'absence remains suspected or unknown' means operationally. It does not contradict the annotations, but it also adds minimal behavioral context beyond what the annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, brief sentence that is easy to parse and front-loads the core action. However, the second clause ('absence remains suspected or unknown') is vague and could be more precise without adding length. Overall it earns its place but sacrifices clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, but the tool's role in the broader workflow is not articulated. Given the large sibling set (create_audit, extract_claims, adjudicate_drift, etc.), there is no statement about when compare_drift should be invoked or how the 'absence' concept fits into the drift detection flow. The description is too sparse for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter 'audit_id', with a clear description ('Identifier returned by create_audit'). The tool description adds no additional meaning about the parameters, so the schema does the heavy lifting. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare') and resource ('normalized claims and facts'), which distinguishes it from sibling tools like 'extract_claims' and 'extract_facts' that are about extraction, and 'adjudicate_drift' that implies decision-making. However, the phrase 'absence remains suspected or unknown' is cryptic and does not clearly explain the tool's exact output or role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites like having an existing audit or extracted data. The workflow position is only implied by the tool name and the 'audit_id' parameter being returned by 'create_audit', but no direct comparison with siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_auditC
Create a bounded audit and persist its redacted architecture objective.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable audit name. | |
| objective | Yes | Architecture questions and constraints for this audit. | |
| project_root | Yes | Local project directory inside ARCH_DRIFT_ALLOWED_ROOTS. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-destructive write operation. The description adds 'bounded' and 'redacted' but does not explain what these entail, such as whether the objective is stored in a modified form or what side effects occur. For a mutation tool, this lacks necessary behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a clear subject-verb-object structure. It is concise and front-loaded, but the use of jargon ('bounded', 'redacted') makes it less immediately accessible, preventing a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and basic parameter descriptions, the description fails to explain key domain terms, the purpose of an audit, or how this tool fits into the sibling workflow. This leaves significant gaps for a tool with a central creation role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description (name, objective, project_root). The description does not add meaning beyond the schema, such as clarifying how 'objective' relates to 'redacted architecture objective'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Create' clearly identifies the action, and 'audit' is the resource. The phrase 'persist its redacted architecture objective' adds scope, distinguishing it from sibling read/analysis tools. However, terms like 'bounded' and 'redacted' are ambiguous and not explained, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or prerequisites. While it's implied one must create an audit before using analysis siblings, there is no explicit mention of workflow ordering or constraints like project_root validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_sourcesB
Refresh the bounded project inventory and invalidate derived stale records.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, and the description adds the behavioral trait of invalidating stale derived records. However, it does not disclose side effects, scope, or reversibility, so the added context is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. Both clauses add meaningful information, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and annotations, the description fails to explain the tool's role in the audit pipeline or the consequences of 'invalidating' records. This is a process-oriented tool with opaque side effects, so more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter audit_id is 100%, and the description adds nothing beyond the schema's 'Identifier returned by create_audit'. Per guidelines, baseline is 3 when schema covers parameters fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('refresh', 'invalidate') and resources ('bounded project inventory', 'derived stale records'), clearly indicating the tool's function. It is not a tautology and implies a distinct operation from sibling audit tools, though the jargon is not fully unpacked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool or how it relates to siblings. The schema mentions audit_id comes from create_audit, but the description itself provides no context or exclusions, leaving the agent to infer placement in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_claimsA
Extract claims and reject every host claim without a valid line citation.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. | |
| use_sampling | Yes | Ask the MCP host model for additional cited claims after deterministic extraction. | |
| selected_paths | Yes | Optional discovered documentation paths; omission analyzes every document. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a key behavioral trait (rejecting uncited claims) beyond the readOnlyHint/destructiveHint annotations. However, it does not explain side effects, permissions, or what happens to claims with valid citations, leaving gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action and includes a specific, non-redundant behavioral constraint. Every word earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations are minimal, so the description must provide context. It covers the core action and a key rule, but lacks workflow context (e.g., when to call relative to create_audit or extract_facts) and does not define terms like 'host claim' or 'valid line citation'. Adequate for a simple tool but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all three parameters (audit_id, selected_paths, use_sampling). The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extract claims') and resource, clearly stating the tool's function. However, it does not distinguish itself from the sibling tool 'extract_facts', which appears to be a similar resource-extraction operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The behavioral rule ('reject every host claim without a valid line citation') implies a quality-control use case, but the description does not explicitly state when to use this tool versus alternatives like 'extract_facts' or 'discover_sources'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_factsA
Extract current implementation facts from discovered non-documentation files.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, meaning the operation may have side effects, but the description only says 'Extract', which could imply a read-only action. It does not disclose that results may be stored or that an audit must exist (though the schema parameter does). It adds some useful context about the input source ('non-documentation files') but does not elaborate on write behavior or side effects, which is a moderate transparency level given the annotation bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and resource. Every word contributes meaning, with no redundant or filler content. It is highly concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and an output schema, the description is largely complete. It clarifies the source of input files ('discovered non-documentation files') and ties it to the audit context via the parameter schema. It could be improved by explicitly stating the relationship to 'discover_sources' and what happens with the extracted facts (e.g., stored in the audit), but the presence of an output schema reduces the need to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% because the only parameter, 'audit_id', is described as 'Identifier returned by create_audit.' This fully explains the parameter's meaning and origin. The tool description itself adds no additional parameter information, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extract') and clearly identifies the resource ('current implementation facts') and the source scope ('discovered non-documentation files'). It distinguishes itself from the sibling tool 'extract_claims' by explicitly targeting non-documentation files, which clearly differentiates the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from discovered non-documentation files' implies that this tool should be used after a discovery step, but it does not explicitly say when to use it compared to alternatives like 'extract_claims'. There is no explicit 'when-not' guidance or naming of alternative tools, so usage context is only implied, not fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auditBRead-only
Return the current source, claim, fact, comparison, and proposal snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the context that it returns the 'current' snapshot and enumerates the included components (source, claim, fact, comparison, proposal), which gives a preview of the response content. No contradiction exists, and the additional disclosure is modest but useful for setting expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the action ('Return') and the object (snapshot listing). There is no redundant information or filler, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single ID parameter) and the presence of an output schema that likely defines the snapshot structure, the description is sufficient to convey the core purpose. It communicates that the result is a snapshot of five named components, which is enough for an agent to decide invocation. It does not mention error conditions or edge cases, but the output schema and annotations cover the essential contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter audit_id, and the schema already states it is 'Identifier returned by create_audit'. The tool description itself adds no parameter-specific details, so it does not compensate beyond the schema. Baseline of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Return') and specifies the resource as the 'current source, claim, fact, comparison, and proposal snapshot' for an audit. This distinguishes it from sibling tools like list_audits, which would likely return a list of audit summaries rather than a detailed snapshot. However, it does not explicitly contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where another tool would be more appropriate. The only usage hint comes indirectly from the parameter schema ('Identifier returned by create_audit'), which implies it should be used after creating an audit, but this is not stated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_auditsARead-only
List persisted audits without reading their project trees.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds a meaningful behavioral trait—that project trees are not read—which implies efficiency and reduced scope beyond what annotations convey. This adds value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no filler. It front-loads the primary action and immediately provides a key qualifying detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with an output schema, explicit read-only annotations, and a clear behavioral qualifier, the description is fully adequate. The agent can confidently invoke this tool without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is trivially complete. The description does not need to explain parameters, and with schema coverage at 100%, baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('List persisted audits') and a specific scope ('without reading their project trees'), which distinguishes it from sibling tools like get_audit that likely read project trees. The verb+resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without reading their project trees' implies this is a lightweight listing alternative to more detailed retrieval, providing clear usage context. It does not explicitly name alternatives like get_audit, but the guidance is sufficient for an agent to choose this over heavier operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_doc_patchesA
Generate cited review-only document replacements without writing project files.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_id | Yes | Identifier returned by create_audit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it states the tool is 'review-only' and does not write project files. While annotations mark readOnlyHint=false, this likely refers to broader side effects (e.g., invoking generation), not file modification, so there is no contradiction. The non-destructive file behavior is explicitly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one succinct, front-loaded sentence that includes the core action, the deliverable's nature, and the critical non-destructive constraint. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, the presence of an output schema, and reasonable annotations, the description covers the essential context. It could mention the relationship to create_audit more explicitly, but the schema already does that. Overall, the tool is adequately specified for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage: audit_id is described as 'Identifier returned by create_audit.' The description adds no parameter-specific information, but with 100% schema coverage, the baseline of 3 is appropriate because the structured data carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate'), the object ('cited review-only document replacements'), and the key constraint ('without writing project files'). This distinguishes it from sibling tools that perform audits or build reports, making the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'review-only' and 'without writing project files' conveys when the tool is appropriate—when the agent wants to propose replacements without applying changes. It does not explicitly name alternative tools or state when not to use it, but the context is reasonably clear given the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.0- First observed
adjudicate_drift - First observed
build_drift_report - First observed
compare_drift - First observed
create_audit - First observed
discover_sources - First observed
extract_claims - First observed
extract_facts - First observed
get_audit - First observed
list_audits - First observed
propose_doc_patches
TDQS
Scored across 10 tools
Each tool has a clearly distinct responsibility, from audit lifecycle (create/list/get) to the analysis pipeline (discover/extract/compare/adjudicate) to output generation (propose/build). No two tools appear to perform overlapping actions, making misselection unlikely.
All tool names follow a consistent verb_noun pattern using snake_case, with specific verbs like create, list, get, discover, extract, compare, adjudicate, propose, and build. There is no mixing of conventions or ambiguous verbs.
Ten tools is within the optimal range for a specialized workflow. Each tool contributes a unique step in the architecture drift detection process without redundancy or unnecessary bloat.
The tool set covers the full drift detection workflow: audit creation, source discovery, claim/fact extraction, comparison, adjudication, patch proposal, and report generation. Minor gaps exist such as no explicit audit deletion or patch application, but these are not core to the domain.
Maintenance
Related MCP Connectors
Verify a vuln report's file/line/function claims against a real GitHub repo.
Verify a vuln report's file/line/function claims against a real GitHub repo.
Coordination memory with verification: reconcile-against-GitHub, verdict freshness, provenance.
Evidence-bound second-opinion audit of an agent conclusion against caller-supplied evidence.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables defining and verifying evidence contracts for claims in READMEs, releases, or product pages using constrained verifiers and generating hash-chained receipts and reports.6 npmMIT
- AlicenseAqualityCmaintenanceGenerates and maintains grounded, enterprise-grade documentation for any codebase by analyzing real project artifacts, ensuring every claim is traceable to actual findings.6Apache 2.0
- FlicenseNot gradedqualityCmaintenanceValidates governance evidence for Codex development tasks, enforcing requirements alignment, single-active-subject candidates, executable specifications, and independent gates for traceable review packets.1-
- AlicenseNot gradedqualityBmaintenanceEnables verification of portfolio claims by resolving citations to exact supporting sentences at build time, providing read-only tools to list work, find evidence, check stack mentions, and read case studies while failing the build on any unverifiable claim.MIT