Skip to main content
Glama

mcpforge

PyPI Python CI License: MIT

One English sentence in. A tested, spec-free FastMCP 3.x server out.

mcpforge turns a plain-English description into a complete FastMCP 3.x MCP server — tools, Pydantic input validation, error handling, a pytest suite, run config, and client setup docs — all wired together and ready to inspect, validate, and install. There's no MCP schema or protocol boilerplate to hand-write: the sentence is the spec. You write it; Claude writes the implementation; mcpforge runs the generated test suite and validators before you ever run it.

⚡ 60-second start

mcpforge demo: one command to a tested, validated MCP server

You need Python 3.12+, uv, and an Anthropic API key.

uv tool install fastmcp-builder      # or: pip install fastmcp-builder
export ANTHROPIC_API_KEY="your_anthropic_api_key"

mcpforge generate "A weather server that returns today's forecast for a city" -o weather-server

No key yet? Try the demo. mcpforge demo runs the real plan → generate → validate pipeline against a built-in recording and writes a complete, validated weather server — no API key, no spend. It's the fastest way to see exactly what mcpforge produces:

uvx --from fastmcp-builder mcpforge demo

Bring your own key (BYOK). Generation runs on your Anthropic API key — mcpforge calls the Claude API directly and nothing is proxied through a hosted service. A single generate makes a few model calls (plan → server → tests), so a typical run costs roughly $0.05–$0.30 in API usage on the default model (claude-sonnet-4-6). That figure is an estimate — it scales with server complexity and your chosen model, and is not a live measurement. Everything that doesn't call the model — validate, inspect, list, doctor, and init — is free.

That's the whole loop. mcpforge plans the tools, generates the code, then runs syntax, security, lint, import, and pytest checks against the result — so what lands in ./weather-server/ is already validated:

# weather-server/server.py  (excerpt)
"""Weather forecast MCP server."""

from fastmcp import FastMCP

mcp = FastMCP("Weather")

# Illustrative lookup — describe a real source and mcpforge wires the call for you.
_FORECASTS: dict[str, dict] = {
    "san francisco": {"high_c": 18, "low_c": 12, "summary": "Foggy"},
    "denver": {"high_c": 24, "low_c": 9, "summary": "Clear"},
}


@mcp.tool
async def get_forecast(city: str) -> dict:
    """Return today's forecast for a city."""
    key = city.strip().lower()
    if key not in _FORECASTS:
        raise ValueError(f"No forecast available for {city!r}")
    return {"city": city, **_FORECASTS[key]}


if __name__ == "__main__":
    mcp.run(transport="streamable-http")

Every generation also produces test_server.py (a real pytest suite), pyproject.toml, a README.md, and an MCP client config.json — a complete project, not a snippet. Run it with:

cd weather-server
uv run server.py            # start the server (streamable-http)
uv run pytest -v            # run the generated tests
mcpforge validate .         # re-run the full validation suite anytime

Generated server: tests pass, then it runs

The snippet above is an illustrative toy ("weather") for the docs. Real generations match your description — see examples/ for live generated servers (todo, file reader, database query, Slack notifier, TypeScript).

Related MCP server: MCP Server Generator

Build, then audit — the MCP toolkit

mcpforge has a sibling: mcp-audit (mcp-audits on PyPI). They're two halves of one workflow — forge a server, then audit what your agents can actually touch before you trust it.

Stage

Tool

What it does

Build

mcpforge

Generate a complete, tested MCP server from one sentence.

Audit

mcp-audit

Scan every MCP server wired into your machine and risk-score what each one can reach.

# build
mcpforge generate "A weather server that returns today's forecast for a city" -o weather-server

# audit everything your agents can reach (read-only, no install needed)
uvx --from mcp-audits mcp-audit scan --ssrf-check

mcp-audit is read-only by default — it never edits a config and reports env-var key names only, never values. Build with confidence, then verify your blast radius.

Registry-ready metadata lives in server.json with the MCP Registry name io.github.saagpatel/mcpforge and PyPI package fastmcp-builder. Treat that metadata as discovery/provenance context, not as proof that generated servers are safe to run without review.

Use as an MCP server

mcpforge is itself an MCP server: point an MCP client (Claude Code, Claude Desktop, Cursor) at it and your agent can forge, validate, and inspect MCP servers inside a conversation. It runs locally over stdio (it writes files into your workspace and calls your model provider on your own key), so it is not offered as a hosted remote.

uvx fastmcp-builder

Add it to a client config (Claude Code shown). generate, update, and plan call the model provider, so set the key in the server env:

{
  "mcpServers": {
    "mcpforge": {
      "command": "uvx",
      "args": ["fastmcp-builder"],
      "env": { "ANTHROPIC_API_KEY": "<your-key>", "MCPFORGE_WORKSPACE": "/path/to/workspace" }
    }
  }
}

Workspace paths are resolved against MCPFORGE_WORKSPACE and confined to it. Note that generate and update write files and incur model-provider cost (roughly $0.05 to $0.30 per call on your key).

Tool

What it does

Writes

Cost

Key args

generate

Generate a complete, tested FastMCP 3.x server from a description

yes (workspace)

API call

description, language, transport, output_path, dry_run

update

Apply a natural-language change to an existing generated server

yes (workspace)

API call

server_path, request

plan

Extract the structured server plan without generating code

no

API call

description, transport

validate

Run syntax, lint, import, and pytest checks on a generated server

no (executes tests)

none

server_path

inspect

Summarize a generated server without executing it

no

none

server_path

doctor

Check local prerequisites and provider readiness

no

none

workspace_path

list_generated_servers

List mcpforge-generated servers in a workspace

no

none

workspace_path, recursive

Features

  • Plain-English generation — describe your server in natural language; Claude writes the implementation

  • Complete project scaffold — tools, Pydantic input models, error handling, pyproject.toml, and a pytest suite generated together

  • FastMCP 3.x native — output uses modern FastMCP decorators and transport configuration, not raw MCP protocol boilerplate

  • Validate before runningmcpforge validate runs syntax, security, lint, import, and pytest checks against generated servers

  • Iterate safelymcpforge update modifies an existing generated server and backs up changed files before writing

  • Discover generated serversmcpforge list finds mcpforge-generated projects in a workspace

  • Inspect and diagnosemcpforge inspect summarizes generated server shape, while mcpforge doctor checks local readiness

  • Machine-readable output — status-like commands expose --json for agent workflows

  • OpenAPI curation controls — include/exclude tags, operation allowlists, and operation limits keep generated integrations focused

  • Scaffold without an LLMmcpforge init creates a minimal FastMCP server skeleton for local iteration

  • MCP server modemcpforge-server exposes generation, planning, validation, inspection, doctor, and discovery tools so AI assistants can build safely

More commands

The PyPI distribution is fastmcp-builder; the installed commands are mcpforge and mcpforge-server. Beyond generate:

# See it work with no API key — generate a weather server from a built-in recording
mcpforge demo

# Generate a new MCP server
mcpforge generate "A todo list manager with create, read, update, and delete operations"

# Validate an existing generated server
mcpforge validate ./my-server

# Modify an existing generated server
mcpforge update ./my-server "Add a tool to export todos as CSV"

# Find generated servers in the current workspace
mcpforge list . --recursive

# Inspect a generated server without executing it
mcpforge inspect ./my-server

# Check local prerequisites and provider readiness
mcpforge doctor

Useful generation flags:

  • --dry-run displays the structured plan without writing files.

  • --no-execute writes files but skips import and test execution.

  • --strict treats lint errors as hard validation failures.

  • --from-openapi FILE generates from an OpenAPI 3.x spec.

  • --openapi-include-tag TAG, --openapi-exclude-tag TAG, --openapi-operation ID, and --openapi-limit N curate OpenAPI conversion.

  • --language python|typescript chooses the target server language.

  • --auth-profile none|api-key|jwt adds optional Python auth profile metadata and env docs.

  • --middleware-profile logging|timing|rate-limit adds optional Python middleware profiles; repeat it to combine profiles.

  • --provider anthropic|openai|openrouter selects the generation provider. openrouter is the "bring any model" path: set OPENROUTER_API_KEY and pick any OpenRouter model with --model (e.g. --model anthropic/claude-opus-4.8), including free and low-cost ones. Generation quality and structured-output support vary by model — the recommended models are Claude Opus 4.8 (xHigh) and/or GPT 5.5 (High/Extra High). The openai package is a default dependency (included in all installs) because it backs both --provider openai and --provider openrouter; set MCPFORGE_ENABLE_OPENAI_PROVIDER=1 to enable the direct OpenAI provider for use with OPENAI_API_KEY.

Useful status flags:

  • mcpforge list --json

  • mcpforge inspect PATH --json

  • mcpforge validate PATH --json

  • mcpforge doctor --json

  • mcpforge version --json

Tech Stack

Layer

Technology

Language

Python 3.12+

Generation

Anthropic Claude via anthropic SDK; OpenAI and OpenRouter via openai SDK (included by default)

MCP framework

FastMCP 3.x

CLI

Click 8

Templates

Jinja2

Validation

Pydantic v2

Output

Rich

Architecture

The generate command sends the user's description to Claude with a structured prompt that includes FastMCP 3.x idioms and a tool-schema contract. Claude returns a JSON plan (tool names, signatures, and descriptions) that mcpforge validates against a Pydantic model before rendering through Jinja2 templates into a complete project directory. The generated project is then validated with syntax checks, security scanning, ruff linting, import checks, and pytest execution. The update command reads an existing generated server, asks Claude for a targeted modification, writes backups for changed files, and validates the result.

Current Status — v0.3.4

mcpforge is published to PyPI as fastmcp-builder. v0.3.4 adds a fastmcp-builder console-script alias so the MCP server launches via uvx fastmcp-builder (matching the MCP Registry's uvx <package> launch model) and corrects the registry metadata. v0.3.3 added the mcpforge demo command (try the full generate pipeline with no API key, no cost), an OpenRouter provider (--provider openrouter), and official MCP Registry metadata. The generate, update, validate, inspect, doctor, and demo commands work against FastMCP 3.4.2+.

See CHANGELOG.md for the full version history.

License

MIT

Available Tools

7 tools
doctorB

Check local mcpforge prerequisites and provider readiness.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden; 'Check' suggests a non-mutating diagnostic action, which is useful. However, it does not disclose whether the command makes external/provider calls, modifies anything, or what 'readiness' entails, leaving room for assumptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is an eight-word, front-loaded sentence with no filler or repetition. Every word contributes to defining the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low-complexity (one optional parameter) and has an output schema, so return-value details are not required in the description. Still, the description leaves the meaning of 'provider readiness' and the role of workspace_path implicit, and it does not distinguish when to use doctor versus the sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention workspace_path at all. The parameter's name and optional default make it partly self-explanatory, but the description adds no meaning such as 'checks the specified workspace instead of the current one.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Check') with a specific resource ('local mcpforge prerequisites and provider readiness'), so an agent can see this is a diagnostic tool. It does not explicitly differentiate from the sibling 'validate', which may also sound like a checking operation, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing implies the tool is used when the agent needs to verify that prerequisites are in place and providers are ready, but it gives no explicit when-to-use guidance, no exclusions, and no alternative routing among siblings such as validate or inspect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generateB

Generate a complete FastMCP 3.x server from a plain-English description.

Returns a dict with keys: path, plan (dict), valid (bool), tests_run (int).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoclaude-sonnet-4-6
strictNo
dry_runNo
languageNopython
providerNoanthropic
templateNo
transportNostreamable-http
multi_fileNo
no_executeNo
descriptionYes
output_pathNo
auth_profileNonone
from_openapiNo
middleware_profilesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It does reveal the return dict keys, which is helpful, but it fails to state side effects such as writing files, executing code, or running tests, despite the schema strongly suggesting these behaviors exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence states the core purpose, and the second gives the return shape. There is no filler or redundant phrasing, so every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 14 parameters, no annotations, and a sibling family that supports a broader workflow, this description is incomplete. It does not mention how generation relates to plan or validate, does not explain the safety/execution implications, and leaves optional configurations undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for 14 parameters, but it only clarifies the required description parameter by calling it 'plain-English description'. All other parameters—strict, dry_run, transport, multi_file, output_path, auth_profile, etc.—are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Generate') and a concrete resource ('a complete FastMCP 3.x server') from a well-defined input ('a plain-English description'). This clearly differentiates it from siblings like validate, update, and inspect, which all imply different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you have a plain-English description and want a generated server, but it gives no explicit when-to-use instructions or comparisons to alternatives. It does not mention plan, validate, inspect, or update, nor does it explain when to use dry_run, no_execute, or template modes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspectC

Inspect a generated server without executing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. 'Without executing it' is a useful disclosure that the operation does not run the server, but it does not state whether the tool modifies anything, whether the server must already exist, or what happens on failure. It is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler; the key action and the central non-execution constraint are both present. It is appropriately compact, though other dimensions would benefit from more content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though the tool is simple and has an output schema, the description does not address prerequisites, when to prefer this over validate or doctor, or what 'inspect' actually covers. It is incomplete for an agent choosing among the sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage and the description never directly mentions server_path. It only indirectly clarifies that the path should point to a generated server, which is partial but insufficient compensation for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Inspect') and a resource ('a generated server'), and adds a meaningful distinguishing constraint ('without executing it') that separates it from running the server. However, it does not differentiate from overlapping siblings like validate or doctor, so it stops 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus the sibling tools. The phrase 'without executing it' implies a non-execution context, but no alternatives are named and no exclusion criteria are provided, leaving the agent to infer usage from tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_generated_serversB

List generated mcpforge servers in a workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
recursiveNo
workspace_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It accurately indicates a read-only listing operation, which implies no side effects. However, it does not disclose behavior around the recursive default, how workspace_path is interpreted, or whether any filtering occurs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant wording. It is efficient and easy to parse, though it sacrifices useful context for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two optional parameters, zero schema descriptions, and no annotations, the description is too thin. It does not clarify the recursive parameter, the meaning of default workspace_path, or the structure of the returned list. The presence of an output schema helps but does not compensate for the missing operational semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain either parameter. 'recursive' and 'workspace_path' are left entirely to the agent to infer from their names and defaults. The phrase 'in a workspace' loosely maps to workspace_path, but it is not a meaningful semantic explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('generated mcpforge servers') with a clear scope ('in a workspace'). This distinguishes it from sibling tools like generate, update, validate, plan, inspect, and doctor, which all indicate different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this tool when you want to see generated servers in a workspace. However, there is no explicit guidance on when to use it versus alternatives, no exclusions, and no mention of prerequisites such as what workspace_path should be.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planA

Extract the structured server plan without generating code.

Returns a dict with keys: name, slug, description, tools (list), transport.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoclaude-sonnet-4-6
providerNoanthropic
transportNostreamable-http
descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and it does disclose the key behavioral trait: this tool does not generate code. It also specifies the exact return shape, so an agent knows the observable result. It does not claim any hidden mutation or side effect, and 'Extract' aligns with a read-only semantic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences with the main purpose front-loaded and no filler. The second sentence provides concrete return information that directly supports correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple planning tool the core behavior and return shape are covered, and an output schema exists. However, the absence of parameter semantics and any pointer to when this tool belongs in the workflow leaves the surrounding context incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate for the four parameters, but it does not explain model, provider, transport, or the required description field. The only parameter-related word is 'transport' in the return shape, which is not input semantics. The agent must guess what values or formats are acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Extract') and resource ('structured server plan'), and immediately disambiguates from the sibling 'generate' by adding 'without generating code.' The return-key enumeration reinforces exactly what the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without generating code' implies this tool is for inspecting a plan rather than producing a server, which indirectly points away from 'generate.' However, it never states when to use it versus siblings like update, validate, or doctor, nor does it give a when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

updateB

Apply a natural-language modification request to an existing MCP server.

Returns a dict with keys: path, valid (bool), tests_run (int).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoclaude-sonnet-4-6
requestYes
providerNoanthropic
server_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral consequences itself. It states the return dict keys but does not reveal side effects such as whether files are overwritten, whether tests are actually executed, whether changes are reversible, or what happens on validation failure. The mutating nature is implied but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The core purpose is front-loaded, and the return contract is stated clearly. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a mutating operation with no annotations, 0% schema coverage, and a set of overlapping sibling tools, the description is too thin. It covers purpose and return shape but omits usage guidance, side effects, and parameter semantics, making it insufficient for an agent to invoke it with full confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate by explaining the parameters. It only indirectly alludes to server_path ('existing MCP server') and request ('modification request'), but gives no meaning for model or provider, their defaults, or the relationship between them. The agent must rely on the schema defaults without semantic context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Apply') and resource ('an existing MCP server'), and clarifies the input is a natural-language modification request. This clearly distinguishes the tool from siblings like generate, validate, and inspect by emphasizing modification of an existing server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as generate, plan, or doctor. The word 'existing' weakly implies this is not for creation, but there is no exclusionary language or mention of prerequisites like planning or validating first, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validateB

Validate an existing MCP server. Returns detailed validation results.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral burden. It does disclose that the operation returns detailed validation results and implies a non-creating action by targeting an existing server, but it doesn't state whether validation has side effects, starts the server, or requires special access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and immediately followed by the output. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, this is nearly adequate, but the lack of usage guidance and the absence of annotation-driven safety context leave the agent without enough information to know when this is the right tool or whether any side effects are possible.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no description for 'server_path' (0% coverage), and the description does not explicitly define what kind of path is expected (directory, executable, config file, etc.). The tool name and 'existing MCP server' make the parameter partially inferable, but the description doesn't add enough meaning to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Validate') with a resource ('an existing MCP server') and states an outcome ('Returns detailed validation results'). It is clear about the tool's basic job, but it doesn't explicitly distinguish validation from neighboring diagnostic tools such as 'doctor' or 'inspect'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose 'validate' over sibling tools like 'doctor', 'inspect', or 'plan'. The phrase 'existing MCP server' hints at a use case, but there is no explicit context, prerequisites, or exclusions.

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.

  1. 7 tool updatesv0.3.4
    • First observeddoctor
    • First observedgenerate
    • First observedinspect
    • First observedlist_generated_servers
    • First observedplan
    • First observedupdate
    • First observedvalidate

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation4/5

Most tools target distinct actions: generate, update, validate, plan, inspect, doctor, and list are generally clear. However, plan and generate overlap somewhat since generate also produces a plan, and inspect vs. validate could be confused without closer reading.

Naming Consistency4/5

Tool names are mostly simple imperative verbs like generate, update, validate, and inspect, which creates a readable pattern. The one outlier is list_generated_servers, but it is still understandable and not disruptive.

Tool Count5/5

Seven tools is well within the ideal range for a code-generation focused server. Each tool contributes a meaningful step in the workflow without unnecessary redundancy.

Completeness4/5

The toolset covers the core creation, update, validation, and inspection lifecycle for generated servers. The main gap is the lack of a delete or remove tool for cleaning up generated servers.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Generates production-ready MCP servers with dual-mode (MCP + CLI) architecture, tests, and documentation. Includes progressive disclosure tools for AI agents and best practices guidance.
    7
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Turns any codebase into a working MCP server by analyzing GitHub repos or uploaded code, discovering capabilities, and generating a runnable FastMCP server with curated connections.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Generates and serves an MCP server from a natural language prompt, without requiring SDK knowledge or boilerplate code.
    6 npm
    1
    Apache 2.0