mcpField
U
U2 MCP Server

U2 MCP Server

本地服务
github.com数据库637 周前更新

关于 U2 MCP Server

U2 MCP Server 将 AI 助手连接到 Rocket Universe 和 UniData MultiValue 数据库,支持自然语言查询和数据库操作。它将记录与查询工具、字典访问、事务处理及可持久化的数据库说明整合在一起。

主要功能

  1. 01管理连接,支持连接池和 SSL
  2. 02读取、写入和删除记录
  3. 03运行 RetrieVe/UniQuery 与 TCL/ECL 命令
  4. 04查看文件、字典和字段定义
  5. 05调用 BASIC 子程序并管理事务
  6. 06保存和搜索数据库知识

适用场景

  1. 01询问客户或发票记录相关信息
  2. 02探索数据库文件和字段定义
  3. 03通过可配置的安全控制运行查询
  4. 04跨会话复用已保存的数据库说明

MCP 相关

该 MCP 服务向 MCP 客户端提供数据库连接、文件、查询、字典、BASIC 子程序、事务及知识持久化工具。它支持本地 stdio,以及集中式 HTTP/SSE 和 Streamable HTTP 部署模式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bpamiri-u2": {
"command": "uvx",
"args": [
"u2-mcp"
],
"env": {
"U2_HOST": "<U2_HOST>",
"U2_USER": "<U2_USER>",
"U2_PASSWORD": "<U2_PASSWORD>",
"U2_ACCOUNT": "<U2_ACCOUNT>",
"U2_SERVICE": "<U2_SERVICE>",
"U2_PORT": "<U2_PORT>",
"U2_SSL": "<U2_SSL>",
"U2_READ_ONLY": "<U2_READ_ONLY>",
"U2_MAX_RECORDS": "<U2_MAX_RECORDS>",
"U2_BLOCKED_COMMANDS": "<U2_BLOCKED_COMMANDS>"
}
}
}
}
启动命令uvx u2-mcp
需要配置的环境变量
U2_HOSTUniverse/UniData server hostname or IP address
U2_USERDatabase username
U2_PASSWORD密钥Database password
U2_ACCOUNTAccount name to connect to
U2_SERVICEService type: 'uvcs' for Universe, 'udcs' for UniData
U2_PORTServer port
U2_SSLEnable SSL connection
U2_READ_ONLYDisable write operations for safe exploration
U2_MAX_RECORDSMaximum records returned from SELECT queries
U2_BLOCKED_COMMANDSComma-separated list of blocked TCL commands

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiu2-mcp0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

u2-mcp

PyPI version License Python 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)   │
└─────────────────┘     └─────────────────┘     └─────────────────┘
  1. 你向 Claude 提出有关数据库的问题
  2. Claude 使用相应的工具调用 u2-mcp
  3. u2-mcp 查询你的 Universe/UniData 服务
  4. 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启用 SSLfalse
U2_TIMEOUT连接超时时间(秒)30
U2_READ_ONLY禁用写入操作false
U2_MAX_RECORDSSELECT 结果的最大数量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_HOSTHTTP 服务绑定的主机0.0.0.0
U2_HTTP_PORTHTTP 服务端口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 等)进行企业身份验证。

快速设置
  1. 部署启用了 OAuth 的 u2-mcp:
u2-mcp --streamable-http --host 0.0.0.0 --port 8080
  1. 在 .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
  1. 添加到 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 了解指南。

文档

入门
参考

许可证

本项目采用 Apache License 2.0 许可 - 详情请参阅 LICENSE 文件。

致谢

  • 感谢 Rocket Software 提供 uopy 软件包
  • 感谢 Anthropic 制定模型上下文协议规范
  • 感谢 MultiValue 数据库社区

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。