ARC-1
ARC-1 — SAP ADT MCP 服务器
ARC-1 (发音为 arc one [ɑːrk wʌn]) — 专为 SAP ABAP 系统打造的企业级 MCP 服务器。默认安全,可部署于 BTP 或本地环境,并经过大量单元测试、集成测试和端到端 (E2E) 测试的加固。
ARC-1 通过 ADT REST API 将 AI 助手(Claude、GitHub Copilot、Copilot Studio 以及任何 MCP 客户端)连接到 SAP 系统。它以 npm 包 和 Docker 镜像 的形式发布。
为什么选择 ARC-1?
专为需要 AI 辅助开发且具备安全护栏的组织而构建。受 abap-adt-api、mcp-abap-adt 和 vibing-steampunk 等开创性工作的启发,ARC-1 增加了生产环境运行所需的关键功能:
安全与管理控制
默认安全 — 只读,无自由 SQL,无表预览,默认不提供传输功能。使用
--profile developer或显式标志来启用功能操作允许/拒绝列表 — 精确控制允许的操作类型(读取、写入、搜索、查询、激活、传输)
包限制 — 将 AI 写入操作(创建、更新、删除)限制在特定包内,支持通配符(
--allowed-packages "Z*,$TMP")。读取操作不受包限制 — 请使用 SAP 原生授权进行读取级别的访问控制数据访问控制 — 启用表数据预览 (
--block-data=false) 或自由格式 SQL (--block-free-sql=false)传输安全 — 要求分配传输请求,限制特定传输,或将传输设为只读。当未提供显式传输时,更新/删除操作会自动使用锁定修正号
安全配置文件 — 预配置角色:
viewer、viewer-data、viewer-sql、developer、developer-data、developer-sql启用时写入限制为
$TMP— 仅限本地/临时对象;写入可传输包需要显式设置--allowed-packages
身份验证
API 密钥 — 用于内部部署的简单 Bearer 令牌
OIDC / JWT — Entra ID、Keycloak 或任何 OpenID Connect 提供商
OAuth 2.0 — 用于 BTP ABAP 环境的基于浏览器的登录
XSUAA — SAP BTP 原生认证,为 MCP 客户端提供自动令牌代理
主体传播 (Principal Propagation) — 通过云连接器 (Cloud Connector) 转发的每用户身份(每个 SAP 操作均以实际用户身份运行,而非技术账号)
BTP Cloud Foundry 部署
将 ARC-1 作为 Cloud Foundry 应用部署在 SAP BTP 上,并实现完整的平台集成:
目标服务 (Destination Service) — 通过托管目标连接到 SAP 系统
云连接器 (Cloud Connector) — 通过连接代理访问本地系统
主体传播 — 通过 X.509 证书实现端到端用户身份转发
XSUAA OAuth 代理 — MCP 客户端通过标准 OAuth 进行身份验证,ARC-1 处理 BTP 令牌交换
审计日志 — 将结构化事件记录到 stderr、文件或 BTP 审计日志服务
令牌效率
11 个基于意图的工具(约 5K 模式令牌)取代了 200 多个独立工具 — 保持 LLM 上下文窗口精简
方法级读取/编辑 — 读取或更新单个类方法,而非整个源代码(令牌消耗减少高达 20 倍)
上下文压缩 —
SAPContext可在一次调用中返回所有依赖项的公共 API 契约(7-30 倍压缩)
内置对象缓存
自动源码缓存 — 每次读取的 SAP 对象都会缓存在内存 (stdio) 或 SQLite (http-streamable) 中。重复读取无需调用 SAP 即可立即返回。
依赖图缓存 —
SAPContext依赖解析以源码哈希为键;未更改的对象在后续运行中会跳过所有 ADT 调用。预热器 — 启动时使用
ARC1_CACHE_WARMUP=true预索引所有自定义对象,从而实现反向依赖查找 (SAPContext(action="usages"))。写入失效 — 当
SAPWrite修改对象时,其缓存条目会自动删除;下次读取将获取最新源码。
请参阅 docs/caching.md 获取完整文档。
测试
1,367+ 个单元测试(53 个单元测试文件,模拟 HTTP)
~160 个针对真实 SAP 系统的集成测试,在缺少凭据或固定装置时提供明确的跳过原因
~70 个 E2E 测试,在运行中的 ARC-1 服务器和真实 SAP 系统上执行实际的 MCP 工具调用
包含 CRUD 生命周期和 BTP 冒烟测试通道 (
test:integration:crud,test:integration:btp:smoke)Node
22和24的 CI 矩阵;集成 + E2E 测试在push到main分支和内部 PR 时运行可靠性遥测 + 覆盖率作为信息性 CI 信号发布(非阻塞)
针对实际使用优化的工具
这 11 个工具是根据真实的 LLM 交互反馈设计的:
工具 | 功能描述 |
SAPRead | 读取 ABAP 源码、表数据、CDS 视图、元数据扩展 (DDLX)、服务绑定 (SRVB)、消息类、BOR 对象、已部署的 UI5/Fiori 应用 (BSP, BSP_DEPLOY)。类结构化格式返回元数据 + 分解后的包含文件 (JSON) |
SAPSearch | 对象搜索 + 系统范围内的全文源码搜索 |
SAPWrite | 创建/更新/删除 ABAP 源码和 DDIC 元数据,并自动锁定/解锁 (PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, DOMA, DTEL)。支持多对象工作流的批量创建(例如,一次调用完成 RAP 堆栈或域+数据元素) |
SAPActivate | 激活 ABAP 对象 — 单个或批量(对于 RAP 堆栈至关重要)。发布/取消发布 OData 服务绑定 (SRVB) |
SAPNavigate | 转到定义、查找引用、代码补全 |
SAPQuery | 执行 ABAP SQL,并提供表未找到时的建议 |
SAPTransport | CTS 传输管理(列出、创建、发布) |
SAPContext | 压缩的依赖上下文 — 一次调用替代 N 次 SAPRead 调用 |
SAPLint | 本地 ABAP 代码检查(系统感知预设、自动修复、写入前验证) |
SAPDiagnose | 语法检查、ABAP 单元测试、ATC 代码质量、短转储 (Short Dumps)、分析器跟踪 |
SAPManage | 功能探测 — 在操作前检测系统支持的功能 |
工具定义会自动适应目标系统(BTP 与本地),移除不可用的类型并调整描述,确保 LLM 永远不会尝试不支持的操作。
功能检测
ARC-1 在启动时探测 SAP 系统并调整其行为:
检测 HANA、abapGit、RAP/CDS、AMDP、UI5 和传输可用性
自动检测 BTP 与本地系统
将 SAP_BASIS 版本映射到正确的 ABAP 语言版本
每个功能都可以强制开启/关闭或保留为自动检测
Related MCP server: SAP ERP MCP Server by CData
快速入门
npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USER有关 Docker、BTP 部署、客户端配置(Claude Desktop、Claude Code、VS Code、Copilot Studio)以及所有身份验证方法,请参阅 设置指南。
文档
完整文档请访问 marianfoo.github.io/arc-1。
指南 | 描述 |
部署选项、认证方法、客户端配置 | |
全部 11 个工具的完整参考 | |
带有图表的系统架构 | |
Docker 部署参考 | |
所有身份验证方法 | |
SAP BTP 上的 Cloud Foundry 部署 | |
代理工作流模式和最佳实践 |
开发
npm ci && npm run build && npm test请参阅 CLAUDE.md 了解代码库结构、测试命令和贡献指南。
鸣谢
项目 | 作者 | 贡献 |
oisee | 原始 Go MCP 服务器 — ARC-1 的起点 | |
Marcello Urbani | TypeScript ADT 库,权威 API 参考 | |
Mario Andreschak | 第一个用于 ABAP ADT 的 MCP 服务器 | |
Lars Hvam | ABAP 解析器/检查器(通过 @abaplint/core 使用) |
许可证
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP Server for Nutanix Prism Central14MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP ERP data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out our MCP Server for SAP ERP (https://www.cdata.com/drivers/sap/download/mcp).6MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to SAP Business One data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).14MIT
- AlicenseAqualityAmaintenanceABAP Development Tools MCP server with comprehensive tooling and documentation for SAP systems1001,08577MIT
Related MCP Connectors
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
MCP server for fcc-ecfs
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arc-mcp/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server