MCP Server Creator

Un meta-servidor para generar dinámicamente configuraciones de servidores MCP y código Python.

Documentación

Creador de Servidores MCP 🏗️

PyPI version License: MIT

¡Un potente servidor de Protocolo de Contexto de Modelo (MCP) que crea otros servidores MCP! Este meta-servidor proporciona herramientas para generar dinámicamente configuraciones de servidores FastMCP y código Python.

🚀 Inicio Rápido

Instalar con pip

pip install mcp-server-creator

Ejecutar con uvx (recomendado)

uvx mcp-server-creator

Ejecutar como módulo

python -m mcp_server_creator

Características

  • Creación Dinámica de Servidores: Crea nuevas configuraciones de servidores MCP sobre la marcha
  • Constructor de Herramientas: Añade herramientas personalizadas con parámetros, tipos de retorno e implementaciones
  • Gestor de Recursos: Añade recursos estáticos y dinámicos con soporte de plantillas
  • Generación de Código: Genera código Python completo y ejecutable para tus servidores
  • Exportación de Archivos: Guarda los servidores generados directamente en archivos Python
  • Plantillas de Ejemplo: Servidor de ejemplo integrado para demostrar las capacidades

Uso

Como Servidor MCP

El Creador de Servidores MCP es en sí mismo un servidor MCP que puede usarse con Claude Desktop o cualquier cliente MCP.

Configuración de Claude Desktop

Añade a tu claude_desktop_config.json:

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

Uso Programático

from mcp_server_creator import create_server, add_tool, generate_server_code

# Create a new server configuration
result = create_server(
    name="My API Server",
    description="A custom API integration server",
    version="1.0.0"
)

# Add a tool
add_tool(
    server_id="my_api_server",
    tool_name="fetch_data",
    description="Fetch data from the API",
    parameters=[{"name": "endpoint", "type": "str"}],
    return_type="dict",
    implementation='return {"data": f"Fetched from {endpoint}"}'
)

# Generate the code
code = generate_server_code("my_api_server")
print(code)

Herramientas Disponibles

Gestión de Servidores

  • create_server: Crea una nueva configuración de servidor MCP
  • list_servers: Lista todas las configuraciones de servidores en memoria
  • get_server_details: Obtén información detallada sobre un servidor específico

Gestión de Herramientas

  • add_tool: Añade una herramienta a un servidor existente
    • Soporta herramientas síncronas y asíncronas
    • Definiciones de parámetros personalizados con tipos y valores predeterminados
    • Gestión automática de importaciones

Gestión de Recursos

  • add_resource: Añade un recurso a un servidor existente
    • Recursos estáticos para datos fijos
    • Plantillas de recursos dinámicos con parámetros
    • Tipos MIME personalizados

Generación de Código

  • generate_server_code: Genera código Python completo para un servidor
  • save_server: Guarda el código del servidor generado en un archivo
  • create_example_server: Crea un Servicio Meteorológico de ejemplo completo

Ejemplo: Creación de un Servicio Meteorológico

import asyncio
from mcp_server_creator import create_server, add_tool, add_resource, save_server

async def create_weather_service():
    # Create the server
    create_server(
        name="Weather Service",
        description="Get weather information",
        version="1.0.0"
    )
    
    # Add a weather tool
    add_tool(
        server_id="weather_service",
        tool_name="get_weather",
        description="Get current weather for a city",
        parameters=[
            {"name": "city", "type": "str"},
            {"name": "units", "type": "str", "default": '"celsius"'}
        ],
        return_type="dict",
        is_async=True,
        implementation='''
    # Your weather API logic here
    return {
        "city": city,
        "temperature": 20,
        "units": units,
        "condition": "sunny"
    }'''
    )
    
    # Add a resource
    add_resource(
        server_id="weather_service",
        uri="weather://{city}/current",
        name="Current Weather",
        description="Get current weather data",
        is_template=True,
        implementation='return {"city": city, "weather": "sunny"}'
    )
    
    # Save to file
    await save_server("weather_service", "weather_service.py")

# Run the creation
asyncio.run(create_weather_service())

Desarrollo

Configuración

git clone https://github.com/GongRzhe/mcp-server-creator.git
cd mcp-server-creator
pip install -e .

Pruebas

python test_mcp_creator.py

Requisitos

  • Python 3.8+
  • FastMCP >= 0.1.0

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).

Autor

GongRzhe - gongrzhe@gmail.com

Enlaces