mcp-dev-toolkit


Namemcp-dev-toolkit JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryA comprehensive development toolkit for building Model Context Protocol (MCP) tools and servers
upload_time2025-07-20 03:02:18
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords ai-tools development-toolkit mcp model-context-protocol sdk server-tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MCP Development Toolkit

[![PyPI version](https://badge.fury.io/py/mcp-dev-toolkit.svg)](https://badge.fury.io/py/mcp-dev-toolkit)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A comprehensive development toolkit for building Model Context Protocol (MCP) tools and servers with built-in middleware, validation, schema extraction, and code generation.

## ๐Ÿš€ Quick Start

### Installation

```bash
# Basic installation
pip install mcp-dev-toolkit

# Full installation with all features
pip install mcp-dev-toolkit[full]

# Development installation
pip install mcp-dev-toolkit[dev]
```

### Create Your First Tool

```python
from mcp_dev_toolkit import create_sdk, ToolType

# Create SDK instance
sdk = create_sdk("my-awesome-tools", "1.0.0")

@sdk.tool(
    name="url_shortener",
    description="Shorten URLs using various services",
    tool_type=ToolType.INTEGRATION,
    tags=["url", "utility"],
    examples=[{
        "input": {"url": "https://example.com/very/long/url", "service": "bitly"},
        "output": {"short_url": "https://bit.ly/abc123"}
    }]
)
async def url_shortener(url: str, service: str = "bitly") -> dict:
    """Shorten a URL using the specified service"""
    # Your implementation here
    return {
        "original_url": url,
        "short_url": f"https://short.ly/{hash(url) % 1000000}",
        "service": service,
        "created_at": datetime.now().isoformat()
    }

# Generate MCP server
server_path = sdk.generate_mcp_server("./my_server")
print(f"Server generated at: {server_path}")

# Run the server
if __name__ == "__main__":
    app = sdk.create_mcp_app()
    asyncio.run(sdk.run_server(app))
```

## ๐Ÿ“‹ Features

### ๐ŸŽฏ Core Features
- **Decorator-based tool registration** - Simple `@sdk.tool()` decorator
- **Automatic schema extraction** - Generate JSON schemas from Python type hints
- **Built-in middleware system** - Validation, logging, performance monitoring
- **Code generation** - Generate complete MCP servers and OpenAPI specs
- **Integration support** - Built-in support for external API integrations
- **Comprehensive error handling** - Graceful error handling and validation

### ๐Ÿ”ง Middleware System
- **ValidationMiddleware** - Automatic input validation and type conversion
- **LoggingMiddleware** - Comprehensive logging of tool execution
- **PerformanceMiddleware** - Performance monitoring and timing
- **CachingMiddleware** - Simple in-memory caching
- **RateLimitingMiddleware** - Rate limiting protection
- **SecurityMiddleware** - Input sanitization and security checks

### ๐Ÿ“Š Code Generation
- **MCP Server Generation** - Complete, runnable MCP servers
- **OpenAPI Specification** - Generate REST API specs from tools
- **Client SDK Generation** - Python client libraries
- **Documentation Generation** - Auto-generated documentation

## ๐Ÿ› ๏ธ Usage Examples

### Tool Types

```python
from mcp_dev_toolkit import create_sdk, ToolType

sdk = create_sdk("example-tools")

# Simple utility tool
@sdk.tool(tool_type=ToolType.SIMPLE)
async def calculate_hash(text: str, algorithm: str = "md5") -> dict:
    import hashlib
    hash_obj = getattr(hashlib, algorithm)()
    hash_obj.update(text.encode())
    return {"hash": hash_obj.hexdigest(), "algorithm": algorithm}

# AI/Agentic tool
@sdk.tool(tool_type=ToolType.AGENTIC)
async def analyze_sentiment(text: str) -> dict:
    # Integration with AI services
    return {"sentiment": "positive", "confidence": 0.95}

# Workflow orchestration tool
@sdk.tool(tool_type=ToolType.WORKFLOW)
async def process_document(file_path: str, operations: list) -> dict:
    # Multi-step document processing
    return {"processed": True, "operations_completed": len(operations)}

# External integration tool
@sdk.tool(tool_type=ToolType.INTEGRATION)
async def fetch_weather(city: str, api_key: str) -> dict:
    # Weather API integration
    return {"city": city, "temperature": 22, "condition": "sunny"}
```

### Custom Middleware

```python
from mcp_dev_toolkit import Middleware

class CustomAuthMiddleware(Middleware):
    def __init__(self, required_token: str):
        super().__init__(priority=1)  # High priority
        self.required_token = required_token
    
    async def process_pre(self, tool_schema, args, kwargs):
        token = kwargs.get('auth_token')
        if token != self.required_token:
            raise ValueError("Invalid authentication token")
        # Remove token from kwargs before tool execution
        kwargs.pop('auth_token', None)
        return None

# Add to SDK
sdk.add_middleware(CustomAuthMiddleware("secret-token"))
```

### Advanced Schema Definition

```python
from typing import Literal, List
from enum import Enum

class Priority(Enum):
    LOW = "low"
    MEDIUM = "medium"
    HIGH = "high"

@sdk.tool()
async def create_task(
    title: str,
    description: str = "",
    priority: Priority = Priority.MEDIUM,
    tags: List[str] = None,
    due_date: str = None,
    assignee: str = None
) -> dict:
    """Create a new task with specified parameters"""
    return {
        "task_id": f"task_{hash(title) % 10000}",
        "title": title,
        "description": description,
        "priority": priority.value,
        "tags": tags or [],
        "due_date": due_date,
        "assignee": assignee,
        "status": "created"
    }
```

## ๐Ÿ–ฅ๏ธ Command Line Interface

The toolkit includes a powerful CLI for project management:

```bash
# Create new project
mcp-toolkit create my-project --type server --output ./projects

# Generate code from existing tools
mcp-toolkit generate my_tools.py --server --openapi --client

# Validate tools
mcp-toolkit validate my_tools.py

# Run server
mcp-toolkit run my_server.py --debug
```

### CLI Commands

- **create** - Create new MCP projects with templates
- **generate** - Generate servers, APIs, and clients from existing tools
- **validate** - Validate tool definitions and schemas
- **run** - Run MCP servers with debugging support

## ๐Ÿ“ Project Structure

When you generate a project, you get a complete, production-ready structure:

```
my_project_server/
โ”œโ”€โ”€ my_project_server.py    # Main server file
โ”œโ”€โ”€ config.yml              # Configuration
โ”œโ”€โ”€ requirements.txt        # Dependencies
โ”œโ”€โ”€ README.md               # Documentation
โ””โ”€โ”€ tests/                  # Test files (when generated)
    โ”œโ”€โ”€ test_tools.py
    โ””โ”€โ”€ conftest.py
```

## ๐Ÿ”— Integration Support

### API Gateway Integration

```python
# Set up gateway for external API calls
sdk.set_gateway(api_gateway_client)

@sdk.integration(service="weather_api", endpoint="/current")
async def get_weather(city: str, gateway=None) -> dict:
    """Get current weather using gateway"""
    response = await gateway.get(f"/weather?city={city}")
    return response.json()
```

### Database Integration

```python
@sdk.tool()
async def query_database(sql: str, gateway=None) -> dict:
    """Execute database query safely"""
    # Use gateway for database connections
    result = await gateway.execute_query(sql)
    return {"rows": result, "count": len(result)}
```

## ๐Ÿงช Testing

The toolkit includes comprehensive testing utilities:

```python
import pytest
from mcp_dev_toolkit.testing import MCPTestClient

@pytest.mark.asyncio
async def test_url_shortener():
    client = MCPTestClient(sdk)
    
    result = await client.call_tool("url_shortener", {
        "url": "https://example.com",
        "service": "bitly"
    })
    
    assert result["service"] == "bitly"
    assert "short_url" in result
```

## ๐Ÿ“Š Monitoring and Analytics

Built-in performance monitoring and analytics:

```python
# Performance metrics are automatically collected
from mcp_dev_toolkit import PerformanceMiddleware

# Custom metrics middleware
class MetricsMiddleware(Middleware):
    async def process_post(self, tool_schema, result):
        # Send metrics to your monitoring system
        await send_metric(f"tool.{tool_schema.metadata.name}.success", 1)
        return None

sdk.add_middleware(MetricsMiddleware())
```

## ๐Ÿ”ง Configuration

### Environment-based Configuration

```python
import os
from mcp_dev_toolkit import create_sdk

sdk = create_sdk(
    name=os.getenv("MCP_SERVER_NAME", "default-server"),
    version=os.getenv("MCP_SERVER_VERSION", "1.0.0")
)

# Configure middleware based on environment
if os.getenv("ENVIRONMENT") == "production":
    sdk.add_middleware(SecurityMiddleware())
    sdk.add_middleware(RateLimitingMiddleware(max_calls=1000))
```

### YAML Configuration

```yaml
# config.yml
server:
  name: "my-mcp-server"
  version: "1.0.0"
  debug: false

middleware:
  - type: "validation"
    enabled: true
  - type: "logging" 
    enabled: true
    level: "INFO"
  - type: "performance"
    enabled: true

tools:
  rate_limit: 100
  timeout: 30
```

## ๐Ÿš€ Deployment

### Docker Deployment

```dockerfile
FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .
EXPOSE 8000

CMD ["python", "my_server.py"]
```

### Serverless Deployment

```python
# For AWS Lambda, Azure Functions, etc.
from mcp_dev_toolkit import create_lambda_handler

handler = create_lambda_handler(sdk)

def lambda_handler(event, context):
    return handler(event, context)
```

## ๐Ÿ“š API Reference

### Core Classes

- **MCPDevelopmentSDK** - Main SDK class
- **ToolType** - Enum for tool types
- **ToolMetadata** - Tool metadata container
- **ToolSchema** - Complete tool schema
- **Middleware** - Base middleware class

### Decorators

- **@sdk.tool()** - Register MCP tools
- **@sdk.integration()** - Register API integrations

### Utilities

- **SchemaExtractor** - Extract schemas from functions
- **MCPServerGenerator** - Generate complete servers
- **OpenAPIGenerator** - Generate API specifications

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

### Development Setup

```bash
git clone https://github.com/yourusername/mcp-dev-toolkit.git
cd mcp-dev-toolkit
pip install -e ".[dev]"
pre-commit install
```

### Running Tests

```bash
pytest tests/
pytest --cov=mcp_dev_toolkit tests/
```

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- Built on the Model Context Protocol (MCP) specification
- Inspired by modern API development frameworks
- Thanks to all contributors and the MCP community

---

**Made with โค๏ธ for the MCP community**

For more examples, documentation, and community support, visit our [GitHub repository](https://github.com/yourusername/mcp-dev-toolkit).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-dev-toolkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "ai-tools, development-toolkit, mcp, model-context-protocol, sdk, server-tools",
    "author": null,
    "author_email": "MCP Development Community <mcp-dev-toolkit@proton.me>",
    "download_url": "https://files.pythonhosted.org/packages/2b/60/e1d0c235ae26943a06bc5ee4f38e6f672d35ffa88f34a3daa92b21704772/mcp_dev_toolkit-1.1.0.tar.gz",
    "platform": null,
    "description": "# MCP Development Toolkit\n\n[![PyPI version](https://badge.fury.io/py/mcp-dev-toolkit.svg)](https://badge.fury.io/py/mcp-dev-toolkit)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA comprehensive development toolkit for building Model Context Protocol (MCP) tools and servers with built-in middleware, validation, schema extraction, and code generation.\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Basic installation\npip install mcp-dev-toolkit\n\n# Full installation with all features\npip install mcp-dev-toolkit[full]\n\n# Development installation\npip install mcp-dev-toolkit[dev]\n```\n\n### Create Your First Tool\n\n```python\nfrom mcp_dev_toolkit import create_sdk, ToolType\n\n# Create SDK instance\nsdk = create_sdk(\"my-awesome-tools\", \"1.0.0\")\n\n@sdk.tool(\n    name=\"url_shortener\",\n    description=\"Shorten URLs using various services\",\n    tool_type=ToolType.INTEGRATION,\n    tags=[\"url\", \"utility\"],\n    examples=[{\n        \"input\": {\"url\": \"https://example.com/very/long/url\", \"service\": \"bitly\"},\n        \"output\": {\"short_url\": \"https://bit.ly/abc123\"}\n    }]\n)\nasync def url_shortener(url: str, service: str = \"bitly\") -> dict:\n    \"\"\"Shorten a URL using the specified service\"\"\"\n    # Your implementation here\n    return {\n        \"original_url\": url,\n        \"short_url\": f\"https://short.ly/{hash(url) % 1000000}\",\n        \"service\": service,\n        \"created_at\": datetime.now().isoformat()\n    }\n\n# Generate MCP server\nserver_path = sdk.generate_mcp_server(\"./my_server\")\nprint(f\"Server generated at: {server_path}\")\n\n# Run the server\nif __name__ == \"__main__\":\n    app = sdk.create_mcp_app()\n    asyncio.run(sdk.run_server(app))\n```\n\n## \ud83d\udccb Features\n\n### \ud83c\udfaf Core Features\n- **Decorator-based tool registration** - Simple `@sdk.tool()` decorator\n- **Automatic schema extraction** - Generate JSON schemas from Python type hints\n- **Built-in middleware system** - Validation, logging, performance monitoring\n- **Code generation** - Generate complete MCP servers and OpenAPI specs\n- **Integration support** - Built-in support for external API integrations\n- **Comprehensive error handling** - Graceful error handling and validation\n\n### \ud83d\udd27 Middleware System\n- **ValidationMiddleware** - Automatic input validation and type conversion\n- **LoggingMiddleware** - Comprehensive logging of tool execution\n- **PerformanceMiddleware** - Performance monitoring and timing\n- **CachingMiddleware** - Simple in-memory caching\n- **RateLimitingMiddleware** - Rate limiting protection\n- **SecurityMiddleware** - Input sanitization and security checks\n\n### \ud83d\udcca Code Generation\n- **MCP Server Generation** - Complete, runnable MCP servers\n- **OpenAPI Specification** - Generate REST API specs from tools\n- **Client SDK Generation** - Python client libraries\n- **Documentation Generation** - Auto-generated documentation\n\n## \ud83d\udee0\ufe0f Usage Examples\n\n### Tool Types\n\n```python\nfrom mcp_dev_toolkit import create_sdk, ToolType\n\nsdk = create_sdk(\"example-tools\")\n\n# Simple utility tool\n@sdk.tool(tool_type=ToolType.SIMPLE)\nasync def calculate_hash(text: str, algorithm: str = \"md5\") -> dict:\n    import hashlib\n    hash_obj = getattr(hashlib, algorithm)()\n    hash_obj.update(text.encode())\n    return {\"hash\": hash_obj.hexdigest(), \"algorithm\": algorithm}\n\n# AI/Agentic tool\n@sdk.tool(tool_type=ToolType.AGENTIC)\nasync def analyze_sentiment(text: str) -> dict:\n    # Integration with AI services\n    return {\"sentiment\": \"positive\", \"confidence\": 0.95}\n\n# Workflow orchestration tool\n@sdk.tool(tool_type=ToolType.WORKFLOW)\nasync def process_document(file_path: str, operations: list) -> dict:\n    # Multi-step document processing\n    return {\"processed\": True, \"operations_completed\": len(operations)}\n\n# External integration tool\n@sdk.tool(tool_type=ToolType.INTEGRATION)\nasync def fetch_weather(city: str, api_key: str) -> dict:\n    # Weather API integration\n    return {\"city\": city, \"temperature\": 22, \"condition\": \"sunny\"}\n```\n\n### Custom Middleware\n\n```python\nfrom mcp_dev_toolkit import Middleware\n\nclass CustomAuthMiddleware(Middleware):\n    def __init__(self, required_token: str):\n        super().__init__(priority=1)  # High priority\n        self.required_token = required_token\n    \n    async def process_pre(self, tool_schema, args, kwargs):\n        token = kwargs.get('auth_token')\n        if token != self.required_token:\n            raise ValueError(\"Invalid authentication token\")\n        # Remove token from kwargs before tool execution\n        kwargs.pop('auth_token', None)\n        return None\n\n# Add to SDK\nsdk.add_middleware(CustomAuthMiddleware(\"secret-token\"))\n```\n\n### Advanced Schema Definition\n\n```python\nfrom typing import Literal, List\nfrom enum import Enum\n\nclass Priority(Enum):\n    LOW = \"low\"\n    MEDIUM = \"medium\"\n    HIGH = \"high\"\n\n@sdk.tool()\nasync def create_task(\n    title: str,\n    description: str = \"\",\n    priority: Priority = Priority.MEDIUM,\n    tags: List[str] = None,\n    due_date: str = None,\n    assignee: str = None\n) -> dict:\n    \"\"\"Create a new task with specified parameters\"\"\"\n    return {\n        \"task_id\": f\"task_{hash(title) % 10000}\",\n        \"title\": title,\n        \"description\": description,\n        \"priority\": priority.value,\n        \"tags\": tags or [],\n        \"due_date\": due_date,\n        \"assignee\": assignee,\n        \"status\": \"created\"\n    }\n```\n\n## \ud83d\udda5\ufe0f Command Line Interface\n\nThe toolkit includes a powerful CLI for project management:\n\n```bash\n# Create new project\nmcp-toolkit create my-project --type server --output ./projects\n\n# Generate code from existing tools\nmcp-toolkit generate my_tools.py --server --openapi --client\n\n# Validate tools\nmcp-toolkit validate my_tools.py\n\n# Run server\nmcp-toolkit run my_server.py --debug\n```\n\n### CLI Commands\n\n- **create** - Create new MCP projects with templates\n- **generate** - Generate servers, APIs, and clients from existing tools\n- **validate** - Validate tool definitions and schemas\n- **run** - Run MCP servers with debugging support\n\n## \ud83d\udcc1 Project Structure\n\nWhen you generate a project, you get a complete, production-ready structure:\n\n```\nmy_project_server/\n\u251c\u2500\u2500 my_project_server.py    # Main server file\n\u251c\u2500\u2500 config.yml              # Configuration\n\u251c\u2500\u2500 requirements.txt        # Dependencies\n\u251c\u2500\u2500 README.md               # Documentation\n\u2514\u2500\u2500 tests/                  # Test files (when generated)\n    \u251c\u2500\u2500 test_tools.py\n    \u2514\u2500\u2500 conftest.py\n```\n\n## \ud83d\udd17 Integration Support\n\n### API Gateway Integration\n\n```python\n# Set up gateway for external API calls\nsdk.set_gateway(api_gateway_client)\n\n@sdk.integration(service=\"weather_api\", endpoint=\"/current\")\nasync def get_weather(city: str, gateway=None) -> dict:\n    \"\"\"Get current weather using gateway\"\"\"\n    response = await gateway.get(f\"/weather?city={city}\")\n    return response.json()\n```\n\n### Database Integration\n\n```python\n@sdk.tool()\nasync def query_database(sql: str, gateway=None) -> dict:\n    \"\"\"Execute database query safely\"\"\"\n    # Use gateway for database connections\n    result = await gateway.execute_query(sql)\n    return {\"rows\": result, \"count\": len(result)}\n```\n\n## \ud83e\uddea Testing\n\nThe toolkit includes comprehensive testing utilities:\n\n```python\nimport pytest\nfrom mcp_dev_toolkit.testing import MCPTestClient\n\n@pytest.mark.asyncio\nasync def test_url_shortener():\n    client = MCPTestClient(sdk)\n    \n    result = await client.call_tool(\"url_shortener\", {\n        \"url\": \"https://example.com\",\n        \"service\": \"bitly\"\n    })\n    \n    assert result[\"service\"] == \"bitly\"\n    assert \"short_url\" in result\n```\n\n## \ud83d\udcca Monitoring and Analytics\n\nBuilt-in performance monitoring and analytics:\n\n```python\n# Performance metrics are automatically collected\nfrom mcp_dev_toolkit import PerformanceMiddleware\n\n# Custom metrics middleware\nclass MetricsMiddleware(Middleware):\n    async def process_post(self, tool_schema, result):\n        # Send metrics to your monitoring system\n        await send_metric(f\"tool.{tool_schema.metadata.name}.success\", 1)\n        return None\n\nsdk.add_middleware(MetricsMiddleware())\n```\n\n## \ud83d\udd27 Configuration\n\n### Environment-based Configuration\n\n```python\nimport os\nfrom mcp_dev_toolkit import create_sdk\n\nsdk = create_sdk(\n    name=os.getenv(\"MCP_SERVER_NAME\", \"default-server\"),\n    version=os.getenv(\"MCP_SERVER_VERSION\", \"1.0.0\")\n)\n\n# Configure middleware based on environment\nif os.getenv(\"ENVIRONMENT\") == \"production\":\n    sdk.add_middleware(SecurityMiddleware())\n    sdk.add_middleware(RateLimitingMiddleware(max_calls=1000))\n```\n\n### YAML Configuration\n\n```yaml\n# config.yml\nserver:\n  name: \"my-mcp-server\"\n  version: \"1.0.0\"\n  debug: false\n\nmiddleware:\n  - type: \"validation\"\n    enabled: true\n  - type: \"logging\" \n    enabled: true\n    level: \"INFO\"\n  - type: \"performance\"\n    enabled: true\n\ntools:\n  rate_limit: 100\n  timeout: 30\n```\n\n## \ud83d\ude80 Deployment\n\n### Docker Deployment\n\n```dockerfile\nFROM python:3.11-slim\n\nWORKDIR /app\nCOPY requirements.txt .\nRUN pip install -r requirements.txt\n\nCOPY . .\nEXPOSE 8000\n\nCMD [\"python\", \"my_server.py\"]\n```\n\n### Serverless Deployment\n\n```python\n# For AWS Lambda, Azure Functions, etc.\nfrom mcp_dev_toolkit import create_lambda_handler\n\nhandler = create_lambda_handler(sdk)\n\ndef lambda_handler(event, context):\n    return handler(event, context)\n```\n\n## \ud83d\udcda API Reference\n\n### Core Classes\n\n- **MCPDevelopmentSDK** - Main SDK class\n- **ToolType** - Enum for tool types\n- **ToolMetadata** - Tool metadata container\n- **ToolSchema** - Complete tool schema\n- **Middleware** - Base middleware class\n\n### Decorators\n\n- **@sdk.tool()** - Register MCP tools\n- **@sdk.integration()** - Register API integrations\n\n### Utilities\n\n- **SchemaExtractor** - Extract schemas from functions\n- **MCPServerGenerator** - Generate complete servers\n- **OpenAPIGenerator** - Generate API specifications\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n```bash\ngit clone https://github.com/yourusername/mcp-dev-toolkit.git\ncd mcp-dev-toolkit\npip install -e \".[dev]\"\npre-commit install\n```\n\n### Running Tests\n\n```bash\npytest tests/\npytest --cov=mcp_dev_toolkit tests/\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built on the Model Context Protocol (MCP) specification\n- Inspired by modern API development frameworks\n- Thanks to all contributors and the MCP community\n\n---\n\n**Made with \u2764\ufe0f for the MCP community**\n\nFor more examples, documentation, and community support, visit our [GitHub repository](https://github.com/yourusername/mcp-dev-toolkit).\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive development toolkit for building Model Context Protocol (MCP) tools and servers",
    "version": "1.1.0",
    "project_urls": {
        "Changelog": "https://github.com/mcp-toolkit/mcp-dev-toolkit/releases",
        "Documentation": "https://github.com/mcp-toolkit/mcp-dev-toolkit#readme",
        "Homepage": "https://github.com/mcp-toolkit/mcp-dev-toolkit",
        "Issues": "https://github.com/mcp-toolkit/mcp-dev-toolkit/issues",
        "Repository": "https://github.com/mcp-toolkit/mcp-dev-toolkit"
    },
    "split_keywords": [
        "ai-tools",
        " development-toolkit",
        " mcp",
        " model-context-protocol",
        " sdk",
        " server-tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c5f0fb0c93c4770db48c10a4c1afd3db9de0f2818832d7b3133cf2db1224a8c4",
                "md5": "fadef33e7036d59e44c3289332448869",
                "sha256": "8253670292254c37a656638961df64c7a1a44b406345e9420ebe1fe36d9a8cfe"
            },
            "downloads": -1,
            "filename": "mcp_dev_toolkit-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fadef33e7036d59e44c3289332448869",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 98904,
            "upload_time": "2025-07-20T03:02:17",
            "upload_time_iso_8601": "2025-07-20T03:02:17.211974Z",
            "url": "https://files.pythonhosted.org/packages/c5/f0/fb0c93c4770db48c10a4c1afd3db9de0f2818832d7b3133cf2db1224a8c4/mcp_dev_toolkit-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b60e1d0c235ae26943a06bc5ee4f38e6f672d35ffa88f34a3daa92b21704772",
                "md5": "b545567274eef7b5fb76e6302d8059eb",
                "sha256": "f5f379d4b85293fb824ff0c5548e60331fc2174b098cf05fa3a3db7f02894dd6"
            },
            "downloads": -1,
            "filename": "mcp_dev_toolkit-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b545567274eef7b5fb76e6302d8059eb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 75991,
            "upload_time": "2025-07-20T03:02:18",
            "upload_time_iso_8601": "2025-07-20T03:02:18.531752Z",
            "url": "https://files.pythonhosted.org/packages/2b/60/e1d0c235ae26943a06bc5ee4f38e6f672d35ffa88f34a3daa92b21704772/mcp_dev_toolkit-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-20 03:02:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mcp-toolkit",
    "github_project": "mcp-dev-toolkit",
    "github_not_found": true,
    "lcname": "mcp-dev-toolkit"
}
        
Elapsed time: 0.91235s