Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR-002: Adotar rmcp 1.7 como SDK MCP

Date: 2026-05-24 Status: Accepted Author: Rômulo Febasi


Context

Synapse expõe sua base de conhecimento via Model Context Protocol. Em maio de 2026 existem três caminhos:

  1. rmcp: SDK oficial Anthropic sob modelcontextprotocol/rust-sdk. Atualmente em 1.7.0 (lançado 2026-05-13), 78 releases, 1.x estável semver, edition 2024.
  2. mcp-protocol-sdk / mcp-sdk-rs: alternativas comunitárias.
  3. Implementar JSON-RPC sobre stdio na mão usando tokio + serde_json.

Decision

Usar rmcp = "1.7" com features ["server", "transport-io", "macros"].

Consequences

  • + alinhamento com o que Claude Code consome: menos surpresas em atualizações de protocolo.
  • + macros #[tool] reduzem boilerplate.
  • + ferramenta versionada em lockstep com a especificação MCP.
  • − vendor-lock leve no ecossistema Anthropic (mitigado pelo MCP ser spec aberta).
  • − ciclo de release rápido (~2 semanas). Pinar com til (~1.7) por 6 meses, então afrouxar para caret.
  • − puxa tokio; mitigado por feature flag mcp (default-on no release; quem só usa CLI pode opt-out).

Alternatives considered

  • Implementar JSON-RPC na mão: rejeitado. Reinventaria parsing, tracing, validação de schema, e ficaríamos sem as macros que mantêm tools.rs enxuto. O custo é alto e o ganho (independência de SDK) é baixo enquanto a spec MCP é estável.
  • mcp-protocol-sdk: muito menos baixadas, sem macros, trail de features em relação ao oficial.