DBAPI MCP 功能详解:基于 MCP 协议将数据 API 接入 AI 智能体
DBAPI MCP 功能详解:基于 MCP 协议将数据 API 接入 AI 智能体
概述
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 提出并开源的开放标准协议,用于规范 AI 模型与外部工具、数据源之间的交互方式。该协议被业界类比为"AI 领域的 USB-C 接口"——任何实现 MCP 规范的客户端与服务端均可通过统一协议完成集成。
DBAPI 企业版 4.5.0 起内置 MCP Server 能力,可将 DBAPI 中已发布的 API 映射为 MCP 工具,供 AI 客户端发现与调用。
核心价值
在企业数据应用场景中,AI 模型需访问数据库、查询业务数据并调用内部服务。传统模式下,每个业务场景均需独立开发接口与集成代码,开发与维护成本较高。
DBAPI 的 MCP 功能提供以下能力:
- 零代码集成:DBAPI 中已发布的 API 可直接作为 AI 可调用的工具,无需编写额外的 AI 集成代码
- 统一管控:所有数据工具在 DBAPI 后台统一管理,权限、限流与监控能力开箱即用
- 开放生态:兼容 Claude Desktop、Cursor、LangChain、Spring AI 等主流 AI 客户端与开发框架
- 企业级安全:私有 API 通过 Token 认证,访问权限可精细控制
工作原理
AI 客户端 / AI 框架(Claude Desktop / Cursor / LangChain / Spring AI)
│ MCP 协议(Streamable HTTP)
▼
DBAPI MCP Server(端口 8526)
│ HTTP 调用
▼
DBAPI 服务端(端口 8520 / Gateway)
│
▼
数据库 / Elasticsearch / 第三方接口
MCP Server 作为协议层网关,将 DBAPI 服务端发布的 API 注册为 MCP 工具。AI 客户端通过标准 MCP 协议发现工具列表并发起调用,MCP Server 将请求转发至 DBAPI 服务端执行,最终将结果返回给 AI 客户端。
快速开始
前提条件
- DBAPI 企业版 4.5.0 及以上版本
- DBAPI 服务端已启动(默认地址
http://127.0.0.1:8520) - 至少有一个已发布的 API
启动 MCP Server
# 1. 编辑配置文件
vim mcp/mcp-config.yaml
# 2. 启动 MCP 服务
bash bin/dbapi-mcp.sh start
发布 API 至 MCP
仅已发布且开启 MCP 开关的 API 才会暴露为 MCP 工具。
- 登录 DBAPI 管理后台
- 进入 API 管理页面
- 定位目标 API,点击操作栏中的 MCP 开关
- 开启后,MCP Server 将在下一个刷新周期自动同步该 API

调用 MCP 工具
MCP 端点地址:http://<MCP_SERVER_HOST>:8526/mcp
# 1. 调用 initialize 获取 Session ID(位于响应头 Mcp-Session-Id 中)
curl -v http://127.0.0.1:8526/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
# 2. 携带 Session ID 调用 tools/list(请替换为实际 Session ID)
curl http://127.0.0.1:8526/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: mcp-session-xxxxx" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 3. 调用指定工具(私有 API 需同时携带 Token)
curl http://127.0.0.1:8526/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: mcp-session-xxxxx" \
-H "Authorization: YOUR_BUSINESS_TOKEN" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"dbapi_xxxx","arguments":{"key":"value"}}}'
AI 客户端接入
DBAPI 的 MCP Server 使用 Streamable HTTP 协议。
Claude Code
执行以下命令注册 MCP Server:
claude mcp add --transport http dbapi_mcp http://127.0.0.1:8526/mcp --header "Authorization: YOUR_TOKEN"
执行以下命令验证连接状态:
claude mcp list
输出如下结果表示连接成功:
dbapi_mcp: http://127.0.0.1:8526/mcp (HTTP) - ✓ Connected
opencode
在 opencode.json 中添加以下配置:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dbapi": {
"type": "remote",
"url": "http://127.0.0.1:8526/mcp",
"enabled": true,
"headers": {
"Authorization": "YOUR TOKEN"
}
}
}
}
OpenClaw
在 openclaw.json 中添加以下配置:
{
"mcp": {
"servers": {
"dbapi": {
"url": "http://127.0.0.1:8526/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "YOUR TOKEN"
}
}
}
}
}
Cursor
编辑 .cursor/mcp.json:
{
"mcpServers": {
"dbapi": {
"url": "http://127.0.0.1:8526/mcp",
"transport": "streamable_http",
"headers": {
"Authorization": "YOUR_BUSINESS_TOKEN"
}
}
}
}
Cherry Studio

Chatbox

LangChain
LangChain 提供原生 MCP 客户端支持。以下示例展示最小化调用方式:
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient(
{
"dbapi": {
"transport": "http", # Streamable HTTP 传输方式
"url": "http://127.0.0.1:8526/mcp", # MCP 服务地址
"headers": {
# 鉴权令牌(JWT)
"Authorization": "YOUR TOKEN",
},
}
}
)
以下为结合 LLM 的完整调用示例:
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
async def main():
# 初始化 MCP 客户端,配置 MCP 服务连接信息(使用 HTTP 传输协议)
client = MultiServerMCPClient(
{
"dbapi": {
"transport": "http", # Streamable HTTP 传输方式
"url": "http://127.0.0.1:8526/mcp", # MCP 服务地址
"headers": {
# 鉴权令牌(JWT)
"Authorization": "YOUR TOKEN",
},
}
}
)
# 异步获取 MCP 服务端暴露的所有工具列表
tools = await client.get_tools()
# 初始化 DeepSeek 大模型(OpenAI 兼容接口)
model = ChatOpenAI(
model="deepseek-v4-flash", # 使用的模型名称
api_key="sk-xxx", # DeepSeek API Key
base_url="https://api.deepseek.com", # DeepSeek API 地址
temperature=0, # 温度设为 0,输出更稳定
)
# 创建 ReAct 风格的 Agent,将 LLM 与 MCP 工具绑定
# Agent 可自主决定何时调用哪个工具
agent = create_react_agent(model, tools)
# 接收用户输入,调用 Agent 异步执行
result = await agent.ainvoke({"messages": [{"role": "user", "content": input("请输入您的问题: ")}]})
# 输出 Agent 最终回复(消息列表中最后一条)
print(result["messages"][-1].content)
# 启动异步事件循环,运行 main 函数
asyncio.run(main())
认证机制
| API 类型 | 说明 | 是否需要 Token |
|---|---|---|
| 开放 API | 任何客户端均可访问 | 否 |
| 私有 API | 仅经授权的客户端可访问 | 是,需在请求头 Authorization 中携带 |
获取 Token
# 通过 clientId 与 secret 申请 Token(需先在客户端管理中创建)
curl "http://127.0.0.1:8520/token/generate?clientId=YOUR_CLIENT_ID&secret=YOUR_CLIENT_SECRET"
将返回的 Token 配置至 MCP 客户端的 headers.Authorization 字段即可。
Token 具有过期时间,过期后需重新获取。建议在客户端管理中配置较长的有效期,以减少续签频率。
应用场景
场景一:自然语言数据查询
将数据库查询类 API 发布为 MCP 工具后,业务人员可在 Claude Desktop 中通过自然语言发起查询,例如:
“上个月华东区销售额排名前 10 的产品有哪些?”
LLM 将自动识别意图,调用 DBAPI 中对应的查询 API,并以自然语言形式返回结果。该方案无需业务人员掌握 SQL 语法,亦无需登录业务系统。
场景二:智能报表生成
通过编排 API 将多个数据查询组合为完整的报表接口,并发布为 MCP 工具。AI 客户端调用后,可自动生成结构化的数据分析报告。
场景三:数据异常巡检 Agent
将数据监控类 API 注册为 LangChain Agent 的工具。Agent 可基于定时任务自动巡检业务数据,并在检测到异常时通过钉钉 / 飞书机器人推送告警。
场景四:企业知识库增强
将企业内部系统中的数据查询接口(如订单查询、客户信息、库存状态等)发布为 MCP 工具,并集成至企业自建的 AI 助手,使其具备实时查询企业数据的能力。
注意事项
- MCP Server 默认监听 8526 端口,可在
mcp-config.yaml中调整 - 仅已发布且开启 MCP 开关的 API 才会暴露为 MCP 工具
- API 修改后,MCP Server 将自动同步 URL、参数定义等元数据,无需重启服务
- DBAPI 具备完整的 API 鉴权体系(Token 认证、客户端授权)及 IP 防火墙规则,MCP 客户端自动继承上述安全能力,无需额外配置访问控制
- 调用私有 API 时,请确保对应客户端已获得相应 API 的访问授权
版本要求:DBAPI 企业版 4.5.0 及以上版本支持 MCP 功能。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)