u2 mcp
](https://pypi.org/project/u2-mcp/)   
使用自然语言将Claude连接到您的Universe/UniData数据库。
u2-mcp是一个mcp服务器,允许克劳德等人工智能助手查询Rocket Universe和UniData MultiValue数据库并与之交互。用简单的英语提问,从你的数据中得到真实的答案。
Pick/MultiValue数据库系列的第一台MCP服务器。
你能用这个做什么?
不要写RetrieVe查询,只需问克劳德:
| 你问 | 克劳德问 |
|---|---|
| “加州有多少客户?” | 查询数据库,告诉你“1247个客户” |
| “显示订单ORD001” | 读取记录并显示所有字段 |
| “哪些文件可用?” | 列出您帐户中的所有文件 |
| “描述CUSTOMERS文件” | 显示字典中的字段定义 |
运作原理
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Desktop │◄───►│ u2-mcp │◄───►│ Universe/UniData│
│ (You ask here) │ │ (Translates) │ │ (Your data) │
└─────────────────┘ └─────────────────┘ └─────────────────┘- 你问克劳德一个关于你的数据库的问题
- Claude使用适当的工具调用u2-mcp
- u2-mcp查询您的Universe/UniData服务器
- 结果以可读的格式通过Claude返回
MCP新手? 看 什么是MCP? 以获得完整的解释。
文档
| 指南 | 说明 |
|---|---|
| 什么是MCP? | 了解MCP和u2-MCP的工作原理 |
| 安装 | 完整的安装指南 |
| 快速入门 | 10分钟后开始跑步 |
| 配置 | 所有配置选项 |
| 工具参考 | 详细的工具文档 |
| 使用示例 | 常见使用模式 |
| OAuth设置 | Claude.ai与SSO的集成 |
特性
- 连接管理 -通过连接池和SSL支持连接到Universe/UniData服务器
- 文件操作 -读取、写入和删除记录,同时保留多值语义
- 查询执行 -运行带有安全控制的RetrieVe/UniQuery语句
- 词典访问 -探索文件结构和字段定义
- BASIC子程序调用 -执行编目的BASIC程序
- 事务支持 -具有提交/回滚功能的完整事务管理
- AI优化 -内置查询示例和语法有助于更好的LLM交互
安装
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 UniDataClaude桌面配置
添加到您的 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"
}
}示例用法
克劳德发现后 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...")]在下一次谈话中,克劳德已经知道这一点,不需要重新发现它。
集中部署(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 --httpDocker部署
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-serverHTTP配置选项
| 变量 | 描述 | 默认值 |
|---|---|---|
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集成(流式HTTP+OAuth)
在Claude.ai中将u2-mcp部署为自定义连接器,并通过您的身份提供程序(Duo、Auth0、Okta等)进行企业身份验证。
快速设置
- 部署u2-mcp 启用OAuth后:
u2-mcp --streamable-http --host 0.0.0.0 --port 8080- 配置OAuth 在你的
.env:
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:转到设置→ 连接器→ 添加自定义连接器→ 输入您的URL
用户通过您的IdP进行身份验证,然后可以直接从Claude.ai查询您的数据库。
支持的身份提供者
- 思科Duo -企业MFA和SSO
- 身份验证0 -灵活的身份识别平台
- 任何OIDC提供商 -Okta、Azure AD、谷歌工作区、Keycloak等。
看 OAuth指南 有关详细的设置说明。
安全
- 从未记录凭据
- 可配置的命令块列表可防止危险操作
- 可选只读模式,用于安全探索
- 尊重Universe的内置安全模型
看 安全.md 用于报告安全漏洞。
贡献
我们欢迎捐款!请看 贡献.md 作为指导方针。
文档
入门指南
参考
- 配置参考 -所有环境变量
- 工具参考 -完整的工具文档
- 使用示例 -常见使用模式
- OAuth和Claude.ai集成 -部署为Claude.ai自定义连接器
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
