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.
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.yamlse 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 desdetools.yamly las expone a través del protocolomcp-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 clientetools/list: devuelve todas las herramientas disponiblestools/call: ejecuta una herramienta específica
Las herramientas se exponen directamente, no a través de meta-herramientas como "run".