如何把 ShardingSphere-MCP 接入 Claude Code 并验证 MCP 工具调用成功
如何把 ShardingSphere-MCP 接入 Claude Code 并验证 MCP 工具调用成功【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere如果你的目标是在 Claude Code 里直接完成查看逻辑库中的表、查看表结构、执行受控只读查询这类数据库任务就需要把 ShardingSphere-MCP 配置成 Claude Code 的 MCP Server并确认工具调用真正返回了数据库结果。ShardingSphere-MCP 是 Apache ShardingSphere 提供的 MCP Server用于把数据库元数据访问、受控 SQL 查询和数据库治理能力暴露给支持 MCP 的 AI 客户端。本文覆盖两种接入方式接入已经独立启动的 HTTP Server推荐主路径以及由 Claude Code 在本地拉起 STDIO 进程。前置条件是JAVA_HOME或PATH中可用的 JDK 21一个可通过 JDBC 访问的 ShardingSphere-Proxy 逻辑库Claude Code CLI 可用使用 HTTP 方式时Claude Code 所在环境可以访问http://127.0.0.1:18088/mcp或你实际配置的 MCP Server 地址。准备发行包构建并配置 ShardingSphere-MCP在仓库根目录执行构建命令生成 MCP 发行包./mvnw -pl distribution/mcp -am -DskipTests package然后进入构建产物目录${version}替换为构建出的发行包版本文档示例为5.5.4-SNAPSHOTcd distribution/mcp/target/apache-shardingsphere-mcp-${version}预期结果当前目录包含bin/、conf/、lib/。如果lib/不完整后续启动会失败参见后文的排查说明。编辑conf/mcp-http.yaml把runtimeDatabases指向已有的 ShardingSphere-Proxy 逻辑库runtimeDatabases: logic_db: jdbcUrl: jdbc:mysql://127.0.0.1:3307/logic_db username: root password: driverClassName: com.mysql.cj.jdbc.Driver其中logic_db是你在自然语言任务中引用的数据库名称。根据你实际部署的 ShardingSphere-Proxy 调整库名、地址127.0.0.1、端口3307、用户root和空密码这几个示例值。MCP Server 会从jdbcUrl解析数据库类型username和driverClassName是必填项无密码账号可以省略password或写。如果目标数据库驱动没有随发行包提供启动前把对应 JDBC 驱动 jar 放入plugins/。启动 HTTP MCP ServerUnix-like 系统bin/start.sh logs/mcp-http.log 21 Windowsstart ShardingSphere MCP cmd /c bin\start.bat logs\mcp-http.log 21默认配置文件是conf/mcp-http.yaml默认端点是http://127.0.0.1:18088/mcp。启动失败时查看启动终端和logs/mcp.log确认 Java 21 及以上版本、配置文件存在且发行包lib/目录完整。在 Claude Code 中添加 MCP Server确认 ShardingSphere-MCP 已经在http://127.0.0.1:18088/mcp上运行后执行claude mcp add --transport http shardingsphere http://127.0.0.1:18088/mcp如果你的 MCP Server 部署在其他地址把 URL 换成实际配置的地址。如果希望当前用户的所有 Claude Code 项目都能使用该 MCP Server可以使用用户级配置claude mcp add --transport http --scope user shardingsphere http://127.0.0.1:18088/mcp另一种等价的可选做法是在项目根目录创建.mcp.json{ mcpServers: { shardingsphere: { type: http, url: http://127.0.0.1:18088/mcp } } }可选分支由 Claude Code 拉起 STDIO 进程如果只在本地开发环境中使用且希望 Claude Code 在需要时自行启动 ShardingSphere-MCP 进程可以使用 STDIO 接入claude mcp add --transport stdio shardingsphere -- \ /path/to/apache-shardingsphere-mcp/bin/start.sh \ /path/to/apache-shardingsphere-mcp/conf/mcp-stdio.yaml将/path/to/apache-shardingsphere-mcp替换为实际发行包目录。STDIO 方式要求 Claude Code 能访问本地发行包和对应配置文件每个 MCP Server 进程必须且只能选择一种传输方式STDIO 进程不应被当作命令行交互入口手动运行。同一个shardingsphereserver name 只应对应一种接入方式如果需要同时保留 HTTP 与 STDIO使用不同的 server name。验证接入和工具调用成功验证分两步先确认 Claude Code 识别到 Server再确认工具调用能返回结果。第一步识别成功运行claude mcp list确认shardingsphere已出现在 MCP Server 列表中然后在 Claude Code 中运行/mcp第二步调用成功在 Claude Code 对话中执行一条最小验证任务文档给出的示例包括查看logic_db中有哪些表。查看orders表的列和索引。对已经配置的 runtime database 执行database_gateway_validate_runtime_database。如果工具已被列出并能返回查询结果说明接入已经生效。进一步可用的自然语言任务元数据查看、搜索、受控查询、规则变更预览等以能力清单为准见 能力清单。常见排查项接入后如果没有看到数据库或调用失败按常见问题中给出的现象定位现象文档给出的处理方式AI 应用无法连接 ShardingSphere-MCP检查transport.type、port、endpointPath、bindHost并确认 AI 应用使用相同的连接地址看不到数据库或逻辑库runtimeDatabases中的名称不正确、连接失败、权限不足或目标范围确实为空确认账号拥有元数据读取权限查不到表、列或索引先确认连接的是 ShardingSphere-Proxy 还是数据库直连再检查模式、命名空间、账号权限和 Proxy 可见元数据查询被拒绝SQL 不属于只读查询或包含锁定读、修改数据、修改结构等副作用只读任务使用查询语句副作用任务先要求预览再确认执行STDIO 模式没有响应STDIO 被当作命令行交互入口或 AI 应用没有正确拉起 MCP 进程诊断信息看 stderr 或logs/mcp.log连接失败时 MCP 响应会返回连接错误分类如missing_jdbc_driver未找到配置的 JDBC 驱动、authentication_failed、authorization_failed、connection_timeout、database_not_visible等分类只描述失败原因不暴露 JDBC URL、密码或堆栈信息。另外注意运行时保护查询默认最多返回 100 行单个 MCP 会话达到工具调用次数保护限制后会返回tool_call_limit_exceeded此时结束当前会话并重新创建 MCP 会话即可。涉及 SQL 执行或规则变更时应先审查预览内容再确认执行。完整的配置项说明transport.http各字段、runtimeDatabases字段约束、plugins/目录等见 配置说明如果希望通过 Anthropic API 平台侧接入则改用文档中的 Anthropic MCP Connector 路径而不是本文的本地 Claude Code 接入方式。【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考