返回市场
成本绩效指数MCP服务器

成本绩效指数MCP服务器

作者:vadimklimov8 星标更新:2025-11-03

项目介绍

SAP Cloud Integration 的 MCP 服务器

SAP Cloud Integration 的 MCP 服务器提供了一个访问集成包和集成工件的接口,这些集成包和工件位于 SAP Cloud Integration 租户中(SAP 集成套件的一部分)。

工具

MCP 服务器提供了以下工具:

工具描述
get_integration_packages获取所有集成包
search_integration_packages按 ID、版本、名称、供应商或模式搜索集成包
get_integration_flows获取所有集成流
search_integration_flows按 ID、版本或名称搜索集成流
get_value_mappings获取所有值映射
search_value_mappings按 ID、版本或名称搜索值映射
get_message_mappings获取所有消息映射
search_message_mappings按 ID、版本或名称搜索消息映射
get_script_collections获取所有脚本集合
search_script_collections按 ID、版本或名称搜索脚本集合
get_integration_runtime_artifacts获取所有集成运行时工件
search_integration_runtime_artifacts按 ID、版本、名称、类型或状态搜索集成运行时工件

安装

MCP 服务器可以作为独立二进制文件安装,也可以在 Docker 容器内运行。

独立二进制文件

选项 1:下载二进制文件

发布页面 下载与您的操作系统/架构兼容的二进制文件。

选项 2:从源代码安装

使用 go install 命令编译并安装 MCP 服务器:

go install github.com/vadimklimov/cpi-mcp-server@latest

选项 3:从源代码构建

  1. 克隆仓库并导航到创建的目录:
git clone https://github.com/vadimklimov/cpi-mcp-server.git
cd cpi-mcp-server
  1. 可选地下载依赖项(否则,依赖项将在下一步构建过程中自动下载):
go mod download
go mod tidy
  1. 使用 go build 命令编译 MCP 服务器。

基本构建示例:

go build

带有版本信息的构建示例:

go build \
  -ldflags "-s -w -X github.com/vadimklimov/cpi-mcp-server/internal/appinfo.version=1.2.3" \
  -o cpi-mcp-server \
  .

或者,使用提供的 GoReleaser 配置文件通过 GoReleaser 构建 MCP 服务器。

Docker 容器

选项 1:拉取 Docker 镜像

  1. 使用 docker image pull 命令(或 docker pull 简写)拉取 MCP 服务器镜像:
docker pull vadimklimov/cpi-mcp-server

选项 2:构建 Docker 镜像

  1. 克隆仓库并导航到创建的目录:
git clone https://github.com/vadimklimov/cpi-mcp-server.git
cd cpi-mcp-server
  1. 使用 docker build 命令根据提供的 Dockerfile 构建 Docker 镜像。

支持的构建参数如下:

参数描述
VERSIONMCP 服务器版本

基本构建示例:

docker build .

带有版本信息的构建示例:

docker build \
  --tag vadimklimov/cpi-mcp-server:1.2.3 \
  --build-arg VERSION=1.2.3 \
  .

或者,使用 docker bake 命令(Docker Buildx 的一部分)根据提供的 Bake 定义文件构建 Docker 镜像。

Bake 定义文件包括以下构建目标:

目标描述默认多平台构建镜像标签
dev开发构建dev
snapshot快照构建{VERSION}-snapshot
release发布构建{VERSION}, latest

支持的 Bake 变量如下:

变量描述默认值由目标使用
VERSIONMCP 服务器版本devdev, snapshot, release
COMMIT_SHA构建修订版(用于构建的提交哈希)unknownsnapshot, release

[!NOTE] 对于 snapshotrelease 构建,推荐使用 Docker Bake。Bake 定义文件提供了合理的默认设置,并添加了额外的镜像元数据。

[!WARNING] 在运行 snapshotrelease 构建之前,请确保 Docker 环境中启用了多平台构建支持。

[!WARNING] release 目标会自动将构建的镜像推送到注册表。

基本构建示例(默认使用 dev 目标):

docker bake

带有版本信息的构建示例:

export VERSION=1.2.3
docker bake

或者

docker bake \
  --set dev.tags=vadimklimov/cpi-mcp-server:1.2.3 \
  --set dev.args.VERSION=1.2.3

[!TIP] 由于项目使用 Git 进行管理,建议使用当前提交哈希(SHA-1 哈希)作为构建修订版。

要获取当前提交哈希的长形式(完整形式),运行 git rev-parse HEAD 命令。

要获取当前提交哈希的短形式,运行 git rev-parse --short HEAD 命令。

[!TIP] 既然项目已经使用 Git 标签进行 MCP 服务器版本控制,建议也使用 Git 标签进行构建版本控制。

要获取最近的标签,运行 git describe --tags $(git rev-list --tags --max-count=1) 命令。

配置

为了使 MCP 服务器正常工作,必须通过环境变量提供配置。

环境变量

支持的环境变量如下:

环境变量描述是否必需有效值默认值
MCP_CPI_BASE_URL基础 URL
MCP_CPI_TOKEN_URL访问令牌 URL
MCP_CPI_CLIENT_ID客户端 ID
MCP_CPI_CLIENT_SECRET客户端密钥
MCP_CPI_TRANSPORTMCP 传输方式stdio, httpstdio
MCP_CPI_PORT用于 HTTP 传输的端口1024-65535 范围内的值8080
MCP_CPI_LOG_LEVEL日志级别none, error, warn, info, debugnone
MCP_CPI_LOG_FILE日志文件路径/path/to/log/file.log/var/log/cpi-mcp-server.log
MCP_CPI_MAX_CONCURRENCY最大并发数逻辑 CPU 数量
MCP_CPI_TIMEOUT超时时间(秒)60

访问 SAP Cloud Integration API

MCP 服务器使用 SAP Cloud Integration 的公共 API 来检索所需的信息。这些 API 是受 OAuth 保护的,并支持客户端凭据流。MCP 服务器使用此身份验证机制来认证和授权对 SAP Cloud Integration 租户的 API 调用。

要使 MCP 服务器能够访问 SAP Cloud Integration 租户的必要 API,必须在 SAP Business Technology Platform 子账户中为其创建一个 OAuth 客户端,在该子账户中已创建了相应的 SAP Integration Suite 订阅。

在 Cloud Foundry 环境中,服务实例代表一个 OAuth 客户端——因此,需要为服务实例创建一个服务实例和服务密钥。

步骤 1:创建服务实例

创建具有以下配置的服务实例:

  • 服务:SAP Process Integration Runtime
  • 计划:api
  • 授权类型:Client Credentials

相应 MCP 服务器工具所需的角色如下:

工具角色
get_integration_packagesWorkspacePackagesRead
search_integration_packagesWorkspacePackagesRead
get_integration_flowsWorkspacePackagesRead
search_integration_flowsWorkspacePackagesRead
get_value_mappingsWorkspacePackagesRead
search_value_mappingsWorkspacePackagesRead
get_message_mappingsWorkspacePackagesRead
search_message_mappingsWorkspacePackagesRead
get_script_collectionsWorkspacePackagesRead
search_script_collectionsWorkspacePackagesRead
get_integration_runtime_artifactsMonitoringDataRead
search_integration_runtime_artifactsMonitoringDataRead

步骤 2:创建服务密钥

为上一步创建的服务实例创建具有以下配置的服务密钥:

  • 密钥类型:ClientId/Secret

OAuth 客户端凭据和端点可以在服务密钥的 oauth 部分找到:

配置参数服务密钥属性
基础 URLurl
访问令牌 URLtokenurl
客户端 IDclientid
客户端密钥clientsecret

示例

最小配置(仅需环境变量):

MCP_CPI_BASE_URL=https://{subdomain}.it-cpi{xxxxx}.cfapps.{region}.hana.ondemand.com/api/v1
MCP_CPI_TOKEN_URL=https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token
MCP_CPI_CLIENT_ID=xxxxxxxxxx
MCP_CPI_CLIENT_SECRET=xxxxxxxxxx

完整配置(所有支持的环境变量):

MCP_CPI_BASE_URL=https://{subdomain}.it-cpi{xxxxx}.cfapps.{region}.hana.ondemand.com/api/v1
MCP_CPI_TOKEN_URL=https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token
MCP_CPI_CLIENT_ID=xxxxxxxxxx
MCP_CPI_CLIENT_SECRET=xxxxxxxxxx
MCP_CPI_MAX_CONCURRENCY=3
MCP_CPI_TIMEOUT=120
MCP_CPI_TRANSPORT=http
MCP_CPI_PORT=8080
MCP_CPI_LOG_LEVEL=debug
MCP_CPI_LOG_FILE=/var/log/cpi-mcp-server.log

代理工具配置

参考您使用的 IDE、代码编辑器、AI 助手或其他支持 MCP 的代理工具的文档以获取配置详情。

本地 MCP 服务器

以下示例展示了如何将本地 MCP 服务器添加到 Claude Desktop。请参阅与您的设置相关的代理工具文档以调整这些示例。

选项 1:独立二进制文件

假设 cpi-mcp-server 二进制文件位于 /Users/demo/go/bin 目录下,向 claude_desktop_config.json 文件添加以下配置:

{
  "mcpServers": {
    "cpi": {
      "command": "/Users/demo/go/bin/cpi-mcp-server",
      "env": {
        "MCP_CPI_BASE_URL": "https://{subdomain}.it-cpi{xxxxx}.cfapps.{region}.hana.ondemand.com/api/v1",
        "MCP_CPI_TOKEN_URL": "https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token",
        "MCP_CPI_CLIENT_ID": "xxxxxxxxxx",
        "MCP_CPI_CLIENT_SECRET": "xxxxxxxxxx"
      }
    }
  }
}

选项 2:Docker 容器

假设 MCP 服务器配置(见 配置)定义在 /Users/demo/.config/mcp 目录下的 cpi-mcp-server.env 文件中,向 claude_desktop_config.json 文件添加以下配置:

{
  "mcpServers": {
    "cpi": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        "/Users/demo/.config/mcp/cpi-mcp-server.env",
        "vadimklimov/cpi-mcp-server"
      ]
    }
  }
}

远程 MCP 服务器

以下示例展示了如何将远程 MCP 服务器添加到 Claude Code。请参阅与您的设置相关的代理工具文档以调整这些示例。

步骤 1:启动 MCP 服务器

选项 1:独立二进制文件

假设 cpi-mcp-server 二进制文件位于 /Users/demo/go/bin 目录下,使用以下命令启动 MCP 服务器:

export MCP_CPI_BASE_URL=https://{subdomain}.it-cpi{xxxxx}.cfapps.{region}.hana.ondemand.com/api/v1
export MCP_CPI_TOKEN_URL=https://{subdomain}.authentication.{region}.hana.ondemand.com/oauth/token
export MCP_CPI_CLIENT_ID=xxxxxxxxxx
export MCP_CPI_CLIENT_SECRET=xxxxxxxxxx
export MCP_CPI_TRANSPORT=http
/Users/demo/go/bin/cpi-mcp-server

选项 2:Docker 容器

假设 MCP 服务器配置(见 配置)定义在 /Users/demo/.config/mcp 目录下的 cpi-mcp-server.env 文件中,使用 docker container run 命令(或 docker run 简写)启动 MCP 服务器:

docker run \
  --detach \
  --name cpi-mcp-server \
  --publish 8080:8080 \
  --env-file /Users/demo/.config/mcp/cpi-mcp-server.env \
  vadimklimov/cpi-mcp-server

[!TIP] 当使用 MCP 服务器中的 HTTP 传输时,容器监听 8080 端口。 使用 docker run 命令的 -p (--publish) 选项可以将容器的 8080 端口发布到不同的主机端口(例如,-p 8888:8080)。

步骤 2:将远程 MCP 服务器添加到 Claude Code

选项 1:使用 Claude Code CLI

使用 claude mcp add 命令添加远程 MCP 服务器:

claude mcp add --transport http cpi http://localhost:8080/mcp

选项 2:手动编辑配置文件

.mcp.json 文件添加以下配置:

{
  "mcpServers": {
    "cpi": {
      "type": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

[!NOTE] 当在远程主机上运行 MCP 服务器时,请确保在将其添加到代理工具时正确设置了主机名。

[!WARNING] 在远程模式下运行的 MCP 服务器必须配置为使用 HTTPS(加密传输协议),以确保客户端和服务器之间的安全通信。强烈不建议使用 HTTP,因为它不提供传输级安全性。

[!WARNING] 当前 MCP 服务器的实现不提供授权功能。当在远程模式下运行服务器时,必须实施适当的身份验证机制以防止未经授权的访问。