ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ShardingSphere-MCP 如何从源码构建发行包、配置 ShardingSphere-Proxy 逻辑库并首次验证自然语言任务

ShardingSphere-MCP 如何从源码构建发行包、配置 ShardingSphere-Proxy 逻辑库并首次验证自然语言任务 ShardingSphere-MCP 如何从源码构建发行包、配置 ShardingSphere-Proxy 逻辑库并首次验证自然语言任务【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere如果你已经有一个可以通过 JDBC 访问的 ShardingSphere-Proxy 逻辑库想让支持 MCP 的 AI 应用通过自然语言查看表结构、执行受控查询就需要先把 ShardingSphere-MCP 从源码构建成本地发行包把runtimeDatabases指向这个逻辑库再启动 HTTP MCP Server 并在 AI 应用中完成一次最小任务验证。本文覆盖这条完整路径构建、配置、启动、接入和验证。准备条件按快速开始的要求开始前需要JAVA_HOME或PATH中可用的 JDK 21一个可通过 JDBC 访问的 ShardingSphere-Proxy 逻辑库本文用它作为runtimeDatabases的连接目标一个支持 MCP 的 AI 应用、IDE 插件或 Agent 平台。从源码构建发行包在 ShardingSphere 仓库根目录执行./mvnw -pl distribution/mcp -am -DskipTests package该命令只构建 MCP 发行包及其依赖模块跳过测试。构建完成后进入发行包目录cd distribution/mcp/target/apache-shardingsphere-mcp-${version}${version}需要替换为你构建出的发行包版本。仓库当前 distribution/mcp/pom.xml 的版本为5.5.4-SNAPSHOT快速开始文档给出的示例值也是5.5.4-SNAPSHOT。预期结果当前目录包含bin/、conf/、lib/构建脚本还会生成plugins/和logs/目录见部署说明。lib/里放的是 MCP Server 依赖和内置 MCP 功能插件plugins/留给没有随包提供的外部 JDBC 驱动或额外功能插件。配置 ShardingSphere-Proxy 逻辑库编辑发行包内的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、127.0.0.1、3307、root和空密码都是文档示例值需要按你实际 ShardingSphere-Proxy 的连接信息替换。配置说明中对各字段的约定字段必填说明jdbcUrl是MCP Server 连接运行时数据库并解析数据库类型的 JDBC URL使用 ShardingSphere 规则能力时应指向 Proxy 逻辑库username是通常是 ShardingSphere-Proxy 逻辑库用户名必须显式写出且不能为空password否无密码账号可省略或写driverClassName是需与 JDBC URL 匹配的驱动类名例如 MySQL 用com.mysql.cj.jdbc.Driver几个需要注意的边界条目 key如logic_db就是之后在自然语言任务中引用的数据库名称。MCP Server 从jdbcUrl解析数据库类型所以驱动类要和 URL 匹配。默认发行包包含 MySQL、PostgreSQL、Oracle、SQL Server 和 openGauss 数据库类型连接器以及 MySQL、PostgreSQL 和 openGauss JDBC 驱动。如果目标驱动没有随发行包提供例如 Oracle、SQL Server 驱动启动前要把对应 JDBC 驱动 jar 放入plugins/。运行时 YAML 文件会拒绝未替换的尖括号占位符语法所以配置中不能残留...形式的占位符。连接 Proxy 逻辑库时用户看到的是 ShardingSphere 逻辑库、逻辑表和逻辑列而不是底层物理存储单元Proxy 可见元数据可能不同于物理库的完整结构。HTTP 传输配置项见conf/mcp-http.yaml默认端点是http://127.0.0.1:18088/mcptransport.http.bindHost默认127.0.0.1本机访问transport.http.port默认18088transport.http.endpointPath默认/mcp。本机首次验证保持默认即可。启动 HTTP MCP ServerUnix-like 系统在发行包根目录执行该命令会把 MCP Server 放到后台运行输出重定向到logs/mcp-http.logbin/start.sh logs/mcp-http.log 21 Windowsstart ShardingSphere MCP cmd /c bin\start.bat logs\mcp-http.log 21默认配置文件是conf/mcp-http.yaml。如果不想改发行包内的默认文件也可以用自定义配置文件启动bin/start.sh /path/to/mcp-http.yaml接入 AI 应用选择一个支持 MCP 的客户端配置上一步启动的 HTTP MCP Server 地址http://127.0.0.1:18088/mcp。文档给出了两个典型客户端的接入方式地址不是默认值时替换为实际地址Codex客户端集成说明codex mcp add shardingsphere --url http://127.0.0.1:18088/mcp codex mcp list也可以用配置文件方式写入~/.codex/config.toml[mcp_servers.shardingsphere] url http://127.0.0.1:18088/mcpClaude Code客户端集成说明claude mcp add --transport http shardingsphere http://127.0.0.1:18088/mcp claude mcp list识别成功的判断codex mcp list或claude mcp list中能看到shardingsphere出现在 MCP Server 列表Claude Code 中还可以运行/mcp命令查看。通过自然语言完成首次验证接入后在 AI 应用中输入以下最小任务验证 ShardingSphere-MCP 是否可以访问目标逻辑库“查看logic_db中有哪些表。”“查看orders的字段和索引。”“查询orders前 10 行。”如果 AI 应用可以返回逻辑库、表结构或查询结果说明 MCP Server 已经可以通过 AI 应用访问目标 ShardingSphere-Proxy 逻辑库首次使用即完成。按部署说明的健康检查顺序还可以分三层确认“真正可用”服务进程与端点可达确认进程已启动、端口已监听且http://127.0.0.1:18088/mcp与客户端配置一致。MCP 协议已就绪通过 AI 应用确认 MCP Server 已被识别。如果只有 HTTP 返回、读不到 capabilities/resources/tools说明端点可达但协议尚未正确接通。运行时数据库已就绪读取shardingsphere://runtime确认 transport、runtime 数据库摘要和运行状态或调用database_gateway_validate_runtime_database对已配置的 runtime database 做接入前校验。仅有 MCP Server 进程启动并不表示目标逻辑库已经可用——连接失败、权限不足或逻辑库不可见仍会阻断后续任务。首次验证失败时如何排查常见问题按现象给出了与首次使用最相关的几条路径现象可能原因处理方式MCP Server 启动失败Java 版本、配置文件路径、发行包目录或 YAML 必填字段不正确查看启动终端和logs/mcp.log确认使用 Java 21 及以上版本配置文件存在发行包lib/目录完整AI 应用无法连接transport.type、port、endpointPath、bindHost或 AI 应用中的 MCP Server 地址不一致逐项核对两侧配置看不到数据库或逻辑库runtimeDatabases中的名称不正确、连接失败、权限不足或目标范围确实为空读取当前可见数据库按返回的连接错误分类处理确认账号拥有元数据读取权限查不到表、列或索引连接目标不同、模式或命名空间不正确、账号权限不足或 Proxy 可见逻辑元数据与底层物理库不同先确认连接的是 Proxy 逻辑库还是数据库直连再检查模式、命名空间、账号权限连接失败时 MCP 响应会返回连接错误分类用于定位而不暴露 JDBC URL 和密码missing_jdbc_driver未找到配置的 JDBC 驱动对照plugins/目录检查、authentication_failed用户名或密码认证失败、authorization_failed账号没有访问权限、connection_timeout检查地址、端口、网络、database_not_visible指定逻辑库对当前连接不可见等。查询侧还有运行时保护查询默认最多返回 100 行、单次最多请求 5000 行超时最大可请求 300000 毫秒当前 MCP 会话达到工具调用次数保护限制时会返回tool_call_limit_exceeded处理方式是结束当前会话并重新创建 MCP 会话。向管理员或排障人员反馈时建议至少提供启动命令、移除密码/密钥/令牌后的 MCP 配置文件摘要、传输方式、端点地址和runtimeDatabases目标逻辑库名称、AI 应用中的 MCP Server 配置摘要、失败任务、错误分类以及logs/mcp.log中相关日志片段。下一步首次验证通过后根据快速开始的指引需要 OCI 镜像方式、安全部署建议内置 HTTP Server 不提供认证、授权、限流或审计日志不应直接暴露公网时参考部署说明需要了解不同连接目标下可执行的自然语言任务边界时参考能力清单需要直接调试 MCP 协议请求时参考自研集成附录。【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表