用途
CoreMCP 是一个用 Go 编写的 Model Context Protocol(MCP)服务器,用于把 SQL 数据库作为 MCP 工具和提示暴露给 LLM 与 AI 智能体,实现基于大模型的数据分析。它作为单一静态二进制运行,内嵌数据库驱动,可通过 stdio 与本地 MCP 客户端(如 Claude Desktop)通信,也可通过出站 WebSocket 在 NAT 后远程运行。
主要能力
- 数据库适配器:目前提供 MSSQL(SQL Server 2000+,感知 Turkish_CI_AS 排序规则)和 PostgreSQL 适配器。Firebird 适配器开发中(工厂当前返回占位错误);MySQL 在路线图中。
- 传输方式:stdio(默认)与出站 WebSocket 连接模式(connect),后者用于不允许入站 443 端口的网络(工厂车间、企业 VPC、医院网络等)。
- 模式发现:启动时连接每个已配置数据源,扫描表、列、键、关系,并提取列注释(如 MSSQL 的 MS_Description),结果作为单个 MCP 提示暴露,为模型提供模式上下文。
- 内置工具:list_tables(表及列数、主键、外键数量)、describe_table(单表完整模式:列、类型、可空性、主键、外键、列注释)、list_views(所有视图及列定义)、list_procedures(存储过程及参数名、类型、模式 IN/OUT/INOUT 和示例调用)、execute_procedure(仅当 readonly: false 时启用)。
- 自定义工具:可将可复用的参数化查询定义为一级 MCP 工具,模型可直接调用而无需每轮重新推导 SQL。
- 安全机制:T-SQL 感知的词法分析器(fail-closed 自定义分词器,剥离注释和字符串字面量后分类语句,仅 SELECT 和 WITH 通过;DROP、ALTER、UPDATE、DELETE、TRUNCATE、EXEC、OPENROWSET、SELECT…INTO 等在到达数据库前被拒绝;多语句载荷致命,阻止堆叠查询攻击);强制行数上限(每个 SELECT 追加或包裹 LIMIT);基于正则的 PII 脱敏(结果字符串在到达客户端前后处理)。
- 中间件:NOLOCK / READ UNCOMMITTED(按数据源,MSSQL);土耳其字符与乱码(mojibake)修正中间件(MSSQL)。
- 远程配置同步:中继协议支持 run_sql、get_schema、list_sources、health_check、config_sync 等线命令。
使用方式
从 Releases 页面下载对应平台二进制(linux/amd64、linux/arm64、darwin/{amd64,arm64}、windows/amd64),或使用 Linux/macOS 一行安装器,或使用多架构镜像(linux/amd64、linux/arm64)。从源码构建需要 Go 1.23+。
本地模式(serve):stdio 为默认传输,用于本地 MCP 客户端(如 Claude Desktop),在 claude_desktop_config.json 中配置。
远程模式(connect):connect 打开到中继(通常为 CoreBase Cloud)的出站 WebSocket 并在其上服务 MCP 流量,智能体从不接受入站连接。
配置:在工作目录放置 coremcp.yaml,可参考 coremcp.example.yaml 获取更完整示例。测试时可使用 dummy 适配器(无需真实数据库)。
添加适配器:创建 pkg/adapter/yourdb/,实现 core.Source,在 pkg/adapter/factory.go 中注册;pkg/adapter/dummy/dummy.go 是最小参考实现。
适用场景
适用于需要让 LLM 或 AI 智能体访问本地或本地部署数据库(包括传统系统)进行数据分析的场景,尤其是位于防火墙后、不允许入站连接的网络环境。CoreMCP 是 CoreBase(面向企业数据的 AI 智能体平台)的开源本地网关组件,运行在自有服务器上,数据库凭据保留在本地,仅使用出站 443 端口、零信任连接。
限制
- 默认只读:省略 readonly 时保持仅 SELECT 模式;需设置 readonly: false 才能启用 execute_procedure。推荐使用仅具 SELECT(以及仅对打算暴露的过程具 EXECUTE)权限的专用数据库用户,作为纵深防御。
- 安全校验仅作为一层防护,不应作为唯一防护,需配合最小权限数据库角色。
- Firebird 适配器仍在开发中;MySQL、HTTP 传输、审计日志、查询结果缓存、写操作(带显式安全防护)、多智能体管理、实时监控在路线图中。
- 许可:Apache License 2.0。安全报告见 SECURITY.md,贡献见 CONTRIBUTING.md。联系邮箱:support@corebasehq.com。