关于 U2 MCP Server
U2 MCP Server 将 AI 助手连接到 Rocket Universe 和 UniData MultiValue 数据库,支持自然语言查询和数据库操作。它将记录与查询工具、字典访问、事务处理及可持久化的数据库说明整合在一起。
主要功能
- 01管理连接,支持连接池和 SSL
- 02读取、写入和删除记录
- 03运行 RetrieVe/UniQuery 与 TCL/ECL 命令
- 04查看文件、字典和字段定义
- 05调用 BASIC 子程序并管理事务
- 06保存和搜索数据库知识
适用场景
- 01询问客户或发票记录相关信息
- 02探索数据库文件和字段定义
- 03通过可配置的安全控制运行查询
- 04跨会话复用已保存的数据库说明
MCP 相关
该 MCP 服务向 MCP 客户端提供数据库连接、文件、查询、字典、BASIC 子程序、事务及知识持久化工具。它支持本地 stdio,以及集中式 HTTP/SSE 和 Streamable HTTP 部署模式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx u2-mcpU2_HOSTUniverse/UniData server hostname or IP addressU2_USERDatabase usernameU2_PASSWORD密钥Database passwordU2_ACCOUNTAccount name to connect toU2_SERVICEService type: 'uvcs' for Universe, 'udcs' for UniDataU2_PORTServer portU2_SSLEnable SSL connectionU2_READ_ONLYDisable write operations for safe explorationU2_MAX_RECORDSMaximum records returned from SELECT queriesU2_BLOCKED_COMMANDSComma-separated list of blocked TCL commands本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
u2-mcp
使用自然语言将 Claude 连接到你的 Universe/UniData 数据库。
u2-mcp 是一个 MCP 服务,可让 Claude 等 AI 助手查询和使用 Rocket Universe 与 UniData MultiValue 数据库。用通俗的英语提问,即可从你的数据中获取真实答案。
首个面向 Pick/MultiValue 数据库系列的 MCP 服务。
你可以用它做什么?
不用编写 RetrieVe 查询,只需向 Claude 提问:
| 你提问 | Claude 会做什么 |
|---|---|
| “加利福尼亚州有多少客户?” | 查询数据库并告诉你“1,247 位客户” |
| “显示订单 ORD001” | 读取记录并显示所有字段 |
| “有哪些可用文件?” | 列出你账户中的所有文件 |
| “描述 CUSTOMERS 文件” | 显示字典中的字段定义 |
工作原理
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Desktop │◄───►│ u2-mcp │◄───►│ Universe/UniData│
│ (You ask here) │ │ (Translates) │ │ (Your data) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- 你向 Claude 提出有关数据库的问题
- Claude 使用相应的工具调用 u2-mcp
- u2-mcp 查询你的 Universe/UniData 服务
- Claude 以易读的格式返回结果
刚接触 MCP? 请参阅什么是 MCP?,了解完整说明。
文档
| 指南 | 说明 |
|---|---|
| 什么是 MCP? | 了解 MCP 以及 u2-mcp 的工作原理 |
| 安装 | 完整的安装指南 |
| 快速入门 | 10 分钟内开始运行 |
| 配置 | 所有配置选项 |
| 工具参考 | 详细的工具文档 |
| 使用示例 | 常见用法模式 |
| OAuth 设置 | 使用 SSO 集成 Claude.ai |
功能
- 连接管理 - 通过连接池和 SSL 支持连接到 Universe/UniData 服务
- 文件操作 - 读取、写入和删除记录,同时保留 MultiValue 语义
- 查询执行 - 在安全控制下运行 RetrieVe/UniQuery 语句
- 字典访问 - 探索文件结构和字段定义
- BASIC 子程序调用 - 执行已编目的 BASIC 程序
- 事务支持 - 完整的事务管理,支持提交/回滚
- 针对 AI 优化 - 内置查询示例和语法帮助,改善大模型交互效果
安装
pip install u2-mcp
也可以使用 uvx 进行隔离执行:
uvx u2-mcp
快速开始
前提条件
- Python 3.10+
- 可访问 Rocket Universe 或 UniData 服务
uopy软件包(作为依赖项自动安装)
配置
设置数据库连接所需的环境变量:
export U2_HOST=server.example.com
export U2_USER=username
export U2_PASSWORD=password
export U2_ACCOUNT=MYACCOUNT
export U2_SERVICE=uvcs # or 'udcs' for UniData
Claude Desktop 配置
将以下内容添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"u2": {
"command": "uvx",
"args": ["u2-mcp"],
"env": {
"U2_HOST": "server.example.com",
"U2_USER": "user",
"U2_PASSWORD": "password",
"U2_ACCOUNT": "MYACCOUNT"
}
}
}
}
使用示例
连接后,你可以使用自然语言与 Universe 数据库交互:
- “列出加利福尼亚州的所有客户”
- “从 CUSTOMERS 文件读取记录 CUST001”
- “显示 ORDERS 文件的字典”
- “统计所有金额超过 $1000 的未结发票”
可用工具
连接管理
connect- 建立与 Universe/UniData 服务的连接disconnect- 关闭连接list_connections- 显示活动连接
文件操作
list_files- 列出账户中的可用文件read_record- 按 ID 读取单条记录read_records- 读取多条记录write_record- 写入/更新记录delete_record- 删除记录get_file_info- 获取文件统计信息
查询执行
execute_query- 运行 RetrieVe/UniQuery 语句execute_tcl- 运行 TCL/ECL 命令get_select_list- 执行 SELECT 并返回记录 ID
字典访问
list_dictionary- 列出字典项get_field_definition- 获取字段详情describe_file- 查看文件的高级描述
高级功能
call_subroutine- 调用 BASIC 子例程begin_transaction/commit_transaction/rollback_transaction- 事务管理
知识持久化
save_knowledge- 保存有关数据库的已学习信息list_knowledge- 列出所有已保存的知识主题get_knowledge_topic- 检索特定主题search_knowledge- 搜索所有已保存的知识delete_knowledge- 删除知识主题
配置选项
| 变量 | 描述 | 默认值 |
|---|---|---|
U2_HOST | 服务主机名或 IP 地址 | 必填 |
U2_USER | 用户名 | 必填 |
U2_PASSWORD | 密码 | 必填 |
U2_ACCOUNT | 账户名称 | 必填 |
U2_SERVICE | 服务类型(uvcs 或 udcs) | uvcs |
U2_PORT | 服务端口 | 31438 |
U2_SSL | 启用 SSL | false |
U2_TIMEOUT | 连接超时时间(秒) | 30 |
U2_READ_ONLY | 禁用写入操作 | false |
U2_MAX_RECORDS | SELECT 结果的最大数量 | 10000 |
U2_BLOCKED_COMMANDS | 以逗号分隔的已屏蔽 TCL 命令 | DELETE.FILE,CLEAR.FILE |
U2_KNOWLEDGE_PATH | 知识文件的自定义路径 | ~/.u2-mcp/knowledge.md |
知识持久化
MCP 服务包含知识持久化功能,允许 Claude 在不同会话中保存和回忆有关数据库的已学习信息。这能避免重复的探索工作,并加快后续交互。
工作原理
当 Claude 发现有关数据库的有用信息(文件用途、字段含义、可用查询)时,可以使用 save_knowledge 工具保存这些知识。这些信息会存储在 Markdown 文件中,并通过 u2://knowledge 资源自动供后续对话使用。
保存的内容
- 文件描述 - 每个文件包含的内容(例如,“AR-CUST 是客户主文件”)
- 字段映射 - 各字段所包含的数据(例如,“字段 1 是客户名称”)
- 查询模式 - 能够产生良好结果的查询
- 数据格式 - 日期格式、代码含义、转换说明
- 关系 - 文件之间的关联方式
存储位置
知识默认存储在 ~/.u2-mcp/knowledge.md 中。你可以使用 U2_KNOWLEDGE_PATH 环境变量自定义此位置:
{
"env": {
"U2_KNOWLEDGE_PATH": "/path/to/custom/knowledge.md"
}
}
使用示例
Claude 发现 AR-CUST 包含客户记录后:
Claude: I found that AR-CUST is the customer master file. Let me save this for future reference.
[Calls save_knowledge("AR-CUST file", "Customer master file. Key is customer number. Field 1=name, Field 2=address...")]
在下一次对话中,Claude 将已了解这些信息,无需再次探索。
集中式部署(HTTP/SSE 模式)
对于团队环境,你可以将 u2-mcp 作为集中式 HTTP 服务运行,而不是使用本地 stdio 模式。这样可以:
- 让整个团队共用一个数据库连接
- 共用知识库
- 集中管理凭据
- 从任何兼容 MCP 的客户端访问
运行 HTTP 服务
# Basic HTTP server on default port 8080
u2-mcp --http
# Custom host and port
u2-mcp --http --host 0.0.0.0 --port 3000
# Or using environment variables
export U2_HTTP_HOST=0.0.0.0
export U2_HTTP_PORT=3000
u2-mcp --http
Docker 部署
FROM python:3.12-slim
RUN pip install u2-mcp
ENV U2_HOST=your-universe-server
ENV U2_USER=username
ENV U2_PASSWORD=password
ENV U2_ACCOUNT=MYACCOUNT
ENV U2_HTTP_PORT=8080
EXPOSE 8080
CMD ["u2-mcp", "--http"]
docker build -t u2-mcp-server .
docker run -p 8080:8080 u2-mcp-server
HTTP 配置选项
| 变量 | 描述 | 默认值 |
|---|---|---|
U2_HTTP_HOST | HTTP 服务绑定的主机 | 0.0.0.0 |
U2_HTTP_PORT | HTTP 服务端口 | 8080 |
U2_HTTP_CORS_ORIGINS | 允许的 CORS 来源(以逗号分隔或使用 *) | * |
连接客户端
HTTP 服务在 /sse 提供 SSE(服务器发送事件)端点。支持远程服务的 MCP 客户端可以连接到:
http://your-server:8080/sse
注意: 截至 2024 年末,Claude Desktop 仅支持本地 stdio MCP 服务。HTTP/SSE 模式适用于:
- 自定义 MCP 客户端
- 未来支持远程服务的 Claude Desktop 版本
- 与其他支持通过 HTTP 使用 MCP 的 AI 工具集成
Claude.ai 集成(Streamable HTTP + OAuth)
将 u2-mcp 部署为 Claude.ai 中的自定义连接器,通过身份提供商(Duo、Auth0、Okta 等)进行企业身份验证。
快速设置
- 部署启用了 OAuth 的 u2-mcp:
u2-mcp --streamable-http --host 0.0.0.0 --port 8080
- 在
.env中配置 OAuth:
U2_AUTH_ENABLED=true
U2_AUTH_ISSUER_URL=https://u2-mcp.example.com
U2_IDP_PROVIDER=duo
U2_IDP_DISCOVERY_URL=https://sso-xxx.sso.duosecurity.com/oidc/CLIENT_ID/.well-known/openid-configuration
U2_IDP_CLIENT_ID=your_client_id
U2_IDP_CLIENT_SECRET=your_client_secret
- 添加到 Claude.ai:前往 Settings → Connectors → Add Custom Connector → 输入你的 URL
用户通过 IdP 进行身份验证后,即可直接通过 Claude.ai 查询数据库。
支持的身份提供商
- Cisco Duo - 企业 MFA 和 SSO
- Auth0 - 灵活的身份平台
- 任何 OIDC 提供商 - Okta、Azure AD、Google Workspace、Keycloak 等
详细设置说明请参阅 OAuth 指南。
安全
- 绝不记录凭据
- 可配置的命令阻止列表可防止危险操作
- 可选的只读模式,确保安全探索
- 遵循 Universe 内置的安全模型
如需报告安全漏洞,请参阅 SECURITY.md。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md 了解指南。
文档
入门
参考
- 配置参考 - 所有环境变量
- 工具参考 - 完整的工具文档
- 使用示例 - 常见使用模式
- OAuth 与 Claude.ai 集成 - 部署为 Claude.ai 自定义连接器
许可证
本项目采用 Apache License 2.0 许可 - 详情请参阅 LICENSE 文件。
致谢
- 感谢 Rocket Software 提供
uopy软件包 - 感谢 Anthropic 制定模型上下文协议规范
- 感谢 MultiValue 数据库社区
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。