Token导航 LogoToken导航TokenDH.com
MCP Data Platform logo
运维云端未说明官方级别未说明来源级核验

MCP Data Platform

MCP Server

为AI助手提供数据基础设施连接和业务语义层上下文的平台,通过跨服务自动元数据注入实现数据查询与业务理解的统一

工具数

0

提示词数

0

GitHub Stars

5

资源数

0
元数据管理GoClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

txn2

提供方

txn2

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

![txn2/mcp-data-platform](https://mcp-data-platform.txn2.com)

](https://github.com/txn2/mcp-data-platform/blob/main/LICENSE) ![Go Reference](https://pkg.go.dev/github.com/txn2/mcp-data-platform) ![codecov](https://codecov.io/gh/txn2/mcp-data-platform) ![Go Report Card](https://goreportcard.com/report/github.com/txn2/mcp-data-platform) ![OpenSSF Scorecard](https://scorecard.dev/viewer/?uri=github.com/txn2/mcp-data-platform) ![SLSA 3](https://slsa.dev)

文档 | 安装 | 图书馆文档

你的AI助手可以运行SQL。但它不知道 cust_id 包含PII,该表上个月已被弃用,或者在出现问题时该问谁。

mcp数据平台解决了这个问题。它将AI助手连接到您的数据基础设施,并从语义层添加业务上下文。查询一个表,并在同一响应中获取其含义、所有者、质量分数和弃用警告。

唯一的要求是 数据中心 作为你的语义层。添加 特里诺 对于SQL查询和 第3页 当您准备就绪时,用于对象存储。 了解此堆栈的原因→

MCP数据平台生态系统

mcp数据平台是一套更广泛的开源mcp服务器的编排层,旨在作为一个可组合的数据平台协同工作。每个组件都可以独立运行,也可以通过mcp数据平台组合运行,以便通过交叉丰富、身份验证和角色进行统一访问。

  • txn2/mcp-数据中心 --DataHub元数据目录:搜索、沿袭、术语表术语、域、标签和所有权
  • txn2/mcp-3 --S3对象存储:列出bucket、浏览前缀、读取对象、生成预签名URL
  • txn2/mcp trino --Trino分布式SQL:查询Trino连接的任何数据源,具有可配置的超时和行限制

该平台还包括 网关工具包 通过平台的身份验证、角色和审计管道重新公开任何行为良好的第三方MCP服务器。操作员通过管理门户添加连接(数据库支持的加密凭据);工具表面 __可选的声明性交叉富集规则将代理响应与Trino查询或DataHub查找连接起来,因此供应商MCP可以在一次调用中返回自己的数据和仓库上下文。

对于不是MCP服务器的REST/HTTP API API网关工具包 (kind: api)通过同一管道代理Salesforce、Google API、GitHub和Stripe等上游。三个工具(api_invoke_endpoint, api_list_endpoints, api_get_endpoint_schema)覆盖每个上游的每个操作。身份验证模式包括承载、API密钥、OAuth 2.1客户端凭据和带有浏览器登录的OAuth 2.1authorization_code。 static_headers 在auth标头旁边添加操作员提供的每次调用标头,因此需要OAuth承载和项目/订阅标头的API(谷歌的 x-goog-user-project 对于配额计费、供应商订阅密钥),无需更改代码即可工作。

OpenAPI规范存储在版本 API目录:全球拥有的组件规格包,任何数量的连接都可以参考。一个Google Workspace目录(drive.yaml、calendar.yaml、gmail.yaml)支持部署中的每个Google Workspace连接;运行Salesforce沙箱的组织和Salesforce生产组织将这两个连接指向一个Salesforce目录。通过粘贴、文件上传或HTTPS URL(具有严格的SSRF保护)摄取规范;突变会扇出到活动连接中,而无需重新启动进程。

______________________________________________________________________

为什么选择mcp数据平台?

问题:人工智能助手在查询数据方面很强大,但它们是盲目工作的。当Claude问“订单表中有什么?”时,它会得到列名和类型。它不知道:

  • customer_id 列包含需要特殊处理的PII
  • 该表已弃用,取而代之的是 orders_v2
  • 上周数据质量得分下降
  • 当事情看起来不对劲时,应该联系谁

解决方案:mcp数据平台在协议级别注入语义上下文。你的人工智能助手会自动获得商业意义——甚至在它问之前。

无vs有

# Without mcp-data-platform
─────────────────────────────────────────────────────────────────────
User:      "Describe the orders table"
AI:        Queries Trino → gets columns and types
User:      "Who owns this data?"
AI:        Queries DataHub → finds owners
User:      "Is this table still active?"
AI:        Queries DataHub again → finds deprecation status
User:      "What does customer_id actually mean?"
AI:        Queries DataHub again → finds column descriptions
─────────────────────────────────────────────────────────────────────
4 round trips. Context scattered across conversations. Easy to miss warnings.
# With mcp-data-platform
─────────────────────────────────────────────────────────────────────
User:      "Describe the orders table"
AI:        Gets everything in one response:
           → Schema: columns and types
           → ⚠️ DEPRECATED: Use orders_v2 instead
           → Owners: Data Platform Team
           → Tags: pii, financial
           → Quality Score: 87%
           → Column meanings and business definitions
─────────────────────────────────────────────────────────────────────
1 call. Complete context. Warnings front and center.

______________________________________________________________________

运作原理

sequenceDiagram
    participant AI as AI Assistant
    participant P as mcp-data-platform
    participant T as Trino
    participant D as DataHub

    AI->>P: trino_describe_table "orders"
    P->>T: DESCRIBE orders
    T-->>P: columns, types
    P->>D: Get semantic context
    D-->>P: description, owners, tags, quality, deprecation
    P-->>AI: Schema + Full Business Context

该平台拦截工具响应,并用语义元数据丰富它们。这 交叉富集 模式意味着:

  • 三 → DataHub:查询结果包括所有者、标签、术语表术语、弃用警告、质量分数
  • 数据中心 → Trino:搜索结果包括查询可用性(可以查询此数据集吗?SQL是什么?)
  • S3 → 数据中心:对象列表包括匹配的数据集元数据
  • 数据中心 → S3:数据集搜索显示存储可用性

______________________________________________________________________

特性

语义优先数据访问

每个数据查询都包括来自DataHub的业务上下文。表描述、列含义、数据质量分数和所有权信息流自动生成。你的人工智能助手理解数据的含义,而不仅仅是它所包含的内容。

双向交叉富集

上下文在服务之间自动流动。Trino的结果丰富了DataHub元数据。DataHub搜索显示哪些数据集可以在Trino中查询。不需要手动查找或单独的API调用。

工作流门控

LLM代理倾向于跳过DataHub发现,直接跳到SQL。会话感知工作流门控检测到这一点,并在没有发现时用警告注释查询结果。多次违规后,警告升级。内置描述覆盖 trino_querytrino_execute 还指导客服拨打电话 datahub_search 第一。请参阅 中间件参考 了解详情。

企业安全

用a建造 故障关闭 安全模型。缺少凭据会拒绝访问,切勿绕过。HTTP传输的TLS强制、提示注入保护和敏感环境的只读模式强制。看 MCP防御:人工智能安全案例研究 了解安全架构的基本原理。

OAuth 2.1身份验证

对OIDC提供程序(Keycapt、Auth0、Okta)的本机支持、服务帐户的API密钥、公共客户端的PKCE和动态客户端注册。Claude Desktop可以通过您现有的身份提供者进行身份验证。出站网关连接发送 oauth_scope 到IdP逐字记录--运算符添加 offline_access (钥匙斗篷/Auth0/Okta)或 refresh_token (Salesforce)自己获得刷新令牌,使其在IdP的交互式SSO会话超时后平台重新启动。

实时工具清单更新

当网关上游重新进行身份验证或添加/删除连接时,下游代理(Claude.ai、Claude Desktop)会收到 notifications/tools/list_changed 事件发生在长期SSE通道上——不需要断开连接/重新连接。通过postgres在无状态流式HTTP模式(多副本部署形状)下工作 LISTEN/NOTIFY 广播员;对于单副本部署,又回到了内存扇出模式。

基于角色的人物

定义谁可以使用哪些工具。分析师可以读取查询和搜索。管理员得到一切。工具过滤使用从身份提供者角色映射的通配符模式(允许/拒绝规则)。

全面的审计日志记录

每次工具调用都会记录用户身份、角色、请求详细信息和时间。PostgreSQL支持查询和合规性。知道谁问了什么,什么时候问,为什么问。

持久内存

代理在会话中积累知识:偏好、更正、领域背景和制度事实。PostgreSQL支持pgvector进行语义搜索。这 memory_manage 该工具提供CRUD操作, memory_recall 提供多策略检索(实体查找、向量相似性、DataHub沿袭遍历)。内存通过交叉富集中间件自动注入工具包响应中。当引用的DataHub实体发生变化时,陈旧性监视器会标记内存。按用户和角色进行范围划分,并记录完整的审计日志。请参阅 内存层文档 了解详情。

知识获取

人工智能会话生成有价值的领域知识:列含义、数据质量问题、业务规则。这 capture_insight 该工具在会话期间记录这些观察结果(现在由具有向量嵌入的内存层支持),以及 apply_knowledge 为管理员提供结构化的审核工作流。经批准的见解将通过完整的变更集跟踪和回滚写回DataHub。一 管理员REST API 支持与现有治理工具的集成。请参阅 知识捕获文档 了解详情。

资源模板

使用RFC 6570 URI模板将平台数据作为参数化MCP资源浏览。三个内置模板公开表模式(schema://catalog.schema/table),术语表(glossary://term),以及数据可用性(availability://catalog.schema/table)无需调用工具。

管理资源

人类上传的参考资料(样本、剧本、模板、参考文献)通过MCP直接呈现给人工智能助手 resources/listresources/read资源的范围分为三个可见性级别:全局(对所有经过身份验证的用户可见)、角色(对特定角色中的用户可见的)和用户(仅对所有者可见的)。元数据存储在PostgreSQL中;文件blob存储在S3中。上的REST API /api/v1/resources 提供CRUD操作,管理门户包括一个专用的资源页面,用于上传、浏览和管理资源。数据库可用时自动启用。

进度通知

长时间运行的Trino查询向MCP客户端发送细粒度的进度更新(执行、格式化、完成)。客户提供 _meta.progressToken 接收实时状态。禁用时开销为零。

客户端日志记录

服务器到客户端的日志消息使AI代理能够了解平台决策(应用的丰富、时间)。使用MCP logging/setLevel 协议——如果客户端没有选择加入,则开销为零。

可扩展中间件架构

添加自定义身份验证、速率限制或日志记录。交换提供者以集成不同的语义层或查询引擎。Go库公开了一切——构建组织所需的平台。

______________________________________________________________________

管理门户

一个内置的web仪表板,用于监控、审计和管理平台。启用 portal.enabled: true.

Admin Dashboard

仪表板 --实时活动时间线、顶级工具/用户、性能百分位数、错误监控、知识洞察摘要和连接健康状况。

Admin Tools page

工具 --完整工具库存的主细节表面。按连接或种类搜索和分组;深入任何工具,查看其路由、人物角色允许/拒绝矩阵、24小时审计聚合和交叉丰富规则。编辑每个工具的描述覆盖,与自动生成的表单内联运行工具,并切换全局可见性(tools.deny)不离开页面。

请参阅 管理门户文档 查看完整的视觉指南。

______________________________________________________________________

用例

企业数据治理

  • 合规就绪审计跟踪:每个查询都记录了用户身份和业务理由
  • PII保护:基于标签的警告确保AI助手确认敏感数据处理要求
  • 访问控制:Persona系统强制谁可以查询从您的IdP映射的内容
  • 废止强制执行:在AI助手使用过时数据之前,弃用的表会显示警告

数据民主化

  • 自助服务分析:商业用户通过人工智能探索数据,否则他们需要向工程师询问
  • 跨团队发现:搜索通过统一的元数据在所有系统中查找数据集
  • 车载加速:新团队成员立即了解数据资产——包括含义、所有者、质量和沿袭
  • 词汇驱动的探索:业务术语会自动连接到实际的表和列

AI/ML工作流程

  • 自主数据探索:AI代理在没有人类指导的情况下发现和理解数据集
  • 功能发现:使用质量分数和谱系查找和评估潜在的机器学习特征
  • 管道理解:跟踪数据沿袭以了解特征来源
  • 质量门:数据质量分数帮助AI代理避免有问题的数据集

______________________________________________________________________

建筑

graph LR
    subgraph "MCP Data Platform"
        DataHub[DataHub
Semantic Metadata]
        Platform[Platform
Bridge]
        Trino[Trino
Query Engine]
        S3[S3
Object Storage]

        DataHub |"enrichment"| Platform
        Platform |"enrichment"| Trino
        Platform |"enrichment"| S3
    end

    Client([MCP Client]) --> Platform
    Platform --> Client

______________________________________________________________________

安全

mcp数据平台实现了 故障关闭 为企业部署设计的安全模型。看 MCP防御:人工智能安全案例研究 了解安全架构的基本原理。

特性描述
关闭身份验证失败缺少或无效的凭据拒绝访问(从不绕过)
所需JWT索赔令牌必须包括 subexp 索赔
HTTP传输的TLS可配置的TLS,带有明文连接警告
快速注射保护元数据净化可防止注入攻击
只读模式Trino和S3工具包支持强制只读访问
默认拒绝角色没有明确角色分配的用户没有工具访问权限
加密请求ID请求跟踪使用安全的随机标识符

运输安全

传输身份验证TLS
标准不需要(本地执行)N/A
超文本传输协议必需(承载令牌或API密钥)强烈建议

______________________________________________________________________

安装

去安装

go install github.com/txn2/mcp-data-platform/cmd/mcp-data-platform@latest

来源

git clone https://github.com/txn2/mcp-data-platform.git
cd mcp-data-platform
go build -o mcp-data-platform ./cmd/mcp-data-platform

______________________________________________________________________

快速开始

独立服务器

# Run with stdio transport (default)
./mcp-data-platform

# Run with configuration file
./mcp-data-platform --config configs/platform.yaml

# Run with HTTP transport (serves both SSE and Streamable HTTP)
./mcp-data-platform --transport http --address :8080

Claude 代码命令行工具

claude mcp add mcp-data-platform -- mcp-data-platform

克劳德桌面(本地)

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-data-platform": {
      "command": "mcp-data-platform",
      "args": ["--config", "/path/to/platform.yaml"]
    }
  }
}

Claude桌面(使用OAuth远程)

要使用Keycloak身份验证将Claude Desktop连接到远程MCP服务器:

  1. 配置MCP服务器 使用OAuth和上游IdP:
server:
  transport: http
  address: ":8080"

oauth:
  enabled: true
  issuer: "https://mcp.example.com"
  clients:
    - id: "claude-desktop"
      secret: "${CLAUDE_CLIENT_SECRET}"
      redirect_uris:
        - "http://localhost"
        - "http://127.0.0.1"
  upstream:
    issuer: "https://keycloak.example.com/realms/your-realm"
    client_id: "mcp-data-platform"
    client_secret: "${KEYCLOAK_CLIENT_SECRET}"
    redirect_uri: "https://mcp.example.com/oauth/callback"
  1. 在克劳德桌面,使用OAuth凭据添加服务器:

- 统一资源定位符: https://mcp.example.com - 客户端ID: claude-desktop - 客户端密钥:(您配置的密钥)

当您连接时,Claude Desktop将打开您的浏览器进行Keycloak登录,然后自动完成OAuth流程。

OAuth 2.1服务器文档 有关完整的设置说明。

______________________________________________________________________

配置

创建一个 platform.yaml 配置文件:

server:
  name: mcp-data-platform
  transport: stdio

auth:
  oidc:
    enabled: true
    issuer: "https://auth.example.com/realms/platform"
    client_id: "mcp-data-platform"
  api_keys:
    enabled: true
    keys:
      - key: "${API_KEY_ADMIN}"
        name: "admin"
        roles: ["admin"]

personas:
  definitions:
    analyst:
      display_name: "Data Analyst"
      roles: ["analyst"]
      tools:
        allow: ["trino_*", "datahub_*"]
        deny: ["*_delete_*"]
    admin:
      display_name: "Administrator"
      roles: ["admin"]
      tools:
        allow: ["*"]
  default_persona: analyst

semantic:
  provider: datahub
  cache:
    enabled: true
    ttl: 5m

injection:
  trino_semantic_enrichment: true
  datahub_query_enrichment: true
  column_context_filtering: true   # Only enrich columns referenced in SQL (default: true)

audit:
  enabled: true
  log_tool_calls: true
  retention_days: 90

database:
  dsn: "${DATABASE_URL}"

管理资源

resources:
  managed:
    enabled: true             # auto-enabled when database is available
    uri_scheme: "mcp"         # URI prefix (default: "mcp")
    s3_connection: "primary"  # name of S3 toolkit instance for blob storage
    s3_bucket: "resources"    # S3 bucket for uploaded files

环境变量

变量描述默认值
DATABASE_URL审计日志的PostgreSQL连接字符串-
API_KEY_ADMIN管理员API密钥(如果使用API密钥身份验证)-

______________________________________________________________________

核心包

包装描述
pkg/platform主平台立面及配置
pkg/authOIDC和API密钥认证
pkg/oauth具有DCR和PKCE的OAuth 2.1服务器
pkg/persona基于角色的人物角色和工具过滤
pkg/semantic语义元数据提供者抽象
pkg/query查询执行提供程序抽象
pkg/middleware请求/响应中间件链
pkg/mcpcontextMCP会话/进度上下文助手
pkg/registry工具包注册和管理
pkg/audit使用PostgreSQL存储进行审核日志记录
pkg/tuning提示、提示和操作规则
pkg/storageS3兼容存储提供程序抽象
pkg/portalAI生成工件的资产门户类型、存储和S3客户端
pkg/resource托管资源:作用域文件上传、REST API、MCP集成
pkg/toolkits工具包实现(Trino、DataHub、S3、知识、内存、门户、网关)
pkg/admin管理REST API,用于工具、人物角色、配置、审核、知识、内存、连接、网关、OAuth和资源
pkg/client平台客户端实用程序

______________________________________________________________________

图书馆使用情况

该平台可以导入并用作库:

import (
    "github.com/txn2/mcp-data-platform/pkg/platform"
)

// Load configuration
cfg, err := platform.LoadConfig("platform.yaml")
if err != nil {
    log.Fatal(err)
}

// Create platform
p, err := platform.New(platform.WithConfig(cfg))
if err != nil {
    log.Fatal(err)
}
defer p.Close()

// Start the platform
if err := p.Start(ctx); err != nil {
    log.Fatal(err)
}

// Access the MCP server
mcpServer := p.MCPServer()

______________________________________________________________________

发展

# Run tests with race detection
go test -race ./...

# Run linter
golangci-lint run ./...

# Run security scan
gosec ./...

# Run SAST (Semgrep + CodeQL)
make sast

# Build
go build -o mcp-data-platform ./cmd/mcp-data-platform

______________________________________________________________________

文档

完整文档可在 mcp数据平台.tzn2.com.

______________________________________________________________________

贡献

我们欢迎为bug修复、测试和文档做出贡献。请确保:

  1. 所有测试均通过(go test -race ./...)
  2. 代码已格式化(gofmt)
  3. 林特尔传球(golangci-lint run ./...)
  4. 安全扫描通过(gosec ./...)
  5. SAST通过(make sast --Semgrep+CodeQL)

______________________________________________________________________

许可证

Apache许可证2.0

______________________________________________________________________

开源by 克雷格·约翰斯顿,由赞助 Deasil Works,股份有限公司。

目录标签

目录标签

元数据管理GoClaude本地部署AI数据集成语义层增强数据治理跨服务关联语义数据层

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明oauth部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP