项目简介

'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 客户端的最新协议版本。

安装步骤

该项目提供预编译的二进制文件,推荐直接下载使用。

  1. 下载二进制文件: 访问项目的 Releases 页面,根据您的操作系统下载对应的 'odata-mcp' 可执行文件。
  2. (可选)从源代码构建: 如果您有 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
  3. 将下载或编译好的 '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' 传输时,指定服务器监听的地址和端口。

基本使用方法

  1. 准备 OData 服务: 确保您有一个可访问的 OData 服务 URL (例如,公共的 Northwind 服务或您公司的 SAP OData 服务)。
  2. 启动 MCP 服务器: 在命令行中运行 'odata-mcp' 命令,并提供您的 OData 服务 URL。
    • 例如,使用公共 Northwind v4 服务并查看生成的工具('-trace' 参数会列出工具而不启动服务器):
      ./odata-mcp --trace https://services.odata.org/V4/Northwind/Northwind.svc/
      这将输出所有自动生成的 MCP 工具及其描述和参数。
    • 要实际启动服务以便 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/
  3. 配置 MCP 客户端: 按照您的 MCP 客户端(如 Claude Desktop, AI Foundry, 或其他 LLM 代理)的文档,将上述 MCP 服务器的 'command' 和 'args' 配置进去。配置完成后,您的 LLM 客户端就能发现并调用由 'odata-mcp' 暴露的 OData 工具了。

信息

分类

商业系统