GameCode MCP2

Um servidor Model Context Protocol (MCP) para integração de ferramentas, configurado usando um arquivo tools.yaml.

Documentação

Este repositório foi movido para https://git.navicore.tech/navicore/gamecode-mcp2.

A cópia no GitHub está arquivada e não é mais mantida.

Dependabot Updates Rust CI

GameCode MCP2

Uma implementação limpa (e possivelmente ingênua) do Model Context Protocol (MCP) para integração de ferramentas.

Motivação - o mínimo de dependências possível, uma configuração tão simples e auditável quanto possível.

⚠️ Aviso de Segurança

MCP é uma tecnologia inicial. Permitir que LLMs executem comandos do sistema é inerentemente arriscado. Esta implementação prioriza auditabilidade em vez de recursos - você pode ler cada linha que processa solicitações de LLM. Mesmo assim, prossiga com cautela. Somente o tempo dirá se a abordagem do MCP é sólida.

Principais Recursos

  • Exposição direta de ferramentas - Ferramentas definidas em tools.yaml são expostas diretamente via MCP, não por meio de meta-ferramentas
  • Implementação limpa do protocolo - JSON-RPC 2.0 puro sobre stdio sem dependências externas
  • Carregamento dinâmico de ferramentas - Configure ferramentas via YAML sem recompilar
  • Ferramentas integradas e externas - Suporte para manipuladores internos e comandos externos

Arquitetura

Este workspace contém duas crates:

  • mcp-server - O servidor MCP que carrega ferramentas de tools.yaml e as expõe via protocolo
  • mcp-client - Uma biblioteca cliente para testes e integração

Uso

Executando o 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

Usando com Claude Desktop

Adicione à sua configuração do Claude Desktop:

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

Usando com gamecode-cli

A crate mcp-client pode ser usada como dependência no gamecode-cli para integração MCP.

Configuração de Ferramentas

As ferramentas são definidas em 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 implementação segue a especificação MCP:

  • initialize - Handshake com o cliente
  • tools/list - Retorna todas as ferramentas disponíveis
  • tools/call - Executa uma ferramenta específica

As ferramentas são expostas diretamente, não por meio de meta-ferramentas como "run".