SAP on Azure MCP Server (TypeScript Implementation)

SAP on Azure MCP Server (TypeScript Implementation)

site icon
2025.04.02 0
TypeScriptSAP HANA 管理Azure 资源管理系统监控数据库开发效率
azsap-mcp-typescript 是一个基于 TypeScript 实现的 Model Context Protocol (MCP) 服务器,专为 SAP on Azure 设计。它提供了 SAP HANA 数据库管理和 Azure 资源管理的工具集。该服务支持多种传输方式(STDIO、HTTP、SSE),并包含丰富的工具集用于系统监控和资源管理。
View on GitHub

Overview

基本能力

产品定位

azsap-mcp-typescript 是一个专为 SAP on Azure 环境设计的 MCP 服务器实现,主要提供 SAP HANA 数据库管理和 Azure 资源管理的功能。

核心功能

  • 多种传输选项:支持 STDIO、HTTP 和 SSE 传输
  • SAP HANA 集成:提供查询和管理 SAP HANA 数据库的工具
  • Azure VM 管理:提供管理 Azure VM(启动、停止、状态检查)的工具
  • Azure NSG 操作:提供网络安全管理组操作工具
  • 资源监控:提供系统资源跟踪工具
  • TypeScript 实现:完全类型化的实现,使用现代 ECMAScript 特性

适用场景

  • SAP HANA 数据库管理和监控
  • Azure 虚拟机管理
  • Azure 网络安全管理
  • 系统资源监控

工具列表

SAP HANA 工具

  • get_system_overview:获取系统状态、主机信息、服务状态和内存使用情况
  • get_disk_usage:检查磁盘空间使用情况(跨卷、数据文件和日志文件)

Azure VM 工具

  • get_vm_status:获取 Azure VM 的当前状态
  • start_vm:启动 Azure VM
  • stop_vm:停止 Azure VM(可选择取消分配)
  • restart_vm:重启 Azure VM
  • list_vms:列出资源组或订阅中的所有 VM

常见问题解答

(文档中未提供具体常见问题解答)

使用教程

使用依赖

  1. 需要安装 Node.js 和 npm
  2. 需要 SAP HANA 和 Azure 的访问凭证

安装教程

# 克隆仓库
git clone <repository-url>
cd azsap-mcp-typescript

# 安装依赖
npm install

# 配置环境
cp .env.example .env
# 使用 SAP HANA 和 Azure 凭证编辑 .env 文件

# 构建项目
npm run build

运行服务器

STDIO 传输(用于 Claude Desktop)

npm start

HTTP 传输(用于 Web 客户端)

npm run start:http

或使用自定义主机/端口:

node dist/server-cli.js --transport http --host localhost --port 3000

使用客户端

# 连接到本地 STDIO 服务器
npm run client -- --transport stdio --command "node" --args "dist/server-cli.js"

# 连接到 HTTP 服务器
npm run client -- --transport http --host localhost --port 3000

# 执行特定工具
npm run client -- --transport http --host localhost --port 3000 --tool get_system_overview

作为库使用

import { createServer, connectServer, AzureMCPClient } from 'azsap-mcp-typescript';

// 创建并启动服务器
const server = createServer();
await connectServer(server, 'stdio');

// 或使用客户端
const client = new AzureMCPClient({
  transport: 'http',
  host: 'localhost',
  port: 3000
});

await client.connect();
const status = await client.getVmStatus('SID001', 'db', 'myResourceGroup');
console.log(status);

Docker 支持

# 构建 Docker 镜像
docker build -t azsap-mcp-typescript .

# 运行并设置环境变量
docker run -p 3000:3000 \
  -e HANA_HOST=your-hana-host \
  -e HANA_PORT=30215 \
  -e HANA_USER=your-user \
  -e HANA_PASSWORD=your-password \
  -e HANA_SCHEMA=your-schema \
  azsap-mcp-typescript

Claude Desktop 集成

配置 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "sap-hana-ts": {
      "command": "node",
      "args": ["/path/to/azsap-mcp-typescript/dist/server-cli.js"],
      "env": {
        "HANA_HOST": "your-hana-host",
        "HANA_PORT": "30215",
        "HANA_USER": "your-user",
        "HANA_PASSWORD": "your-password"
      }
    }
  }
}

测试

# 运行所有测试
npm test

# 运行特定测试
npm test -- -t "system overview"

许可证

该项目遵循 MIT 开源许可条款。