
本文是上期文章的续作:
数据库 MCP 服务器仓库地址:https://github.com/bytebase/dbhub

我喜欢的方面
MCP 的两个可行选项是 JSON-RPC 和 gRPC。我庆幸 MCP 选择了前者。 虽然 gRPC 效率更高,但基于 JSON 的纯文本协议更容易上手。这种易用性对于 MCP 获得广泛采用很重要。
良好的文档
MCP 文档清晰明了,有不少的示例展示了实际实现。
文档见:https://modelcontextprotocol.io/introduction 示例见:https://modelcontextprotocol.io/examples
不错的调试工具
Inspector 地址:https://modelcontextprotocol.io/docs/tools/inspector

我遇到的困难
虽然我还没有实现过 MCP 客户端,但我怀疑支持两种传输类型也会使客户端实现变得复杂。
路由限制
我发现 MCP Host 如何将命令路由到适当的 [MCP 服务器,工具] 组存在设计问题。
我的数据库 MCP 服务器实现接受 DSN 连接到数据库:
{"mcpServers": {"dbhub": {"command": "npx","args": ["-y","@bytebase/dbhub","--transport","stdio","--dsn","postgres://postgres:postgres@localhost:5432/dbname?sslmode=disable"]}}}
用户必须为每个数据库连接加载一个新的 DBHub 服务器,这导致 Claude Desktop 中出现重复的工具命令。 虽然我可以修改实现以允许 DBHub 处理多个数据库,但仍不清楚如何指示 MCP 主机将 Prompt 路由到特定所需的数据库。
在开发过程中,必须重启 Claude Desktop 来加载新的 MCP 服务器很烦人。
Claude Desktop 仅支持 stdio Transport,这迫使我不得不在服务器中实现 stdio 支持。
MCP 仓库中关于仅支持 stdio Transport 的讨论地址:
https://github.com/orgs/modelcontextprotocol/discussions/16
3. 我发现了一个 bug:
https://github.com/modelcontextprotocol/servers/issues/812

https://modelcontextprotocol.io/development/roadmap
Hierarchical Agent Systems: Improved support for trees of agents through namespacing and topology awareness
我目前最大的担忧是核心 MCP 团队似乎人手严重不足。生态系统正在发展,新问题正在迅速积累。他们需要更多的帮手。








