Token导航 LogoToken导航TokenDH.com
Sap Datasphere MCP logo
数据服务stdio官方级别未说明来源级核验

Sap Datasphere MCP

MCP Server

@mariodefe/sap-datasphere-mcp

SAP Datasphere MCP服务器是一个生产就绪的模型上下文协议(MCP)服务器,使AI助手能够无缝地与SAP Datasphere环境交互,进行实时租户数据发现、元数据探索、分析操作、ETL数据提取、数据库用户管理、数据沿袭分析和列级数据剖析。

工具数

50

提示词数

0

GitHub Stars

28

资源数

0
数据分析PythonClaude数据管理Claude DesktopClaudeCursor

安装说明

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

作者 / 组织

MarioDeFelipe

提供方

MarioDeFelipe

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

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

命令预览

npx @mariodefe/sap-datasphere-mcp

详细介绍

🚀 SAP数据圈MCP服务器

](https://pypi.org/project/sap-datasphere-mcp/) ](https://www.npmjs.com/package/@mariodefe/sap-datasphere-mcp) ![Python 3.10+](https://www.python.org/downloads/) ![MCP Protocol](https://modelcontextprotocol.io/) ![License: MIT](https://opensource.org/licenses/MIT) ![Production Ready](https://pypi.org/project/sap-datasphere-mcp/) [![Real Data]()](<>) [![API Integration]()](<>)

生产就绪的模型上下文协议(MCP)服务器,使AI助手能够与SAP Datasphere环境无缝交互,以进行真实租户数据发现、元数据探索、分析操作、ETL数据提取、数据库用户管理、数据沿袭分析和列级数据分析。

🆕 最新动态(v1.2.1-2026.10版)

  • get_asset_variables 工具 --OData中声明的表面输入参数/变量和过滤器功能注释 $metadata。在查询之前,使用它来发现参数化视图或分析模型所期望的变量。
  • 变量和过滤器解析parse_odata_metadata_xml_full 回报 {columns, variables, filters} 在一次通话中;遗产 parse_odata_metadata_xml 被保存为后compat包装。
  • 与SAP Datasphere浪潮保持一致 2026.10 (2026年5月6日)。遗产 /api/v1/dwc/consumption/... 路径已弃用--使用 /api/v1/datasphere/consumption/....

🚀 快速开始

选项1:通过npm安装(建议Node.js/Claude Desktop使用)

# Install globally
npm install -g @mariodefe/sap-datasphere-mcp

# Run the server
npx @mariodefe/sap-datasphere-mcp

选项2:通过PyPI(Python)安装

# Install from PyPI
pip install sap-datasphere-mcp

# Run the server
sap-datasphere-mcp

入门指南 有关完整的设置说明。

______________________________________________________________________

✨ v1.1.0的新增功能

🌐 可流式HTTP传输 --服务器现在通过HTTP和stdio传输MCP,因此您可以将其作为长期服务(Docker、ECS、App Runner、反向代理后面)运行,并将多个客户端指向同一实例。

亮点

  • --transport http 旗帜 --服务于MCP流式HTTP(规范2025-03-26) /mcp,用单个HTTP路由替换传统的SSE双端点舞蹈。
  • 向后兼容stdio 仍然是默认值;现有的Claude Desktop/Claude Code配置保持不变。
  • 可选的承载令牌身份验证 --启用via --auth-tokenMCP_HTTP_AUTH_TOKEN。如果绑定到没有环回接口的非环回接口,服务器会发出警告。
  • /health 端点 --用于负载均衡器和正常运行时间检查的普通JSON活性探测。
  • 固定异步入口点main_sync() 包裹 asyncio.run(main()) 因此控制台脚本在macOS和Linux上可靠地工作。

用法

# stdio (default, unchanged)
sap-datasphere-mcp

# Streamable HTTP on http://127.0.0.1:8080/mcp
sap-datasphere-mcp --transport http --port 8080

# Exposed on LAN with bearer-token auth
MCP_HTTP_AUTH_TOKEN=$(openssl rand -hex 32) \
  sap-datasphere-mcp --transport http --host 0.0.0.0 --port 8080

# Via env vars only (great for Docker / ECS)
MCP_TRANSPORT=http MCP_HTTP_PORT=8080 \
MCP_HTTP_AUTH_TOKEN=$MY_TOKEN \
  sap-datasphere-mcp

使用HTTP附加功能进行安装

pip install 'sap-datasphere-mcp[http]'   # adds starlette + uvicorn
# or
uv tool install 'sap-datasphere-mcp[http]' --python 3.12

客户端调用示例

curl -N -X POST http://127.0.0.1:8080/mcp/ \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-03-26",
                 "capabilities":{},
                 "clientInfo":{"name":"curl","version":"0"}}}'

CLI/env参考

标志环境变量默认值目的
--transportMCP_TRANSPORTstdiostdiohttp
--hostMCP_HTTP_HOST127.0.0.1在HTTP模式下绑定地址
--portMCP_HTTP_PORT8080在HTTP模式下绑定端口
--pathMCP_HTTP_PATH/mcpMCP端点的URL路径
--auth-tokenMCP_HTTP_AUTH_TOKEN_(无)_需要 Authorization: Bearer

PR#31 了解实施细节。

______________________________________________________________________

✨ v1.0.9的新增功能

增强聚合和改进日志记录 -生产就绪的智能查询增强功能:

v1.0.9-智能查询增强功能:

  • 简单聚合支持 -查询如下 SELECT COUNT(*) FROM table 现在工作正常

- 支持没有GROUP BY的聚合(返回单行) - 增强正则表达式以处理GROUP BY查询中的ORDER BY - 完全支持简单聚合和分组聚合

  • 增强的资产检测 -多策略搜索减少误报

- 精确名称匹配+包含不区分大小写的搜索匹配 - API目录限制的优雅后退 - 更好地处理模式前缀视图

  • 改进日志记录 -更好的用户体验,信息更清晰

- 信息表情符号(ℹ️) 而不是警告表情符号(⚠️) 对于非关键消息 - 更准确的描述(“不在目录搜索中”与“未找到”) - 仅当查询可能失败时才提供可操作的建议

v1.0.8-关键修补程序:

  • ✅ 修复了聚合回退错误-客户端聚合现在可以在主路径和回退路径中工作

v1.0.7-智能查询生产增强:

  • ✅ GROUP BY查询的客户端聚合
  • ✅ 资产能力检测
  • ✅ 模糊表名匹配
  • ✅ 极限下推优化

结果: 45工具 支持所有SQL模式的生产就绪智能查询引擎

CHANGELOG_v1.0.9.md 了解完整细节。

______________________________________________________________________

📊 当前状态

🎉 45个可用工具-44个具有真实数据(98%) | 阶段1-5.1完整+智能查询引擎

  • 98%真实数据集成 -44/45个工具访问实际租户数据
  • OAuth 2.0身份验证 -具有自动令牌刷新功能的企业级安全
  • 100%基础工具 -所有身份验证、连接和用户工具都工作正常
  • 100%目录工具 -完成资产发现和元数据探索
  • 100%搜索工具 -目录和存储库的客户端搜索解决方法
  • 100%数据库用户管理 -使用真实SAP Datasphere CLI的所有5个工具
  • 100%ETL工具 -所有4个具有企业级数据提取功能的Phase 5.1工具(最多50K条记录)
  • 新:数据谱系和质量 -列搜索和分布分析工具
  • 🟡 1个诊断工具 -端点测试实用程序(有意模拟模式)

______________________________________________________________________

📚 完整文档

新全面的生产准备文件:

指南说明阅读时间
📖 入门指南10分钟快速入门示例10分钟
📋 工具目录所有44种工具的完整参考30分钟
🔧 API 参考带有Python/cURL示例的API技术文档45分钟
🚀 部署指导生产部署(Docker、K8s、PyPI)20分钟
🐛 故障排除常见问题和解决方案15分钟

快速链接:

______________________________________________________________________

📊 查询示例和可用数据

服务器提供访问 37+数据资产 包括销售、产品、人力资源、财务和时间维度数据。看 QUERY_EXAMPLES.md 查看完整的示例和文档。

可用数据资产

  • 销售数据: 详细的订单和分析(All For Bikes、eBike 100等)
  • 产品目录: 叉车(7900美元),自行车(288-699美元),规格
  • 人力资源分析: 员工人数、职位分类、地点
  • 财务数据: 交易明细和总账账户
  • 时间维度: 1900年至今的日历数据

快速示例

销售订单(关系型):

query_relational_entity(
    space_id="SAP_CONTENT",
    asset_id="SAP_SC_SALES_V_SalesOrders",
    entity_name="SAP_SC_SALES_V_SalesOrders",
    select="SALESORDERID,COMPANYNAME,GROSSAMOUNT,CURRENCY",
    top=5
)

产品信息(关系):

query_relational_entity(
    space_id="SAP_CONTENT",
    asset_id="SAP_SC_FI_V_ProductsDim",
    entity_name="SAP_SC_FI_V_ProductsDim",
    select="PRODUCTID,MEDIUM_DESCR,PRICE,CURRENCY",
    top=5
)

销售分析(分析):

query_analytical_data(
    space_id="SAP_CONTENT",
    asset_id="SAP_SC_SALES_AM_SalesOrders",
    entity_set="SAP_SC_SALES_AM_SalesOrders",
    select="COMPANYNAME,GROSSAMOUNT",
    orderby="GROSSAMOUNT desc",
    top=8
)

演出 1-5秒的响应时间,每批最多50K条记录。

QUERY_EXAMPLES.md 对于37+个数据资产,5个详细示例和最佳实践。

______________________________________________________________________

🌟 主要亮点

  • 🎯 45 MCP工具:通过模型上下文协议实现全面的SAP数据圈操作
  • 🔐 OAuth 2.0:具有自动令牌刷新功能的生产就绪身份验证
  • 真实数据访问:44个工具(98%)访问实际租户数据-空间、资产、用户、元数据
  • 🚀 API集成:44种工具(98%),通过API和CLI实现真实数据集成
  • 🧠 智能查询引擎:为所有查询类型提供客户端聚合的生产就绪SQL支持
  • 🔍 资产发现:发现36+实物资产(人力资源、财务、销售、时间维度)
  • 📊 数据查询:通过自然语言对真实数据执行OData查询和ETL提取
  • 🧬 数据血缘:按列名查找资产,以进行影响分析和沿袭跟踪
  • 📈 数据质量:具有零率、百分位数和异常值检测的统计列分析
  • 👥 用户管理:使用真实的API创建、更新和管理数据库用户
  • 🧠 AI集成:Claude Desktop、Cursor IDE和其他MCP兼容助手
  • 🏆 100%基础和目录工具:所有岩心发现工具功能齐全
  • 📦 生产就绪:Docker、Kubernetes、PyPI打包可用

______________________________________________________________________

🛠️ 完整的工具目录(45个工具)

🏆 真实数据成功总结

类别工具总数实际数据成功率
基础工具55 ✅100%
目录工具44 ✅100%
太空探索33 ✅100%
搜索工具22 ✅100% (客户端变通方法)
数据发现和质量22 ✅100% (v1.0.3-谱系和分析)
数据库用户管理55 ✅100% (SAP CLI集成)
元数据工具44 ✅100%
分析消费工具44 ✅100% (OData分析查询)
附加工具55 ✅100% (连接、任务、市场等)
关系查询工具11 ✅100% (SQL到OData的转换)
智能查询引擎11 ✅100% (v1.0.9-支持所有SQL模式)
ETL优化关系工具44 ✅100% (第5.1阶段-最多50K条记录)
诊断工具30 🟡模拟模式 (端点测试实用程序)
存储库工具(旧版)20 ❌0% (已弃用-改用Catalog)
总计4544 (98%)98%覆盖率

______________________________________________________________________

🔐 基础工具(5个工具)-100%真实数据✅

工具状态描述
test_connection✅ 真实数据测试OAuth连接并获取健康状态
get_current_user✅ 真实数据从JWT令牌中获取经过身份验证的用户信息
get_tenant_info✅ 真实数据获取SAP Datasphere租户配置
get_available_scopes✅ 真实数据列出令牌中的OAuth2作用域
list_spaces✅ 真实数据列出所有可访问的空间(DEVAULT_SPACE、SAP_CONTENT)

示例查询:

"Test the connection to SAP Datasphere"
"Who am I? Show my user information"
"What tenant am I connected to?"
"What OAuth scopes do I have?"
"List all SAP Datasphere spaces"

真实数据示例:

  • 真正的租户:your-tent.eu20.hcs.cloud.sap
  • 真实空间:DEVAULT_SPACE,SAP_CONTENT
  • OAuth JWT令牌中的真实用户信息
  • 真正的OAuth作用域(通常为3个以上的作用域)

______________________________________________________________________

🔍 太空探索工具(3个工具)-100%真实数据✅

工具状态描述
get_space_info✅ 真实数据获取特定空间的详细信息
get_table_schema✅ 真实数据获取表的列定义和数据类型
search_tables✅ 真实数据按关键字搜索表和视图(客户端过滤)

示例查询:

"Show me details about the SAP_CONTENT space"
"Get the schema for FINANCIAL_TRANSACTIONS table"
"Search for tables containing 'customer'"

真实数据示例:

  • API的真实空间元数据
  • 真实表模式(当表存在于空间中时)
  • search_tables使用客户端筛选解决方法(API不支持OData筛选器)

______________________________________________________________________

📦 目录和资产工具(4个工具)-100%真实数据✅

工具状态描述
list_catalog_assets✅ 真实数据跨空间浏览所有目录资产(找到36+资产!)
get_asset_details✅ 真实数据获取全面的资产元数据和模式
get_asset_by_compound_key✅ 真实数据按空间和名称检索资产
get_space_assets✅ 真实数据列出特定空间内的所有资产

示例查询:

"List all catalog assets in the system"
"Get details for asset SAP_SC_FI_AM_FINTRANSACTIONS"
"Show me all assets in the SAP_CONTENT space"
"Get asset by compound key: space=SAP_CONTENT, id=SAP_SC_HR_V_Divisions"

发现的不动产(36+不动产):

  • 人力资源资产:SAP_SC_HR_V_部门、SAP_SC_HR \_V_作业类、SAP_SC\_ HR_V_位置、SAP_SC~HR_V_作业
  • 金融资产:SAP_SC_FI_V_产品尺寸,SAP_SC_FIA_AM_FINTRANSACTIONS
  • 时间和销售模式:具有真实元数据URL的多个分析模型
  • 所有资产 包括指向租户的真实元数据URL

______________________________________________________________________

🔎 搜索工具(2个工具)-100%真实数据✅

工具状态描述
search_catalog✅ 真实数据按查询搜索目录资产(客户端解决方法)
search_repository✅ 真实数据使用过滤器搜索存储库对象(客户端解决方法)

示例查询:

"Search catalog for 'sales'"
"Find repository objects containing 'customer'"
"Search for analytical models in SAP_CONTENT"

真实数据示例:

  • 客户端在名称、标签、业务名称和描述字段之间进行搜索
  • 支持方面(objectType、spaceId聚合)
  • 支持过滤器(object_types、space_id)
  • 支持why_found跟踪(显示匹配的字段)
  • 分页和总计报告

实施: 这两个工具都使用客户端搜索解决方法,因为 /api/v1/datasphere/consumption/catalog/search 端点返回404 Not Found。他们从以下位置获取所有资产 /catalog/assets 并在客户端进行过滤。

______________________________________________________________________

🔬 数据发现和质量工具(2个工具)-100%真实数据✅

工具状态描述
find_assets_by_column✅ 真实数据查找包含数据沿袭特定列名的所有资产
analyze_column_distribution✅ 真实数据列数据分布和质量分析的统计分析

示例查询:

"Which tables contain CUSTOMER_ID column?"
"Find all assets with SALES_AMOUNT"
"Analyze the distribution of ORDER_TOTAL column"
"What's the data quality of CUSTOMER_AGE field?"
"Profile the PRICE column for outliers"

真实数据示例:

  • 数据血缘:跨空间列搜索,模式更改前的影响分析
  • 质量分析:零率、不同值、百分位数、异常检测(IQR法)
  • 用例:数据发现、模式关系映射、数据质量评估、预分析分析分析

实施: v1.0.3中引入的两个工具都提供了高级数据发现和质量功能:

  • find_assets_by_column:跨多个空格搜索,默认情况下不区分大小写,最多200个结果
  • analyze_column_distribution:分析多达10000条记录,自动类型检测,百分位数分析

______________________________________________________________________

📊 元数据工具(4个工具)-100%真实数据✅

工具状态描述
get_catalog_metadata✅ 真实数据检索目录服务的CSDL元数据模式
get_analytical_metadata✅ 真实数据通过飞行前检查获取分析模型元数据
get_relational_metadata✅ 真实数据使用SQL类型映射获取关系模式
list_analytical_datasets✅ 真实数据列出分析数据集(固定查询参数)

示例查询:

"Get the catalog metadata schema"
"Retrieve analytical metadata for SAP_SC_FI_AM_FINTRANSACTIONS"
"Get relational schema for CUSTOMER_DATA table"
"List analytical datasets"

状态: 所有4个工具都通过适当的错误处理和能力检查返回真实数据。

______________________________________________________________________

👥 数据库用户管理工具(5个工具)-100%真实数据✅

工具状态描述需要同意
list_database_users✅ 真实数据列出所有数据库用户(SAP CLI)
create_database_user✅ 真实数据创建新的数据库用户(SAP CLI)是(ADMIN)
update_database_user✅ 真实数据更新用户权限(SAP CLI)是(ADMIN)
delete_database_user✅ 真实数据删除数据库用户(SAP CLI)是(ADMIN)
reset_database_user_password✅ 真实数据重置用户密码(SAP CLI)是(敏感)

示例查询:

"List all database users in SAP_CONTENT space"
"Create a new database user named ETL_USER"
"Update permissions for DB_USER_001"
"Delete database user TEST_USER"
"Reset password for DB_USER_001"

状态: 所有5个工具都使用真正的SAP Datasphere CLI集成,包括子流程执行、临时文件处理和全面的错误处理。

同意管理: 高风险操作(创建、更新、删除、重置密码)需要用户在首次使用时同意。同意书被缓存60分钟。

______________________________________________________________________

🔧 API语法修复(4个工具)-100%真实数据✅

工具状态描述
search_tables✅ 真实数据搜索表/视图(客户端过滤)
get_deployed_objects✅ 真实数据列出已部署的对象(删除了不受支持的筛选器)
list_analytical_datasets✅ 真实数据列表数据集(固定查询参数)
get_analytical_metadata✅ 真实数据获取元数据(飞行前能力检查)

状态: 在第2阶段修复的所有4个工具都删除了不受支持的OData过滤器,并添加了客户端解决方法。

______________________________________________________________________

🔧 HTML响应修复(2个工具)-100%真实数据✅

工具状态描述
get_task_status✅ 真实数据对HTML响应进行优雅的错误处理
browse_marketplace✅ 真实数据仅限UI端点的专业降级

状态: 这两个工具在第3阶段都得到了修复——当端点返回HTML而不是JSON时,添加了内容类型验证和有用的错误消息。

______________________________________________________________________

📈 分析消费工具(4个工具)-100%真实数据✅

工具状态描述
get_analytical_model✅ 真实数据获取OData服务文档和分析模型元数据
get_analytical_service_document✅ 真实数据获取服务功能、实体集和导航属性
list_analytical_datasets✅ 真实数据列出模型的所有分析数据集和实体集
query_analytical_data✅ 真实数据使用$select、$filter、$apply、$top执行OData分析查询

示例查询:

"Get analytical model for SAP_SC_FI_AM_FINTRANSACTIONS"
"Show me the service document for SAP_SC_HR_V_Divisions"
"List all datasets in the analytical model"
"Query analytical data from SAP_SC_FI_AM_FINTRANSACTIONS with filters"

真实数据特征:

  • OData v4.0分析消耗API(/API/v1/datasphere/消耗/分析)
  • 完整的元数据发现(服务文档、实体集、属性)
  • 使用$filter、$select、$top、$skip、$orderby进行高级过滤
  • 使用$apply支持聚合(groupby、聚合函数)
  • 来自SAP Datasphere实例的真实租户数据

状态:所有4个分析消费工具都可以使用真实的SAP Datasphere数据完全运行!

______________________________________________________________________

🔌 附加工具(5个工具)-100%真实数据✅

工具状态描述
list_connections✅ 真实数据列出所有已配置的连接(HANA、S/4HANA等)
get_task_status✅ 真实数据监控任务执行状态和进度
browse_marketplace✅ 真实数据浏览数据市场资产和包
get_consumption_metadata✅ 真实数据获取消费层元数据(CSDL模式)
get_deployed_objects✅ 真实数据列出空间中所有已部署的对象

示例查询:

"List all connections in the system"
"Check the status of task 12345"
"Browse the Data Marketplace"
"Get consumption metadata schema"
"Show deployed objects in SAP_CONTENT"

状态:所有附加工具都提供了基本的系统管理功能,并提供了完整的真实数据支持。

______________________________________________________________________

🧪 诊断工具(3个工具)-端点测试实用程序

工具状态描述
test_analytical_endpoints🧪 诊断测试分析/查询API端点可用性
test_phase67_endpoints🧪 诊断测试第6和第7阶段端点可用性(KPI、监控、用户)
test_phase8_endpoints🧪 诊断测试第8阶段端点可用性(数据共享、AI功能)

目的:这些诊断工具有助于验证哪些SAP Datasphere API端点在特定租户配置中可用。它们返回具有以下内容的结构化报告:

  • 每个端点的HTTP状态代码
  • 错误消息和故障排除指南
  • 解决方法或替代工具的建议

状态:诊断工具有意使用模拟/测试模式来验证端点可用性,而无需修改数据。

______________________________________________________________________

🗂️ 存储库工具(2个工具)-已弃用(改用目录)

工具状态描述
list_repository_objects⚠️ 弃用列出存储库对象(改用List_catalog_assets)
get_object_definition⚠️ 弃用获取对象定义(改用Get_asset_details)

推荐:这些旧版存储库工具已弃用。请改用现代目录工具:

  • 替换 list_repository_objectslist_catalog_assetssearch_catalog
  • 替换 get_object_definitionget_asset_details

状态:目录工具提供卓越的功能和完整的真实数据支持。

______________________________________________________________________

🔐 关系查询工具(1个工具)-100%真实数据✅

工具状态描述需要同意
execute_query✅ 真实数据使用SQL对Datasphere表/视图执行SQL查询→OData转换是(写入)

示例查询:

"Execute query: SELECT * FROM SAP_SC_FI_AM_FINTRANSACTIONS LIMIT 10"
"Query: SELECT customer_id, amount FROM SALES_ORDERS WHERE status = 'COMPLETED' LIMIT 50"
"Get data: SELECT * FROM SAP_SC_HR_V_Divisions"

真实数据特征:

  • SQL到OData的转换:自动将SQL查询转换为OData API调用
  • 关系消费API: /api/v1/datasphere/consumption/relational/{space_id}/{view_name}
  • 支持的SQL语法:

- SELECT *SELECT column1, column2 → OData $select - WHERE conditions → OData $filter (基本转换) - LIMIT N → OData $top

  • 查询安全:最多1000行,超时60秒
  • 错误处理:找不到表的有用消息、解析错误、权限问题

SQL转换示例:

SELECT * FROM CUSTOMERS WHERE country = 'USA' LIMIT 10
→ GET /relational/SPACE/CUSTOMERS?$filter=country eq 'USA'&$top=10

SELECT customer_id, name FROM ORDERS LIMIT 20
→ GET /relational/SPACE/ORDERS?$select=customer_id,name&$top=20

局限性:

  • 无JOIN(仅限于OData单表查询)
  • 基本的WHERE子句转换(简单的比较工作)
  • 无分组,按顺序(未来增强)
  • 表/视图名称区分大小写

状态: ✅ 与真实的SAP Datasphere数据完全兼容!测试并确认工作正常。

______________________________________________________________________

🧠 智能查询引擎(1个工具)-100%真实数据✅ 新版v1.0.9!

工具状态描述需要同意
smart_query✅ 真实数据具有客户端聚合和多层回退功能的智能SQL查询路由器否(READ)

示例查询:

"Query: SELECT * FROM SAP_SC_FI_V_ProductsDim LIMIT 5"
"Get product counts by category: SELECT PRODUCTCATEGORYID, COUNT(*) FROM SAP_SC_FI_V_ProductsDim GROUP BY PRODUCTCATEGORYID"
"Simple aggregation: SELECT COUNT(*), AVG(PRICE) FROM SAP_SC_FI_V_ProductsDim"
"Analytics with sorting: SELECT CATEGORY, COUNT(*), AVG(PRICE) FROM Products GROUP BY CATEGORY ORDER BY COUNT(*) DESC"

真实数据特征:

  • 智能路由:根据查询类型和资产功能自动在分析端点和关系端点之间进行选择
  • 客户端聚合:当API不支持SQL聚合时,完全支持它们

- 简单聚合: SELECT COUNT(*) FROM table (返回单行) - 按聚合分组: SELECT category, COUNT(*) FROM table GROUP BY category - 所有聚合函数:COUNT、SUM、AVG、MIN、MAX

  • 资产能力检测:在执行查询之前,进行多策略搜索以验证资产支持
  • 增强的错误消息:模糊表名与可操作建议匹配
  • 极限按下:自动将SQL LIMIT转换为OData$top以获得最佳性能
  • 多层回退:初级(分析)→ 回退(关系+聚合)→ 有用的错误

支持的查询类型:

-- Simple queries
SELECT * FROM table LIMIT 10

-- Simple aggregations (NEW in v1.0.9)
SELECT COUNT(*) FROM table
SELECT COUNT(*), AVG(price), MAX(price) FROM table

-- GROUP BY aggregations
SELECT category, COUNT(*), AVG(price) FROM table GROUP BY category

-- Complex queries with ORDER BY
SELECT category, COUNT(*) as cnt FROM table GROUP BY category ORDER BY cnt DESC LIMIT 5

演出

  • 响应时间:500ms-2s,具体取决于数据量
  • 批量大小:每次查询最多50000条记录
  • 优化:LIMIT下推可将数据传输减少高达95%

状态: ✅ 具备全面SQL支持的生产就绪!所有常见的查询模式都能完美运行(v1.0.7-v1.0.9增强版)。

______________________________________________________________________

🏭 ETL优化关系工具(4个工具)-100%真实数据✅ 新阶段5.1!

工具状态描述需要同意
list_relational_entities✅ 真实数据列出资产中用于ETL操作的所有可用关系实体(表/视图)否(READ)
get_relational_entity_metadata✅ 真实数据使用SQL类型映射(OData)获取实体元数据→SQL)用于数据仓库加载否(READ)
query_relational_entity✅ 真实数据使用大批量处理(最多50000条记录)执行OData查询以进行ETL提取否(READ)
get_relational_odata_service✅ 真实数据获取具有ETL规划功能和查询优化指导的OData服务文档否(阅读)

示例查询:

"List all relational entities in SAP_CONTENT space for asset SAP_SC_SALES_V_Fact_Sales"
"Get entity metadata with SQL types for SAP_CONTENT/SAP_SC_SALES_V_Fact_Sales"
"Query relational entity from SAP_CONTENT, asset SAP_SC_SALES_V_Fact_Sales, entity Results, limit 1000"
"Get OData service document for SAP_CONTENT/SAP_SC_SALES_V_Fact_Sales with ETL capabilities"

真实数据特征:

  • 大批量加工:每次查询最多提取50000条记录(execute_query为1000条)
  • SQL类型映射:自动OData到SQL类型转换(NVARCHAR、BIGINT、DECIMAL、DATE等)
  • ETL规划:服务发现、实体枚举、批大小建议
  • 性能优化:增量提取、并行加载、分页策略
  • 生产质量:实际生产数据的响应时间低于秒

ETL用例:

  • 数据仓库加载:为目标数据库提取具有适当SQL类型的大型数据集
  • 增量提取:使用 $filter 带有用于增量负载的日期列
  • 并行提取:使用 $skip 对大容量数据有多个并发请求
  • 架构发现:在ETL作业之前获取包含列类型、精度和规模的完整元数据

高级查询功能:

OData Parameters Supported:
- $filter: Complex filtering expressions (e.g., "amount gt 1000 and status eq 'ACTIVE'")
- $select: Column projection (e.g., "customer_id,amount,date")
- $top/$skip: Pagination (up to 50K per batch)
- $orderby: Sorting (e.g., "amount desc, date asc")

SQL类型映射示例:

Edm.String       → NVARCHAR(MAX)
Edm.Int32        → INT
Edm.Int64        → BIGINT
Edm.Decimal      → DECIMAL(18,2)
Edm.Double       → DOUBLE
Edm.Date         → DATE
Edm.DateTime     → TIMESTAMP
Edm.Boolean      → BOOLEAN

端点模式:

GET /api/v1/datasphere/consumption/relational/{space}/{asset}               → List entities
GET /api/v1/datasphere/consumption/relational/{space}/{asset}/$metadata     → Get metadata
GET /api/v1/datasphere/consumption/relational/{space}/{asset}/{entity}      → Query data

状态: ✅ 所有4个工具功能齐全,具有企业级ETL功能!用真实的生产销售数据进行测试,在大型结果集下实现了亚秒级的性能。

______________________________________________________________________

🚀 快速开始

先决条件

Python 3.10+
SAP Datasphere account with OAuth 2.0 configured
Technical User with appropriate permissions

安装

# 1. Clone the repository
git clone https://github.com/MarioDeFelipe/sap-datasphere-mcp.git
cd sap-datasphere-mcp

# 2. Install dependencies
pip install -r requirements.txt

# 3. Configure OAuth credentials
cp .env.example .env
# Edit .env with your SAP Datasphere OAuth credentials

# 4. Start MCP Server
python sap_datasphere_mcp_server.py

配置

创建一个 .env 包含SAP Datasphere凭据的文件:

# SAP Datasphere Connection
DATASPHERE_BASE_URL=https://your-tenant.eu10.hcs.cloud.sap
DATASPHERE_TENANT_ID=your-tenant-id

# OAuth 2.0 Credentials (Technical User)
DATASPHERE_CLIENT_ID=your-client-id
DATASPHERE_CLIENT_SECRET=your-client-secret
DATASPHERE_TOKEN_URL=https://your-tenant.authentication.eu10.hana.ondemand.com/oauth/token

# Optional: Mock Data Mode (for testing without real credentials)
USE_MOCK_DATA=false

⚠️ 重要提示: 永远不要承诺你的 .env 文件到版本控制!

📖 需要OAuth设置方面的帮助吗? 请参阅完整指南: OAuth设置指南

______________________________________________________________________

🤖 AI助手集成

克劳德桌面版

选项1:使用npm(推荐)

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "sap-datasphere": {
      "command": "npx",
      "args": ["@mariodefe/sap-datasphere-mcp"],
      "env": {
        "DATASPHERE_BASE_URL": "https://your-tenant.eu20.hcs.cloud.sap",
        "DATASPHERE_CLIENT_ID": "your-client-id",
        "DATASPHERE_CLIENT_SECRET": "your-client-secret",
        "DATASPHERE_TOKEN_URL": "https://your-tenant.authentication.eu20.hana.ondemand.com/oauth/token"
      }
    }
  }
}

选项2:直接使用Python

{
  "mcpServers": {
    "sap-datasphere": {
      "command": "python",
      "args": ["-m", "sap_datasphere_mcp_server"],
      "env": {
        "DATASPHERE_BASE_URL": "https://your-tenant.eu20.hcs.cloud.sap",
        "DATASPHERE_CLIENT_ID": "your-client-id",
        "DATASPHERE_CLIENT_SECRET": "your-client-secret",
        "DATASPHERE_TOKEN_URL": "https://your-tenant.authentication.eu20.hana.ondemand.com/oauth/token"
      }
    }
  }
}

地点:

  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

自然语言查询示例

配置后,询问您的AI助手:

太空与探索:

"List all SAP Datasphere spaces"
"Show me the schema for the CUSTOMERS table"
"Search for tables containing 'sales' in SAP_CONTENT"

元数据探索:

"Get the analytical metadata for REVENUE_ANALYSIS"
"Show me the catalog metadata schema"
"Get relational schema for FINANCIAL_TRANSACTIONS"

分析查询:

"Query financial data where Amount > 1000"
"Get analytical model for SALES_ANALYTICS.REVENUE_ANALYSIS"
"Execute aggregation: group by Currency and sum Amount"

用户管理:

"List all database users"
"Create a new database user named ETL_READER"
"Update permissions for user DB_USER_001"

存储库对象:

"Get the complete definition for SAP_SC_FI_AM_FINTRANSACTIONS"
"Show me all assets in SAP_CONTENT space"
"Get repository search metadata"

______________________________________________________________________

🔒 安全功能

OAuth 2.0身份验证

  • 客户端凭据流:安全的技术用户身份验证
  • 自动令牌刷新:令牌在到期前60秒刷新
  • 加密存储:使用Fernet加密在内存中加密的令牌
  • 代码中没有凭据:从环境变量加载的所有机密
  • 重试逻辑:瞬态故障的指数回退

授权与同意

  • 权限级别:读、写、管理、敏感
  • 使用者同意:高风险操作的交互式提示
  • 审计日志:完整的运营审计跟踪
  • 输入验证:15种以上攻击模式的SQL注入防御
  • 数据筛选:自动PII和凭证编辑

安全最佳实践

  • 🔐 基于环境的配置:没有硬编码凭据
  • 🔒 HTTPS/TLS:所有通信均加密
  • 📝 综合录井:详细的安全审计跟踪
  • 🔑 许可证管理:自动刷新和安全旋转
  • 🛡️ SQL清理:只读查询,防止注射

______________________________________________________________________

📊 建筑

系统架构

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   AI Assistant  │◄──►│   MCP Server     │◄──►│  SAP Datasphere │
│ (Claude, Cursor)│    │  32 Tools        │    │   (OAuth 2.0)   │
│                 │    │  Authorization   │    │                 │
│                 │    │  Caching         │    │                 │
│                 │    │  Telemetry       │    │                 │
└─────────────────┘    └──────────────────┘    └─────────────────┘

核心组件

身份验证层:

  • auth/oauth_handler.py -令牌管理和刷新
  • auth/datasphere_auth_connector.py -经过身份验证的API连接器
  • auth/authorization.py -基于权限的授权
  • auth/consent_manager.py -用户同意跟踪

安全层:

  • auth/input_validator.py -输入验证框架
  • auth/sql_sanitizer.py -SQL注入预防
  • auth/data_filter.py -PII和凭证编辑

性能层:

  • cache_manager.py -TTL智能缓存
  • telemetry.py -请求跟踪和指标

MCP服务器:

  • sap_datasphere_mcp_server.py -主服务器,配备42个工具

______________________________________________________________________

🚀 生产部署

快速部署选项

Docker(推荐):

# Build and run
docker build -t sap-datasphere-mcp:latest .
docker run -d --name sap-mcp --env-file .env sap-datasphere-mcp:latest

# Using Docker Compose
docker-compose up -d

PyPI包 (即将推出):

pip install sap-datasphere-mcp
sap-datasphere-mcp

Kubernetes:

# Create secrets
kubectl create secret generic sap-mcp-secrets \
  --from-literal=DATASPHERE_CLIENT_ID='...' \
  --from-literal=DATASPHERE_CLIENT_SECRET='...'

# Deploy
kubectl apply -f k8s/deployment.yaml
kubectl scale deployment sap-mcp-server --replicas=5

手册:

git clone https://github.com/MarioDeFelipe/sap-datasphere-mcp.git
cd sap-datasphere-mcp
pip install -r requirements.txt
cp .env.example .env  # Edit with your credentials
python sap_datasphere_mcp_server.py

📖 部署.md 获取完整的生产部署指南

______________________________________________________________________

📈 性能特征

响应时间

  • 元数据查询:低于1000毫秒(缓存)
  • 目录查询:100-500ms
  • OData查询:500-2000ms(取决于数据量)
  • 令牌刷新:自动,对用户透明

缓存策略

  • 📊 空间:1小时TTL
  • 📦 资产:30分钟TTL
  • 🔍 元数据:15分钟TTL
  • 👥 用户:5分钟TTL
  • 🔄 LRU驱逐:自动清理旧条目

可扩展性

  • 🔄 并发请求:多个同时进行的MCP操作
  • 🛡️ 错误恢复:使用指数回退自动重试
  • 📊 连接池:高效的资源管理

______________________________________________________________________

🧪 测试

运行测试

# Test MCP server startup
python test_mcp_server_startup.py

# Test authorization coverage
python test_authorization_coverage.py

# Test input validation
python test_validation.py

# Test with MCP Inspector
npx @modelcontextprotocol/inspector python sap_datasphere_mcp_server.py

测试结果

  • 42/42个工具已注册 -所有工具定义正确
  • 42/42授权工具 -已配置授权权限
  • 41/42工具工作 -成功率98%
  • 0个代码错误 -所有实施问题均已解决

______________________________________________________________________

📁 项目结构

sap-datasphere-mcp/
├── 📁 auth/                            # Authentication & Security
│   ├── oauth_handler.py                # OAuth 2.0 token management
│   ├── datasphere_auth_connector.py    # Authenticated API connector
│   ├── authorization.py                # Permission-based authorization
│   ├── consent_manager.py              # User consent tracking
│   ├── input_validator.py              # Input validation framework
│   ├── sql_sanitizer.py                # SQL injection prevention
│   └── data_filter.py                  # PII and credential redaction
├── 📁 config/                          # Configuration management
│   └── settings.py                     # Environment-based settings
├── 📁 docs/                            # Documentation
│   ├── OAUTH_SETUP.md                  # OAuth setup guide
│   ├── TROUBLESHOOTING_CLAUDE_DESKTOP.md
│   └── OAUTH_IMPLEMENTATION_STATUS.md
├── 📄 sap_datasphere_mcp_server.py     # Main MCP server (42 tools)
├── 📄 cache_manager.py                 # Intelligent caching
├── 📄 telemetry.py                     # Monitoring and metrics
├── 📄 mock_data_provider.py            # Mock data for testing
├── 📄 .env.example                     # Configuration template
├── 📄 requirements.txt                 # Python dependencies
├── 📄 README.md                        # This file
└── 📄 ULTIMATE_TEST_RESULTS.md         # Comprehensive test results

______________________________________________________________________

🙏 致谢

此MCP服务器的构建得益于以下方面的重大贡献:

亚马逊Kiro

提供了全面的规范、架构指导和开发指导,塑造了MCP服务器的设计和实现。

克劳德代码

人工智能驱动的开发助理,为以下方面做出了贡献:

第一阶段:安全与身份验证

  • OAuth 2.0实现,带有自动令牌刷新功能
  • 基于权限的授权(读取、写入、管理、敏感)
  • 高风险操作的用户同意流程
  • 输入验证和SQL清理
  • 敏感数据过滤和PII编辑

第二阶段:用户体验和人工智能交互

  • 通过示例增强工具描述
  • 带有恢复建议的智能错误消息
  • 具有明确格式要求的参数验证

第3阶段:性能和监控

  • 基于类别的TTL智能缓存
  • 全面的遥测和指标
  • 性能优化(缓存查询速度提高95%)

第4阶段:存储库和分析

  • 存储库对象发现工具
  • 分析模型访问和OData查询支持
  • 元数据提取和模式发现

模拟数据修复之旅:

  • 第1阶段:数据库用户管理(5/5工具)-SAP CLI集成✅
  • 阶段2:neneneba API语法修复(4/4工具)-OData筛选器解决方法✅
  • 第3阶段:HTML响应修复(2/2工具)-优雅降级✅
  • 第4阶段:搜索解决方案(2/2个工具)-客户端搜索✅
  • 成就:42.9%起→ 80% 真正的数据集成! 🎯

______________________________________________________________________

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

______________________________________________________________________

📞 支持

______________________________________________________________________

🎯 路线图

完成✅

  • \[x\] OAuth 2.0身份验证,自动刷新令牌
  • \[x\] 35个MCP工具的实施
  • \[x\] 🎯 实现目标:80%真实数据集成(28/35个工具)
  • \[x\] 授权和同意管理
  • \[x\] 输入验证和SQL清理
  • \[x\] 智能缓存和遥测
  • \[x\] 第一阶段: 数据库用户管理(5/5工具)-SAP CLI集成
  • \[x\] 第二阶段: API语法修复(4/4工具)-OData筛选器解决方法
  • \[x\] 第三阶段: HTML响应修复(2/2工具)-优雅降级
  • \[x\] 第四阶段: 搜索解决方法(2/2个工具)-客户端搜索
  • \[x\] 使用真实的SAP Datasphere租户进行全面测试
  • \[x\] 发现36+实物资产 (人力资源、财务、销售、时间维度)
  • \[x\] 100%基础、目录、搜索、元数据和用户管理工具

未来的增强功能🔮

  • \[\]分析工具真实数据集成(需要租户配置)
  • \[\]增强的查询执行能力
  • \[\]受限端点的其他权限范围
  • \[\]语义搜索的矢量数据库集成
  • \[\]实时事件流
  • \[\]高级模式可视化
  • \[\]多租户支持
  • \[\]机器学习集成

______________________________________________________________________

🏆 生产就绪SAP Datasphere MCP服务器

🎯 实现的目标:28/35个具有真实数据的工具(80%)

发现36+实物资产|所有关键工具正常工作

](https://github.com/MarioDeFelipe/sap-datasphere-mcp/stargazers) ![MCP Compatible](https://modelcontextprotocol.io/) ![Real Data](<>) ![API Integration](<>)

建于❤️ 用于人工智能驱动的企业数据集成

从42.9%→ 80% 通过系统模拟数据修复实现真实数据集成!

目录标签

目录标签

数据分析PythonClaude数据管理SAPDatasphere本地部署MCP服务器AI集成MCP协议

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@mariodefe/sap-datasphere-mcp

工具数量(toolCount,工具数)

50

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP