GameCode MCP2

Un servidor del Protocolo de Contexto de Modelo (MCP) para integración de herramientas, configurado mediante un archivo tools.yaml.

Documentación

Este repositorio se ha movido a https://git.navicore.tech/navicore/gamecode-mcp2.

La copia en GitHub está archivada y ya no se mantiene.

Dependabot Updates Rust CI

GameCode MCP2

Una implementación limpia (y posiblemente ingenua) del Protocolo de Contexto de Modelos (MCP) para la integración de herramientas.

Motivación: la menor cantidad de dependencias posible, una configuración tan simple y auditable como sea posible.

⚠️ Aviso de Seguridad

MCP es tecnología temprana. Permitir que los LLM ejecuten comandos del sistema es inherentemente riesgoso. Esta implementación prioriza la auditabilidad sobre las funciones: puedes leer cada línea que procesa las solicitudes del LLM. Aun así, procede con precaución. Solo el tiempo dirá si el enfoque de MCP es sólido.

Características Clave

  • Exposición directa de herramientas: las herramientas definidas en tools.yaml se exponen directamente a través de MCP, no mediante meta-herramientas
  • Implementación limpia del protocolo: JSON-RPC 2.0 puro sobre stdio sin dependencias externas
  • Carga dinámica de herramientas: configura herramientas mediante YAML sin recompilar
  • Herramientas integradas y externas: soporte tanto para manejadores internos como para comandos externos

Arquitectura

Este espacio de trabajo contiene dos crates:

  • mcp-server: el servidor MCP que carga herramientas desde tools.yaml y las expone a través del protocolo
  • mcp-client: una biblioteca cliente para pruebas e integración

Uso

Ejecutar el Servidor

# Build the server
cargo build --release --bin gamecode-mcp2

# Create a tools.yaml file (see examples/tools.yaml)
cp examples/tools.yaml .

# Run the server (it communicates via stdio)
./target/release/gamecode-mcp2

Uso con Claude Desktop

Agrega a tu configuración de Claude Desktop:

{
  "mcpServers": {
    "gamecode": {
      "command": "/path/to/gamecode-mcp2"
    }
  }
}

Uso con gamecode-cli

El crate mcp-client se puede usar como dependencia en gamecode-cli para la integración con MCP.

Configuración de Herramientas

Las herramientas se definen en tools.yaml:

tools:
  - name: my_tool
    description: Description for the LLM
    command: /path/to/command  # or "internal" for built-in
    args:
      - name: param1
        description: Parameter description
        required: true
        type: string
        cli_flag: --param  # null for positional
    internal_handler: handler_name  # for internal tools

Protocolo

Esta implementación sigue la especificación de MCP:

  • initialize: protocolo de enlace con el cliente
  • tools/list: devuelve todas las herramientas disponibles
  • tools/call: ejecuta una herramienta específica

Las herramientas se exponen directamente, no a través de meta-herramientas como "run".