Skip to main content
Glama
hitoshura25

MCP Server Generator

by hitoshura25

MCP Server Generator

A meta-generator for creating dual-mode MCP servers with best practices

Python Version License

Overview

Generate complete, production-ready MCP (Model Context Protocol) servers that work in two modes:

  • MCP Server Mode: For AI agents (Claude Desktop, etc.)

  • CLI Mode: For developers

This tool is itself an MCP server, enabling AI agents to generate other MCP servers! It demonstrates the dual-mode architecture pattern it creates and implements progressive disclosure for context-efficient tool discovery.

Related MCP server: Gravitas-Core-MCP

Why Use This?

  • ⚔ Fast: Generate a complete MCP server in under 5 minutes

  • šŸ—ļø Complete: Includes tests, documentation, packaging, and CI/CD

  • āœ… Tested: Generated servers have comprehensive test suites with high coverage

  • šŸŽÆ Best Practices: Follows validated patterns from production MCP servers with built-in guidance

  • šŸ”§ Dual-Mode: Works as both MCP server and CLI tool

  • 🧠 Smart Discovery: Progressive disclosure tools for context-efficient AI agent usage

  • šŸ“¦ Ready to Publish: GitHub Actions workflows included for PyPI publishing

Features

  • āœ… Dual-mode architecture (MCP + CLI)

  • āœ… Progressive disclosure tools (context-efficient tool discovery for AI agents)

  • āœ… Built-in guidance (best practices and implementation guides)

  • āœ… Claude Code integration (generate slash commands for guided development)

  • āœ… Async/await support (async handlers for I/O operations, avoids event loop errors)

  • āœ… Package prefix support (avoid PyPI namespace conflicts with AUTO detection)

  • āœ… Complete project scaffolding (tests, docs, packaging)

  • āœ… GitHub Actions workflows (via pypi-workflow-generator)

  • āœ… Comprehensive test suite (92+ tests with high coverage)

  • āœ… Type hints and documentation

  • āœ… Best practices enforcement

  • āœ… Minimal dependencies

Installation

Using uvx (no installation required):

The easiest way to use this as an MCP server - just configure in Claude Desktop:

{
  "mcpServers": {
    "mcp-server-generator": {
      "command": "uvx",
      "args": ["hitoshura25-mcp-server-generator"]
    }
  }
}

Prerequisites: Install uv:

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

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

For CLI Usage (Alternative)

Using pipx (isolated installation):

pipx install hitoshura25-mcp-server-generator

Using pip:

pip install hitoshura25-mcp-server-generator

From Source (Development)

git clone https://github.com/hitoshura25/mcp-server-generator.git
cd mcp-server-generator
pip install -e .

Quick Start

The easiest way to get started:

hitoshura25-mcp-server-generator-cli --interactive

This will guide you through:

  1. Project naming

  2. Author information

  3. Tool definitions

  4. Configuration options

Command-Line Mode

For automation or when you have a tool definition file:

hitoshura25-mcp-server-generator-cli \
  --project-name my-mcp-tool \
  --description "Does something useful" \
  --author "Your Name" \
  --email "you@example.com" \
  --tools-file tools.json

MCP Server Mode (For AI Agents)

Configure mcp-server-generator as an MCP server in Claude Desktop to let Claude generate MCP servers for you:

Using uvx (recommended):

{
  "mcpServers": {
    "mcp-server-generator": {
      "command": "uvx",
      "args": ["hitoshura25-mcp-server-generator"]
    }
  }
}

Using pipx/pip installation:

{
  "mcpServers": {
    "mcp-server-generator": {
      "command": "hitoshura25-mcp-server-generator"
    }
  }
}

For detailed MCP configuration, see MCP-USAGE.md

MCP Server Tools

When used as an MCP server (in Claude Desktop or other MCP clients), mcp-server-generator provides powerful tools with progressive disclosure support - allowing AI agents to discover and use tools efficiently without loading all schemas upfront.

Discovery Tools

search_tools - Find relevant tools by query

  • Search by keywords, categories, or use cases

  • Three detail levels for context efficiency:

    • name: Just tool names (most efficient)

    • summary: Names + descriptions + categories

    • full: Complete information including use cases

  • Example: search_tools(query="generate", detail_level="summary")

get_tool_info - Get detailed information about a specific tool

  • Two detail levels: summary or full

  • Progressive disclosure for context efficiency

  • Example: get_tool_info(tool_name="generate_mcp_server", detail_level="full")

Generation Tools

generate_mcp_server - Generate complete MCP server projects

  • Creates dual-mode architecture (MCP + CLI)

  • Includes tests, documentation, and CI/CD workflows

  • Production-ready scaffolding with best practices

  • Supports async/await patterns

generate_claude_command - Create Claude Code command files

  • Generates .claude/commands/ directory structure

  • Creates slash commands for guided MCP development

  • Templates for common workflows: mcp_generator, best_practices, implementation_helper, custom

  • Enables guided development experience

Validation Tools

validate_project_name - Validate project names

  • Check Python package compatibility

  • Avoid Python keyword conflicts

  • Ensure PyPI naming conventions

Guidance Tools

get_best_practices - MCP development best practices

  • Progressive disclosure strategies

  • Context-efficient tool design

  • Control flow optimization

  • Security and privacy considerations

  • State management patterns

  • Testing strategies

get_implementation_guide - Step-by-step implementation guide

  • Project setup and initialization

  • Tool implementation patterns

  • Testing strategies

  • Deployment and publishing

  • Claude Desktop integration

Why Progressive Disclosure?

Progressive disclosure allows AI agents to:

  • Discover tools without loading full schemas upfront

  • Save context window space for actual work

  • Scale to hundreds or thousands of tools

  • Get exactly the level of detail needed

Example workflow (MCP tool invocations):

# 1. Search for relevant tools
search_tools(query="generate", detail_level="name")
# Returns: ["generate_mcp_server", "generate_claude_command"]

# 2. Get summary of specific tool
get_tool_info(tool_name="generate_mcp_server", detail_level="summary")
# Returns: name, description, category

# 3. Get full details when ready to use
get_tool_info(tool_name="generate_mcp_server", detail_level="full")
# Returns: complete information including use cases and parameters

Package Prefix

To avoid namespace conflicts on PyPI, mcp-server-generator supports prefixing package names. This is highly recommended for unique package names.

Prefix Modes

AUTO (Recommended)

  • Automatically detects your GitHub username from git config

  • Priority: github.user → remote URL → user.name (sanitized)

  • Example: my-tool → username-my-tool

Custom Prefix

  • Use your own prefix (organization name, brand, etc.)

  • Example: --prefix acme → acme-my-tool

NONE

  • No prefix applied (only if you have a truly unique name)

  • Example: unique-server-name → unique-server-name

Usage Examples

Interactive Mode:

hitoshura25-mcp-server-generator-cli --interactive
# You'll be prompted: "Prefix (default: AUTO): "
# - Press Enter for AUTO detection
# - Type "NONE" for no prefix
# - Type "acme" for custom prefix

Command-Line:

# AUTO mode (default)
hitoshura25-mcp-server-generator-cli --project-name calculator --prefix AUTO ...

# Custom prefix
hitoshura25-mcp-server-generator-cli --project-name calculator --prefix acme ...

# No prefix
hitoshura25-mcp-server-generator-cli --project-name unique-calculator --prefix NONE ...

MCP Server Mode:

{
  "project_name": "calculator",
  "prefix": "AUTO",
  ...
}

Generated Names

With prefix username and project my-tool:

  • PyPI Package: username-my-tool (install with pip install username-my-tool)

  • Python Import: username_my_tool (use in code as import username_my_tool)

  • CLI Command: username-my-tool (run as username-my-tool --help)

  • MCP Command: mcp-username-my-tool (use in config)

For detailed MCP configuration, see MCP-USAGE.md

What Gets Generated

A complete, production-ready MCP server project:

my-mcp-tool/
ā”œā”€ā”€ .gitignore
ā”œā”€ā”€ README.md
ā”œā”€ā”€ MCP-USAGE.md
ā”œā”€ā”€ LICENSE
ā”œā”€ā”€ setup.py
ā”œā”€ā”€ pyproject.toml
ā”œā”€ā”€ requirements.txt
ā”œā”€ā”€ MANIFEST.in
ā”œā”€ā”€ my_mcp_tool/
│   ā”œā”€ā”€ __init__.py
│   ā”œā”€ā”€ server.py          # MCP server implementation
│   ā”œā”€ā”€ cli.py             # CLI interface
│   ā”œā”€ā”€ generator.py       # Business logic (TODO stubs)
│   └── tests/
│       ā”œā”€ā”€ __init__.py
│       ā”œā”€ā”€ test_server.py  # MCP protocol tests
│       └── test_generator.py  # Core logic tests
└── .github/
    └── workflows/
        └── pypi-publish.yml  # PyPI publishing workflow

Generated Features

  • āœ… Working MCP server with proper JSON-RPC over stdio

  • āœ… CLI interface with argparse

  • āœ… Complete test suite (MCP protocol + business logic)

  • āœ… GitHub Actions workflow for PyPI publishing

  • āœ… Comprehensive documentation (README, MCP-USAGE)

  • āœ… Proper Python packaging (setup.py, pyproject.toml)

  • āœ… TODO stubs for easy implementation

Tool Definition Format

Create a tools.json file to define your MCP server's tools:

{
  "tools": [
    {
      "name": "my_function",
      "description": "Does something useful",
      "parameters": [
        {
          "name": "input_text",
          "type": "string",
          "description": "Text to process",
          "required": true
        },
        {
          "name": "max_length",
          "type": "number",
          "description": "Maximum length",
          "required": false
        }
      ]
    }
  ]
}

Supported Types

  • string / str

  • number / int / integer / float

  • boolean / bool

  • array / list

  • object / dict

For complete examples, see EXAMPLES.md

Documentation

Security

šŸ”’ Important: MCP servers can be exploited for malicious purposes if not properly secured. See SECURITY.md for comprehensive security guidelines.

Key Security Features

Generated MCP servers include:

  • Security utilities module (security_utils.py) with ready-to-use functions for:

    • Input validation and sanitization

    • Path traversal protection

    • Command injection prevention

    • Rate limiting to prevent high-speed automated attacks

    • Audit logging for security-relevant operations

    • Sensitive data redaction (PII, credentials, API keys)

  • Automated security analysis - The generator analyzes your tool definitions and warns about:

    • High-risk patterns (command execution, code evaluation)

    • Medium-risk patterns (file operations, network access, credential handling)

    • Recommendations for secure implementation

  • Comprehensive security documentation - Every generated project includes SECURITY.md with:

    • Threat model based on real-world AI-orchestrated cyber espionage

    • Secure coding patterns and examples

    • Security checklist for deployment

    • Incident response procedures

Best Practices

When creating MCP servers:

  1. Validate all inputs - Use whitelists, not blacklists

  2. Apply principle of least privilege - Tools should do the minimum necessary

  3. Implement rate limiting - Protect against high-speed automated attacks

  4. Add audit logging - Track all security-relevant operations

  5. Redact sensitive data - Don't expose PII, credentials, or secrets

  6. Use security utilities - Leverage the built-in security_utils.py module

Threat Model

MCP servers can be targeted for:

  • AI-orchestrated cyber espionage campaigns

  • Jailbreak attempts through task decomposition

  • High-speed reconnaissance and exploitation

  • Credential harvesting through tool chaining

  • Data exfiltration at scale

Reference: Anthropic's research on AI-orchestrated cyber espionage

Testing

The project includes a comprehensive test suite:

# Run all tests
pytest

# Run with coverage report
pytest --cov=hitoshura25_mcp_server_generator --cov-report=term-missing

# Run specific test file
pytest hitoshura25_mcp_server_generator/tests/test_server.py -v

Test Statistics:

  • 92+ comprehensive tests covering all functionality

  • All async MCP protocol tests passing

  • Progressive disclosure and discovery tools tests passing

  • Template validation tests passing

Requirements

  • Python ≄3.8

  • Jinja2 ≄3.0

  • hitoshura25-pypi-workflow-generator ==0.6.0

Development

See CONTRIBUTING.md for detailed development instructions.

Quick setup:

# Clone the repository
git clone https://github.com/hitoshura25/mcp-server-generator.git
cd mcp-server-generator

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Install in development mode
pip install -e .

# Run tests
pytest

Architecture

mcp-server-generator follows a dual-mode architecture pattern:

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│     mcp-server-generator            │
ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤
│                                     │
│  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”      ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”     │
│  │ MCP Mode │      │ CLI Mode │     │
│  ā””ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”˜      ā””ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”˜     │
│       │                 │           │
│       ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜           │
│                │                    │
│         ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”            │
│         │ generator.py │            │
│         │ (Core Logic) │            │
│         ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜            │
│                                     │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

Both modes use the same core generator logic, ensuring consistency.

License

Apache-2.0

Author

Vinayak Menon

Acknowledgments

This project is based on patterns validated in pypi-workflow-generator, a production MCP server for generating GitHub Actions workflows.

Progressive disclosure implementation follows best practices from:

Available Tools

7 tools
generate_claude_commandA

Generate Claude Code command files for guided MCP development

Creates .claude/commands/ directory with slash command files that guide users through MCP server development using this generator.

Args: command_name: Name for the command (e.g., "mcp-generate", "mcp-help") command_type: Type of command to generate: - "mcp_generator": Guide through MCP server generation workflow - "best_practices": Provide MCP best practices reference - "implementation_helper": Help implement generated MCP server - "custom": Use custom_prompt for fully custom command description: Optional description for the command (auto-generated if not provided) custom_prompt: Required if command_type is "custom" output_dir: Directory to create command file (default: .claude/commands)

Returns: JSON string with generation result

ParametersJSON Schema
NameRequiredDescriptionDefault
command_nameYes
command_typeNomcp_generator
descriptionNo
custom_promptNo
output_dirNo.claude/commands

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description provides basic behavioral info: it creates the .claude/commands/ directory and files, and returns a JSON string. However, it omits details like whether existing files are overwritten, directory creation behavior, or permission requirements. Some transparency but not comprehensive.

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 well-structured with a clear purpose line followed by a brief overview and an Args section. It is appropriately sized for the complexity, though some sentences could be tightened. No unnecessary repetition.

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

Completeness4/5

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

Given the moderate complexity (5 params, 1 required, enum) and the existence of an output schema, the description covers the main aspects: purpose, parameters, return type. It could be more complete with examples or error handling notes, but it is sufficient for basic usage.

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

Parameters5/5

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

The schema has 0% description coverage, so the description fully compensates by explaining each parameter in the Args section. It clarifies the command_type enum values, the optional nature of description, the requirement of custom_prompt for custom type, and the default output_dir. This adds significant meaning beyond the schema.

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 clearly states the tool's purpose as generating Claude Code command files for guided MCP development. It uses a specific verb (generate) and resource (Claude Code command files), and the purpose is distinct from sibling tools like generate_mcp_server or get_best_practices.

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 does not provide explicit guidance on when to use this tool versus its siblings. While it explains command types, it lacks statements like 'use this when you want to create slash commands' versus 'use generate_mcp_server for server creation.' No comparisons or exclusions are given.

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

generate_mcp_serverA

Generate a complete MCP server project with dual-mode architecture

This is the main generation tool. Consider using search_tools or get_tool_info first to understand the full workflow, or use the generated Claude commands for guided assistance.

Args: project_name: Project name (e.g., 'my-mcp-server') description: Project description author: Author name author_email: Author email tools: List of tools this MCP server will provide. Each tool should have: - name: Tool function name - description: What the tool does - parameters: List of parameter objects with name, type, description, required output_dir: Output directory (default: current directory) python_version: Python version for testing (default: '3.10') prefix: Package prefix - 'AUTO' (detect from git), 'NONE', or custom string (default: 'AUTO')

Returns: JSON string with generation result including success status and project path

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYes
descriptionYes
authorYes
author_emailYes
toolsYes
output_dirNo
python_versionNo3.10
prefixNoAUTO

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.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 must disclose behavior. It indicates generation returns a JSON result but lacks details on side effects, permissions, or constraints, which is adequate but not comprehensive.

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 well-structured with sections for purpose, usage guidance, parameters, and return value. It is slightly verbose but every part adds value; a bit of pruning could enhance conciseness.

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

Completeness4/5

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

Given the tool's complexity with 8 parameters and an output schema, the description covers the main aspects: purpose, parameters, return value, and usage suggestions. It lacks some behavioral context but is largely complete.

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

Parameters5/5

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

With 0% schema description coverage, the parameter descriptions in the docstring add significant meaning beyond the schema, especially for the complex 'tools' parameter describing its subfields.

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 clearly states 'Generate a complete MCP server project with dual-mode architecture', identifying the specific verb and resource. It distinguishes from siblings by suggesting alternative tools for understanding the workflow.

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

Usage Guidelines5/5

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

The description explicitly recommends considering 'search_tools' or 'get_tool_info' first, and mentions using Claude commands for guided assistance, providing clear when-to-use guidance and alternatives.

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

get_best_practicesA

Get MCP server development best practices

Args: topic: Optional specific topic (e.g., "progressive_disclosure", "tool_design", "control_flow", "security", "state_management", "testing"). If None, returns all best practices.

Returns: JSON string with best practices information

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/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. It states the return format (JSON string) and the tool's input, implying a read-only operation. It does not elaborate on side effects or errors, but for a simple get tool this is adequate.

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 concise, using a docstring format with brief explanation, args, and returns. No unnecessary information, every sentence is informative.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, no required arguments, output schema exists), the description covers purpose, parameter behavior, and return type adequately. No gaps for typical usage.

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

Parameters5/5

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

Schema coverage is 0%, so the description must add meaning. It fully explains the topic parameter: optional, with examples and behavior when None. This goes beyond the schema, which only shows type and default.

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 clearly states the tool returns MCP server development best practices, using the specific verb 'Get' and resource 'best practices'. It also mentions optional topic filtering, distinguishing it from sibling tools like get_implementation_guide.

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 description provides context on when to use the tool (to get best practices) and mentions optional topic selection, but does not explicitly state when not to use it or compare with alternatives like get_implementation_guide.

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

get_implementation_guideA

Get step-by-step guide for implementing MCP servers

Args: step: Optional specific step (e.g., "setup", "implementation", "testing", "deployment", "integration"). If None, returns overview of all steps.

Returns: JSON string with implementation guide

ParametersJSON Schema
NameRequiredDescriptionDefault
stepNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It indicates a read operation returning a JSON string, with a parameter to filter by step. However, it does not disclose any authentication needs or rate limits, leaving room for ambiguity.

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 very concise, using a clear docstring style with Args and Returns sections. Every sentence adds value, and there is no redundant or extraneous text.

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

Completeness4/5

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

Given the low complexity (1 optional param, no nested objects) and presence of an output schema, the description adequately covers the tool's behavior. It could mention the structure of the returned JSON, but the output schema likely covers that.

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

Parameters5/5

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

With 0% schema coverage, the description fully compensates by explaining the step parameter, listing concrete example values (setup, implementation, etc.), and clarifying that None returns an overview. This adds significant meaning beyond the schema.

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 clearly states the tool returns a step-by-step guide for implementing MCP servers. It is distinct from siblings like get_best_practices and get_tool_info, though it does not explicitly contrast them.

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 explains the optional step parameter but provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context about limitations or expected use cases.

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

get_tool_infoA

Get information about a specific tool with progressive disclosure

Args: tool_name: Name of the tool to get information about detail_level: Level of detail: - "summary": Name, description, and category - "full": Complete information including use cases and full description

Returns: JSON string with tool information at requested detail level

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYes
detail_levelNosummary

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It discloses the return format (JSON string) and detail_level content, but does not mention error cases, required permissions, or potential pitfalls. Adequate for a simple read operation.

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 well-structured with an opening line and Args/Returns sections. It is concise but not overly terse, providing necessary detail without extraneous words.

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

Completeness4/5

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

Given the tool's simplicity (2 params, no annotations, output schema present), the description adequately covers purpose, parameters, and return details. It lacks error handling or exact match requirements but is sufficient for effective use.

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

Parameters4/5

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

Schema description coverage is 0%, so the description compensates by explaining both parameters: tool_name and detail_level with enum values. The description adds value beyond the schema's bare type definitions, especially for detail_level.

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 clearly states 'Get information about a specific tool' with progressive disclosure, using a specific verb and resource. It distinguishes from siblings like search_tools by focusing on a single tool's details.

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

Usage Guidelines4/5

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

The description provides clear guidance on using detail_level enum (summary vs full) and what each returns. However, it does not explicitly compare to sibling tools like search_tools or get_best_practices, so the agent must infer when to use this tool over alternatives.

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

search_toolsA

Search for relevant tools by query with progressive disclosure

This tool implements the progressive disclosure pattern - allowing you to discover tools without loading full schemas upfront, saving context window space.

Args: query: Search query (matches against name, description, categories, use cases) detail_level: Level of detail to return: - "name": Just tool names (most context-efficient) - "summary": Names + descriptions + categories - "full": Complete information including use cases and detailed descriptions

Returns: JSON string with matching tools at requested detail level

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
detail_levelNosummary

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description provides good behavioral context: it returns a JSON string, supports progressive disclosure, and matches against multiple fields. However, it doesn't cover edge cases like empty results.

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 well-structured with an Args section and front-loads the purpose. Minor redundancy (progressive disclosure mentioned twice) but overall efficient.

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

Completeness4/5

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

For a simple 2-parameter tool with an output schema, the description covers the main aspects: purpose, parameters, return format. It doesn't explain behavior when no tools match, but is otherwise complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description compensates well: it explains the query matches against name, description, categories, and use cases, and clarifies each enum value for detail_level.

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 clearly states it searches for relevant tools by query with progressive disclosure, distinguishing it from sibling tools like get_tool_info which retrieves info about a specific tool.

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 description explains the progressive disclosure pattern and when to use different detail levels, but does not explicitly state when not to use it or contrast with alternatives like get_tool_info.

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

validate_project_nameB

Validate a project name for Python package compatibility

Args: name: Project name to validate

Returns: JSON string with validation result

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so the description must disclose behavior. It states it returns a JSON string with validation result, but does not explain what validation criteria are used (e.g., PEP 508 compatibility, naming conventions). The behavior is somewhat transparent but incomplete.

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 short (2 sentences) and front-loaded. However, the 'Args:' and 'Returns:' sections are redundant given the simple schema and the stated return type. Still, it's efficient and avoids clutter.

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 simple with one parameter and output schema present (though not shown). The description covers the basic action and return format. However, it doesn't mention side effects, error conditions, or the validation scope, leaving some ambiguity for an AI agent.

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

Parameters3/5

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

The input schema has 0% coverage with no description for the 'name' parameter. The description adds 'Project name to validate', which provides basic meaning but lacks format constraints or examples. Baseline 3 is appropriate for low coverage with minimal added 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 clearly states the tool validates a project name for Python package compatibility, which is a specific verb-resource pair and distinguishes from sibling tools like generate_claude_command or search_tools.

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 on when to use this tool vs alternatives. The description does not mention when to use it, prerequisites, or exclusions. It implicitly suggests validation is needed but lacks explicit context.

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.1.0
    • First observedgenerate_claude_command
    • First observedgenerate_mcp_server
    • First observedget_best_practices
    • First observedget_implementation_guide
    • First observedget_tool_info
    • First observedsearch_tools
    • First observedvalidate_project_name

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a distinct purpose: generation of commands vs servers, retrieval of practices/guides, tool discovery via search/info, and project name validation. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., generate_mcp_server, search_tools, validate_project_name), making the API predictable.

Tool Count5/5

Seven tools is well-scoped for a code generator server: core generation, guidance, discovery, and validation. Not too many or too few.

Completeness4/5

The tool set covers the main workflow: generating servers, providing best practices and implementation guides, tool discovery, and validation. Missing lifecycle management (e.g., update/delete), but not essential for a generator's purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Production-grade, autonomous Model Context Protocol (MCP) server that elevates AI models from stateless code generators into persistent, self-verifying software engineers.
    21
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server that automates the generation of production-grade async FastAPI services following Clean Architecture, with self-healing pytest-based verification and OpenAPI spec ingestion for rapid CRUD API development.
    -