Token导航 LogoToken导航TokenDH.com
SAP OData MCP Server logo
AI代理未说明官方级别未说明来源级核验

SAP OData MCP Server

MCP Server

一个用于通过OData REST API将SAP系统与AI助手集成的模型上下文协议服务器,提供连接SAP OData服务、查询实体集、执行CRUD操作和调用OData功能的功能。

工具数

0

提示词数

0

GitHub Stars

10

资源数

0
JavaScriptClaudeAPI集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GutjahrAI

提供方

GutjahrAI

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

SAP OData MCP服务器

一个模型上下文协议(MCP)服务器,用于使用OData REST API将SAP系统与Claude等AI助手集成。此服务器提供用于连接到SAP OData服务、查询实体集、执行CRUD操作和调用OData函数的工具。

特性

  • SAP OData连接:通过OData REST API连接到SAP系统
  • 智能连接处理:正确处理SAP OData URL结构和404响应
  • 服务发现:通过目录或公共服务测试自动发现可用的OData服务
  • 实体集查询:查询任何具有过滤、排序和分页功能的OData实体集
  • CRUD操作:对OData实体执行创建、读取、更新和删除操作
  • 函数导入:执行OData函数导入和自定义函数
  • CSRF令牌处理:用于安全操作的自动CSRF令牌管理
  • 模块化架构:干净、可维护的TypeScript代码库,关注点分离

先决条件

  • Node.js 18+
  • 启用OData服务的SAP系统
  • SAP OData端点的网络访问
  • 具有适当授权的SAP用户凭据

⚠️ 优势:不需要安装SAP RFC SDK!使用标准HTTP/REST API。

安装

快速设置

  1. 创建项目:
mkdir sap-odata-mcp-server
cd sap-odata-mcp-server
mkdir src
  1. 复制源文件 从文物到你的 src/ 目录:

- src/index.ts -入口点 - src/server.ts -MCP服务器设置 - src/handlers.ts -请求处理程序 - src/odata-client.ts SAP OData 客户端 - src/tool-definitions.ts -工具定义 - src/types.ts -TypeScript类型

  1. 复制配置文件:

- package.json -依赖关系和脚本 - tsconfig.json -TypeScript配置 - .env.example -环境变量模板

  1. 安装依赖项:
npm install
  1. 配置环境:
cp .env.example .env
# Edit .env with your SAP details
  1. 构建项目:
npm run build

配置

环境变量

创建一个 .env 包含SAP系统详细信息的文件:

# Required SAP OData Configuration
SAP_ODATA_BASE_URL=https://your-sap-host:8000/sap/opu/odata/sap/
SAP_USERNAME=your-sap-username
SAP_PASSWORD=your-sap-password

# Optional Configuration
SAP_CLIENT=100
SAP_TIMEOUT=30000
SAP_VALIDATE_SSL=false  # for development with self-signed certificates
SAP_ENABLE_CSRF=true

Claude桌面集成

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "sap-odata": {
      "command": "node",
      "args": ["/full/path/to/your/sap-odata-mcp-server/dist/index.js"],
      "env": {
        "SAP_ODATA_BASE_URL": "https://your-sap-host:8000/sap/opu/odata/sap/",
        "SAP_USERNAME": "your-username",
        "SAP_PASSWORD": "your-password",
        "SAP_CLIENT": "100",
        "SAP_VALIDATE_SSL": "false"
      }
    }
  }
}

可用工具

1.sap_connect

连接到SAP OData服务。

参数:

  • baseUrl (必需):SAP OData服务基础URL
  • username (必填):SAP用户名
  • password (必填):SAP密码
  • client (可选):SAP客户端号
  • timeout (可选):请求超时(毫秒)(默认值:30000)
  • validateSSL (可选):验证SSL证书(默认值:true)
  • enableCSRF (可选):启用CSRF令牌处理(默认值:true)

2.sap_get_services

获取具有智能发现的可用OData服务列表。

3.sap_get_service_metadata

获取特定OData服务的元数据。

参数:

  • serviceName (必需):OData服务的名称

4.sap_query_entity_set

使用过滤、排序和分页查询OData实体集。

参数:

  • serviceName (必需):OData服务的名称
  • entitySet (必填):实体集的名称
  • select (可选):要选择的字段数组
  • filter (可选):OData筛选器表达式
  • orderby (可选):OData orderby表达式
  • top (可选):要返回的记录数
  • skip (可选):要跳过的记录数
  • expand (可选):要展开的导航属性

5.sap_get_实体

通过键值获取特定实体。

参数:

  • serviceName (必需):OData服务的名称
  • entitySet (必填):实体集的名称
  • keyValues (必需):具有实体键的键值对的对象

6.sap_create_entity

在实体集中创建新实体。

7.sap_update_entity

更新现有实体。

8.sap_delete_entity

删除实体。

9.sap_call_function

调用OData函数导入。

10.连接状态

检查当前SAP OData连接状态。

11.sap_断开连接

断开与SAP OData服务的连接。

使用示例

克劳德入门

配置后,您可以使用Claude中的自然语言与SAP交互:

连接到SAP:

Connect to SAP OData service at https://sap-host:8000/sap/opu/odata/sap/ using username DEVELOPER and password mypassword

发现可用服务:

Get list of available OData services

获取服务信息:

Get metadata for service GWSAMPLE_BASIC

查询数据:

Query BusinessPartnerSet from GWSAMPLE_BASIC, select BusinessPartnerID and CompanyName, top 10

高级筛选:

Query SalesOrderSet from ZSD_SALES_SRV, filter by CreationDate ge datetime'2024-01-01T00:00:00', order by CreationDate desc, top 20

获取具体记录:

Get entity from MaterialSet in ZMM_MATERIAL_SRV with key Material = '000000000000000001'

创建新记录:

Create entity in CustomerSet with data: {"CustomerNumber": "1000", "CustomerName": "Test Customer", "Country": "US"}

OData查询示例

过滤:

$filter=MaterialType eq 'FERT' and CreationDate ge datetime'2024-01-01T00:00:00'

选择字段:

$select=Material,MaterialDescription,MaterialType,BaseUnit

排序:

$orderby=CreationDate desc,Material asc

分页:

$top=50&$skip=100

展开导航属性:

$expand=MaterialPlantData,MaterialSalesData

SAP系统要求

所需SAP组件

  • SAP NetWeaver 7.0或更高版本
  • SAP网关组件已激活
  • 已启用和配置OData服务

所需的SAP授权

SAP用户需要这些授权对象:

  • S_服务:OData终结点的服务授权
  • S_ICF:互联网通信框架授权
  • S_TCODE:BAPI的交易授权(如果使用功能导入)

激活OData服务

  1. 交易SICF:在以下网址激活ICF服务 /sap/opu/odata
  2. 交易 /IWFND/MAINT_SERVICE:管理和激活OData服务
  3. 交易/IWFND/GW_CLIENT:测试OData服务调用

建筑

模块化设计

src/
├── index.ts              # Entry point - starts the server
├── server.ts             # MCP server setup and request routing
├── handlers.ts           # Business logic for each tool
├── odata-client.ts       # SAP OData HTTP client
├── tool-definitions.ts   # MCP tool schemas
└── types.ts              # TypeScript type definitions

主要特点

  • 智能连接测试:处理SAP的URL结构,其中基本URL返回404
  • 服务发现:查找可用OData服务的多种方法
  • 错误处理:全面的错误处理和有用的消息
  • 类型安全:具有适当接口的完全TypeScript支持
  • CSRF保护:写入操作的自动CSRF令牌管理

故障排除

常见问题

连接被拒绝(网络错误)

  • 验证SAP系统是否正在运行且可访问
  • 检查SAP_ODATA_BASE_URL中的主机名/端口
  • 验证防火墙设置是否允许HTTP/HTTPS流量

401未经授权

  • 查看SAP_USERNAME和SAP_PASSWORD
  • 验证用户帐户是否未锁定
  • 确保用户具有S_SERVICE授权

403禁止

  • 检查用户是否需要SAP授权
  • 验证OData路径的S_ICF授权
  • 联系SAP管理员进行权限审核

404未找到

  • 对于没有服务名称的SAP OData基本URL来说,这是正常的
  • 验证OData服务是否已激活(SICF事务)
  • 使用服务发现查找可用服务

SSL证书错误

  • SAP_VALIDATE_SSL=false 为了发展
  • 安装适当的生产证书
  • 检查证书链和过期时间

调试模式

启用详细日志记录:

DEBUG=axios npm start

SAP系统验证

  1. 在浏览器中测试OData URL:导航到您的SAP OData URL
  2. 检查服务激活:交易SICF→ /sap/opu/odata
  3. 验证网关服务交易 /IWFND/MAINT_SERVICE
  4. 使用网关客户端进行测试:交易/IWFND/GW_CLIENT

安全最佳实践

生产部署

  • 使用HTTPS 适用于所有SAP OData连接
  • 安全地存储凭据 -从不硬编码密码
  • 创建专门的服务用户 具有最低限度的所需权限
  • 启用CSRF保护 用于写入操作
  • 实施适当的授权 SAP for OData服务
  • 监控访问日志 并设置警报
  • 定期安全审计 用户权限

网络安全

  • 使用VPN或专用网络 用于SAP访问
  • 实施IP限制 在可能的情况下
  • 启用SAP网关安全 特征
  • 使用适当的证书管理

常见SAP OData服务

标准SAP服务

  • GWSAMPLE_BASIC -测试基本样品服务
  • GWDEMO -全面的演示服务
  • rmt示例飞行 -航班预订演示

商业服务

  • API_MATERIAL_SRV程序 -物料管理
  • API_业务_合作伙伴 -业务伙伴管理
  • API_SALES_ORDER_SRV -销售订单管理
  • API_PURCHASEORDER_PROCESS_SSRV程序 -采购订单处理

按模块设置的实体

  • MM(材料管理):MaterialSet、MaterialPlantDataSet
  • SD(销售与分销):销售订单集、客户集、定价条件集
  • FI(财务会计):总账条目集、会计文档集
  • HR(人力资源):员工集、组织单位集

发展

可用脚本

# Build TypeScript
npm run build

# Start production server
npm start

# Development mode with auto-reload
npm run dev

# Code quality
npm run lint
npm run format

添加新功能

  1. 添加工具定义 在……里面 tool-definitions.ts
  2. 机具处理程序 在……里面 handlers.ts
  3. 添加路由 在……里面 server.ts switch语句
  4. 更新类型 在……里面 types.ts 如有需要
  5. 构建和测试

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 使用正确的TypeScript类型进行更改
  4. 使用真实的SAP系统进行测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

目录标签

目录标签

JavaScriptClaudeAPI集成SAP集成本地部署OData服务RESTAPI企业系统连接AI助手集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明noneremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP