地理空间数据搜索服务

提供丹佛开放数据目录的地理空间数据集搜索与下载服务,支持多种数据格式和IDE集成。

  • by megan-arellano
  • Ruby
  • 本地部署
  • 更新于
在 GitHub 查看 megan-arellano/mcp-denver-open-data

使用说明

丹佛地理空间数据MCP服务器

一个模型上下文协议(MCP)服务器,提供对丹佛开放数据目录的访问。此服务器允许您直接从IDE中搜索和下载丹佛地理空间数据集中的数据集。这个项目是用GitHub Copilot作为概念验证的vibe编码的。

特性

  • 搜索数据集:使用自然语言查询查找数据集
  • 格式过滤:按数据格式(CSV、GeoJSON、Shapefile等)过滤结果
  • 下载信息:获取数据集的直接下载URL
  • 最近的数据:按修改日期筛选数据集
  • 元数据:访问数据集描述、发布者、主题和关键字

安装

先决条件

  • Ruby 2.7或更高版本
  • Bundler宝石

设置

  1. 克隆存储库:

    git clone <repository-url>
    cd agent
    
  2. 安装依赖项:

    bundle install
    
  3. 测试安装:

    ruby test/denver_geospatial_client_test.rb
    ruby test/utils_test.rb
    

IDE配置

VS代码与GitHub Copilot

将此服务器添加到MCP配置文件中:

地点: ~/Library/Application Support/Code/User/mcp.json (macOS)或其他平台上的类似路径

{
  "servers": {
    "denver-open-data": {
      "command": "ruby",
      "type": "stdio",
      "args": ["/path/to/your/cloned/agent/bin/denver_geospatial_server.rb"]
    }
  }
}

替换 /path/to/your/cloned/agent/ 使用克隆此存储库的实际路径。

替代方案:直接可执行文件(需要chmod)

如果您希望直接执行脚本:

chmod +x bin/denver_geospatial_server.rb

然后使用这个更简单的配置:

{
  "servers": {
    "denver-open-data": {
      "command": "/path/to/your/cloned/agent/bin/denver_geospatial_server.rb",
      "type": "stdio"
    }
  }
}

其他IDE

对于支持MCP服务器的IDE,使用相同的配置模式:

  • 类型: stdio
  • 命令: ruby
  • 论据: ["/path/to/agent/bin/denver_geospatial_server.rb"]

或者直接可执行(之后 chmod +x):

  • 类型: stdio
  • 命令: 完整路径 bin/denver_geospatial_server.rb
  • 论据: 无需

使用示例

配置后,您可以通过IDE的AI助手使用服务器:

搜索数据集

  • “查找丹佛公园的数据集”
  • “以CSV格式搜索犯罪数据”
  • “显示最近的交通数据集”

下载数据集

  • “获取数据集ID abc123的下载信息”
  • “下载GeoJSON格式的公园数据集”

可用工具

search_datasets

搜索丹佛的地理空间数据目录。

参数:

  • query (必填):搜索词(例如“公园”、“交通”、“分区”)
  • format (可选):按格式过滤(“CSV”、“GeoJSON”、“Shapefile”等)
  • updated_within_days (可选):仅显示N天内更新的数据集
  • limit (可选):最大结果(1-100,默认20)

download_dataset

获取特定数据集的下载信息。

参数:

  • dataset_id (必填):搜索结果中的数据集ID
  • format (可选):首选下载格式

支持的数据格式

  • CSV文件
  • GeoJSON
  • 对象符号
  • 形状文件(SHP)
  • Excel(XLSX)
  • 公里
  • 可移植文档格式

发展

运行测试

ruby test/denver_geospatial_client_test.rb
ruby test/utils_test.rb

项目结构

agent/
├── bin/
│   └── denver_geospatial_server.rb    # MCP server executable
├── lib/
│   ├── denver_geospatial_client.rb    # Main client library
│   └── utils.rb                       # Utility functions
├── test/                              # Test suite
├── Gemfile                           # Ruby dependencies
└── README.md                         # This file

故障排除

常见问题

  1. “找不到命令”错误:

    • 如果使用直接可执行文件:确保脚本可执行 chmod +x bin/denver_geospatial_server.rb
    • 如果使用Ruby命令:验证Ruby是否已安装并在PATH中 ruby --version
    • 验证MCP配置中的完整路径
  2. 启动时出现“加载错误”:

    • 跑 bundle install 确保所有依赖项都已安装
    • 检查Ruby版本是否为2.7或更高版本: ruby --version
  3. 没有搜索结果:

    • 尝试更广泛的搜索词
    • 检查丹佛开放数据API是否可访问
    • 验证网络连接

调试模式

要使用调试输出运行服务器,请执行以下操作:

DEBUG=1 ruby bin/denver_geospatial_server.rb

或者,如果使用可执行版本:

DEBUG=1 ./bin/denver_geospatial_server.rb

api信息

此服务器连接到丹佛的开放数据DCAT-AP 2.0.1提要:

  • 基本URL: https://opendata-geospatialdenver.hub.arcgis.com/api/feed/dcat-ap/2.0.1
  • 格式: DCAT-AP(数据目录词汇应用概要)
  • 更新频率: 来自丹佛数据门户的实时

许可证

[在此处添加您的许可证信息]

贡献

[在此处添加贡献指南]