项目简介
'odata_mcp_go' 是一个用Go语言编写的 OData 到 Model Context Protocol (MCP) 桥接器。它能将任何 OData 服务(包括 OData v2 和 v4)自动转换为 LLM (大型语言模型) 可以理解和调用的工具集合。通过这个桥接器,LLM 可以直接访问、查询、创建、更新和删除 OData 服务中的数据,以及调用其函数。
主要功能点
- 通用 OData 支持: 兼容 OData v2 和 v4 服务。
- 动态工具生成: 根据 OData 服务的元数据自动创建 MCP 工具,无需手动配置。
- 多协议支持: 支持标准输入输出 (stdio)、HTTP/SSE 和流式 HTTP (Streamable HTTP) 传输协议,方便集成到不同环境中。
- 多种认证方式: 支持基本认证、Cookie 认证和匿名访问。
- SAP OData 扩展: 针对 SAP OData 服务提供全面支持,包括 CSRF 令牌处理和 GUID 格式自动转换。
- 全面的 CRUD 操作: 自动生成用于创建、读取、更新和删除 OData 实体集的工具。
- 高级查询支持: 支持 OData 的 '$filter', '$select', '$expand', '$orderby' 等查询选项。
- 函数导入支持: 可将 OData 服务中的函数导入作为 MCP 工具调用。
- 灵活的工具命名: 支持自定义工具名称前缀/后缀及缩短名称。
- 跨平台部署: 生成原生Go二进制文件,方便在任何操作系统上部署。
- 只读模式: 可配置为只读模式,限制 LLM 进行修改操作。
- AI Foundry 兼容性: 支持 AI Foundry 等 MCP 客户端的最新协议版本。
安装步骤
该项目提供预编译的二进制文件,推荐直接下载使用。
- 下载二进制文件: 访问项目的 Releases 页面,根据您的操作系统下载对应的 'odata-mcp' 可执行文件。
- (可选)从源代码构建: 如果您有 Go 语言环境,可以克隆仓库并自行编译:
git clone https://github.com/oisee/odata_mcp_go.git cd odata_mcp_go go build -o odata-mcp cmd/odata-mcp/main.go - 将下载或编译好的 'odata-mcp' (或 'odata-mcp.exe' 在 Windows 上) 放在您希望的位置,例如 '/usr/local/bin' (Linux/macOS) 或 'C:\bin' (Windows)。
MCP 服务器配置示例 (供MCP客户端使用)
MCP 客户端(如 Claude Desktop 或 AI Foundry)需要配置 'command' 和 'args' 来启动 'odata-mcp' 服务。以下是常见的 JSON 配置示例,请根据您的实际情况修改 'command' 的路径和 'args' 中的 OData 服务 URL 及其他参数。
{ "mcpServers": { "northwind-v4": { "command": "C:/bin/odata-mcp.exe", "args": [ "--service", "https://services.odata.org/V4/Northwind/Northwind.svc/", "--tool-shrink" ], "description": "连接到 Northwind OData v4 演示服务,并使用精简的工具名称。" }, "my-sap-service": { "command": "/usr/local/bin/odata-mcp", "args": [ "--service", "https://my-sap-system.com/sap/opu/odata/sap/MY_SERVICE/", "--user", "your_sap_username", "--password", "your_sap_password", "--entities", "Products,Orders,Customers", "--read-only", "--claude-code-friendly" ], "description": "连接到您的 SAP OData 服务,使用指定用户认证,仅暴露 Products、Orders、Customers 实体,设置为只读模式,并调整参数名以兼容 Claude Code CLI。" }, "ai-foundry-compatible": { "command": "/usr/local/bin/odata-mcp", "args": [ "--service", "https://your-odata-service.com/", "--protocol-version", "2025-06-18", "--transport", "streamable-http", "--http-addr", "localhost:8080" ], "description": "为 AI Foundry 客户端配置的 OData 服务,使用 2025-06-18 协议版本,通过流式 HTTP 传输协议在 localhost:8080 端口提供服务。" } } }
MCP 服务器配置参数说明:
- 'command': MCP服务器可执行文件的完整路径。
- '--service': 您的 OData 服务 URL。
- '--tool-shrink': 使用更短的工具名称,例如 'get_Products' 而不是 'get_Products_for_Northwind'。
- '--user', '--password': 用于 OData 服务的认证凭据。
- '--entities': 限制只生成指定实体集的工具,支持通配符(如 'Product*,Order*')。
- '--read-only': 启用只读模式,禁用所有修改操作 (创建、更新、删除、函数调用)。
- '--claude-code-friendly': 调整 OData 查询参数名称(如 '$filter' 变为 'filter'),以提高与 Claude Code CLI 的兼容性。
- '--protocol-version': 指定 MCP 协议版本,例如 '2025-06-18' 用于 AI Foundry 客户端。
- '--transport': 选择传输协议,如 'stdio' (默认,适用于本地桌面客户端)、'http' (SSE) 或 'streamable-http' (现代 HTTP 传输)。
- '--http-addr': 当使用 'http' 或 'streamable-http' 传输时,指定服务器监听的地址和端口。
基本使用方法
- 准备 OData 服务: 确保您有一个可访问的 OData 服务 URL (例如,公共的 Northwind 服务或您公司的 SAP OData 服务)。
- 启动 MCP 服务器: 在命令行中运行 'odata-mcp' 命令,并提供您的 OData 服务 URL。
- 例如,使用公共 Northwind v4 服务并查看生成的工具('-trace' 参数会列出工具而不启动服务器):
这将输出所有自动生成的 MCP 工具及其描述和参数。./odata-mcp --trace https://services.odata.org/V4/Northwind/Northwind.svc/ - 要实际启动服务以便 MCP 客户端连接(使用默认的 stdio 传输):
./odata-mcp https://services.odata.org/V4/Northwind/Northwind.svc/ - 如果希望通过 HTTP 访问(注意安全性,默认仅限于本地主机):
./odata-mcp --transport streamable-http --http-addr localhost:8080 https://services.odata.org/V4/Northwind/Northwind.svc/
- 例如,使用公共 Northwind v4 服务并查看生成的工具('-trace' 参数会列出工具而不启动服务器):
- 配置 MCP 客户端: 按照您的 MCP 客户端(如 Claude Desktop, AI Foundry, 或其他 LLM 代理)的文档,将上述 MCP 服务器的 'command' 和 'args' 配置进去。配置完成后,您的 LLM 客户端就能发现并调用由 'odata-mcp' 暴露的 OData 工具了。
信息
分类
商业系统