MCP 数据平台服务端
- 项目简介
- 该仓库实现了一个完整的 MCP 服务器端,用 Go 语言编写,支持通过 HTTP(S)/STDIO 等传输协议与客户端进行 JSON-RPC 异步通信,核心能力包括资源与工具管理、提示模板渲染、会话管理、权限控制和审计等。
- 服务器在后端对接 DataHub、Trino/S3 等组件,提供跨服务的语义增强(Cross-Injection)、数据可访问性判断和安全特性,便于将数据资产与 LLM 应用结合起来。
- 主要功能点
- MCP 基本通信与协议处理:提供标准化的 MCP 请求/响应处理,支持多传输通道(stdio、http/SSE、WebSocket 等)。
- 资源与工具管理:提供资源与工具的注册、管理、调用,以及工具执行的上下文注入和权限控制。
- Prompt/模板定义与渲染:支撑 Prompts、Hints、Templates 等内容的管理与渲染,为 LLM 提供更丰富的交互上下文。
- 语义增强(Semantic Enrichment):通过 DataHub、Trino、S3 等实现数据结果的语义上下文注入,例如所有查询结果附加元数据( Owners、Glossary、Quality 等)。
- 安全与认证:内置 OAuth/OIDC、API Key、Bearer Token 等多种认证机制,支持授权策略、审计和权限分配。
- 中间件与扩展性:提供可扩展的中间件框架,便于接入自定义鉴权、速率限制、日志等中间件。
- Admin Portal 与 Portal API:内置管理界面与统一 Portal API,便于治理、审计、知识管理和资产管理。
- 测试与集成:包含大量集成测试与 E2E 测试用例,覆盖安全、路由、权限、知识管理等关键功能。
- 安装与运行
- 可以直接通过 go install 安装命令行工具,并在 Standalone/HTTP 传输下启动。
- 提供从源码编译、从配置文件启动、以及带 OAuth/OIDC 的安全场景配置示例。
- 服务器配置(MCP 客户端连接需求)
- MCP 服务器是给 MCP 客户端使用的。MCP 客户端要连接服务器,至少需要指定服务器的启动信息(server name、command、args)以建立连接。下面给出一个配置示例描述,包含服务器名称、启动命令与参数等信息,便于客户端理解要如何启动并连接该 MCP 服务器。
- 基本使用方法
- 启动方式:Standalone Standalone(stdio)方式或 HTTP 传输方式启动服务器,具体命令在文档中提供。
- 客户端连接:通过 MCP 客户端的启动命令连接到 MCP 服务器(传输方式按实际部署选择,推荐使用 HTTP/HTTPS 传输以便浏览器或大语言模型客户端接入)。
- 配置灵活性:可以通过 YAML/JSON 配置对认证、语义注入、工作流和审计进行微调,满足企业级安全与治理需求。