CKAN数据门户智能代理

一个为CKAN开放数据门户提供语义搜索、SQL查询、地理空间分析和高级探索功能的智能代理工具。

  • by mjanez
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mjanez/ckan-mcp-server

使用说明

CKAN MCP服务器

CKAN开放数据门户的智能MCP代理

语义搜索、直接SQL查询、地理空间分析和CKAN目录的高级探索。

[!提示] 推荐测试门户: https://catalogo.datosabiertos.miteco.gob.es/catalogo

主要特点

  • 高级语义搜索 SOLR过滤器
  • 地理空间数据集的自动检测(SHP, GeoJSON, WMS/WFS等等)
  • SQL查询 数据存储 资源
  • 门户模式和功能的自动检查
  • Markdown表格格式的数据预览
  • 智能缓存和自动重试,实现最大稳定性
  • 全力支持MCP资源(ckan://...)

快速安装

git clone https://github.com/mjanez/ckan-mcp-server.git
cd ckan-mcp-server
uv venv
source .venv/bin/activate    # Windows: .venv\Scripts\activate
uv pip install -e .

可选配置(.env)

CKAN_URL=https://catalogo.datosabiertos.miteco.gob.es/catalogo
CKAN_API_KEY=                  # Only if you need authenticated actions
LOG_LEVEL=INFO

用法

开发模式(带Web检查器)

uv run fastmcp dev src/server.py

MCP检查器将在浏览器中自动打开以测试所有工具。

生产模式

uv run fastmcp run src/server.py

Claude桌面集成

将一个或多个服务器添加到Claude Desktop配置文件中:

{
  "mcpServers": {
    "ckan-miteco": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/ckan-mcp-server", "run", "fastmcp", "run", "src/server.py"],
      "env": { "CKAN_URL": "https://catalogo.datosabiertos.miteco.gob.es/catalogo" }
    },
    "ckan-datosgob": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/ckan-mcp-server", "run", "fastmcp", "run", "src/server.py"],
      "env": { "CKAN_URL": "https://datos.gob.es" }
    }
  }
}

配置路径:

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

可用工具

工具 说明
search_datasets 使用过滤器进行高级搜索(格式、组织、仅地理空间等)
get_datasets 完整的数据集信息
query_datastore 表格式资源上的SQL查询
list_organizations 具有数据集计数的组织列表
get_capabilities 检测活动扩展(DataStore、Spatial等)

MCP资源

  • ckan://dataset/{id} → 完整数据集JSON
  • ckan://dataset/{id}/schema → 数据存储架构
  • ckan://info → 一般门户信息

Claude使用示例

  • What datasets are available regarding air quality?
  • Search only for geospatial cadastre datasets
  • From resource 12345-abcd, execute: SELECT * FROM table WHERE year > 2020 LIMIT 20
  • Which organizations publish the most datasets?

项目

关键技术:

  • FastMCP v2.13+
  • ckanapi v4.7+
  • Pydantic v2
  • gettext
  • uv作为包管理器

国际化

该项目使用 gettext:

# Configure language (default is Spanish)
export CKAN_MCP_LANGUAGE=en  # English
export CKAN_MCP_LANGUAGE=es  # Spanish

# Compile translations (only if you modify .po files)
python src/i18n/compile.py

看 src/i18n/README.md 了解更多详情。

路线图

  • 通过边界框进行地理空间搜索
  • 静态地图预览
  • 全面的DCAT-AP支持和SPARQL查询
  • DataStore资源的自动统计
  • Docker官方镜像
  • 测试+CI/CD

许可证

麻省理工学院© mjanez - 它 许可证

致谢

推荐的CKAN测试门户


<div align=“center”> <strong>觉得这个有用吗?</strong>→ <a href=“https://github.com/mjanez/ckan-mcp-server“>留下一个⭐ 在GitHub上!一 </div>