CKAN MCP 服务器实现
使用说明(Markdown 格式)
项目概览
- 这是一个完整的 MCP 服务器实现,围绕 CKAN 开放数据门户提供资源、工具、提示模板等能力,并通过 MCP 的 JSON-RPC 协议与客户端交互。
- 服务器支持多种传输方式(标准输入输出 Stdio、HTTP 传输等),方便在本地、边缘或云端环境部署。
主要功能点
- 资源与模板
- 直接通过 CKAN API 读取数据集、资源、组织等元数据的资源模板。
- 提供数据访问的资源模板,如数据集、资源、组织等,便于 MCP 客户端以统一方式获取数据。
- 工具集合
- 提供多种 CKAN 相关工具,如数据集搜索、数据集详情、数据集的 DataStore 查询、组织/分组/标签查询等。
- 工具输出支持 Markdown 和 JSON 两种格式,便于人类阅读与机器处理。
- Prompts 与对话
- 集成 Guided Prompts(主题、组织、格式、最近数据、数据集分析等),帮助 LLM 客户端组织交互流程。
- MCP 协议实现
- 通过 MCP 服务端实现对客户端的请求处理、能力声明和会话管理,符合 JSON-RPC 2.0 风格。
- 支持多传输协议(stdio、http),并提供相应的入口与路由。
- 端到端运行能力
- 提供本地构建、打包、运行的完整流程,支持在本地开发环境和云端部署环境中运行。
- 测试与兼容性
- 包含全面单元测试与整合测试,覆盖 HTTP/CKAN API 交互、URL 生成、查询和格式化输出等。
安装步骤
- 下载源码并进入项目目录。
- 安装依赖并打包构建(通常使用 npm install 与 npm run build)。
- 运行服务器:
- 默认使用 stdio 传输(通过命令行直接与 MCP 客户端交互)。
- 如需通过 HTTP 进行交互,请设置环境变量 TRANSPORT=http,必要时配置 PORT,例如 3000。
服务器配置示例(MCP 客户端需配置的连接信息,JSON 文本形式) { "name": "ckan-mcp-server", "command": "npx", "args": ["@aborruso/ckan-mcp-server@latest"] } 说明:
- name:服务器在 MCP 客户端配置中的标识名,建议与仓库中 server 名称保持一致。
- command/args:启动服务器所需的命令与参数。若本地已全局安装,可以使用命令名替换为全局可执行名,如 ckan-mcp-server。
- 如要使用 HTTP 传输,请改为将 TRANSPORT 设置为 http(或在客户端配置中指定服务器 URL,例如 https://your-host/mcp),并按需设置端口。
基本使用方法
- 本地开发与测试
- 安装依赖、构建、启动,默认通过 stdio 与客户端交互。
- 使用 MCP Inspector 等工具,浏览并测试注册的工具、资源和 Prompts,验证 JSON-RPC 请求与响应的正确性。
- 远程/边缘部署
- 将服务器部署到边缘节点或云端,选择 HTTP 传输,客户端通过 HTTP JSON-RPC 与 MCP 服务器通信。
- 利用 Prompts 和 Tools 组合,构建 AI 驱动的 CKAN 数据发现、资源访问和分析工作流。
主要注意点
- 服务器实现覆盖了资源、工具、Prompts 的完整 MCP 功能,且包含多传输通道的实现,符合 MCP 服务器的核心职责。
- 代码结构清晰,具备对 CKAN API 的全面封装和对外暴露的 MCP 接口,非单纯示例。
推荐场景
- 需要将 CKAN 开放数据门户作为 LLM 的上下文与功能提供方的后端服务场景。
- 需要通过 JSON-RPC 与 LLM 客户端协同完成数据检索、资源访问、以及基于模板的对话生成。
关键词 CKAN, 开放数据, 数据检索, 数据资源, Prompts
分类ID 5