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:
rmcp: SDK oficial Anthropic sobmodelcontextprotocol/rust-sdk. Atualmente em 1.7.0 (lançado 2026-05-13), 78 releases, 1.x estável semver, edition 2024.mcp-protocol-sdk/mcp-sdk-rs: alternativas comunitárias.- 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 flagmcp(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.rsenxuto. 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.