mcpField
T
Toronto Open Data MCP Server

Toronto Open Data MCP Server

本地服务
github.com/vduquette数据与分析273 周前更新

关于 Toronto Open Data MCP Server

Toronto Open Data MCP Server 通过 CKAN API 为 LLM Agent 提供多伦多公共数据集访问。它结合数据集发现与 API、CSV 数据获取。

主要功能

  1. 01搜索多伦多公共数据集
  2. 02获取 API 和 CSV 数据
  3. 03筛选、排序并选择 API 字段
  4. 04预览可下载的 CSV 文件
  5. 05查看数据集架构

适用场景

  1. 01查找餐厅检查相关数据
  2. 02按字段或筛选条件查询多伦多数据集
  3. 03预览可下载 CSV 文件中的数据

MCP 相关

向 MCP 客户端提供搜索和查询多伦多开放数据、查看架构以及获取或预览数据集内容的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

多伦多开放数据 MCP 服务

一个通过 CKAN API 直接访问多伦多开放数据的 MCP(Model Context Protocol)服务。该服务可帮助大模型 Agent 高效发现、浏览和查询多伦多的 500 多个公共数据集。

功能

  • 🔍 智能数据集发现:通过智能建议搜索多伦多的 500 多个数据集
  • 🧠 智能数据助手:自动处理 API 和 CSV 数据源
  • 📊 灵活查询:支持对 API 数据集进行筛选、排序和字段选择
  • 📁 CSV 支持:自动获取可下载的 CSV 数据集并提供预览
  • 🤝 适合大模型使用:在需要更多上下文时,可配合网页搜索使用
  • ✅ 稳健的错误处理:提供清晰的错误消息和可执行的建议

安装

选项 1:使用 uvx(推荐用于 MCP)

通过任何 MCP 客户端使用此服务的最简单方式:

brew install uv
# No installation needed! uvx will handle everything
# Just use in your MCP client configuration:
uvx toronto-open-data-mcp-server
选项 2:开发环境安装
  1. 克隆仓库:

    git clone https://github.com/yourusername/toronto-open-data-mcp-server.git
    cd toronto-open-data-mcp-server
    
  2. 安装依赖:

    # Install main dependencies
    pip install -e .
    
    # Install test dependencies (optional)
    pip install -e ".[test]"
    
  3. 运行服务:

    python main.py
    

MCP 客户端配置

使用 uvx(最简单的方法)

将以下内容添加到 MCP 客户端配置中:

{
  "mcpServers": {
    "Toronto Open Data Server": {
      "command": "uvx",
      "args": ["toronto-open-data-mcp-server"]
    }
  }
}
配置文件位置
  • Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json
  • Cursor:查看 Cursor 的 MCP 文档,了解配置文件位置
  • 其他 MCP 客户端:请参阅客户端文档

使用方法

快速开始

该服务提供了多个专为大模型 Agent 设计的工具:

  1. toronto_start_here() - 解释工作流的必要首次调用
  2. toronto_search_datasets(query) - 按关键词查找相关数据集
  3. toronto_smart_data_helper(dataset_id, user_question) - 智能获取数据
  4. toronto_popular_datasets() - 快速访问常用数据集
示例工作流
# 1. Start with guidance
toronto_start_here()

# 2. Search for relevant data
toronto_search_datasets("restaurant inspection")

# 3. Get data intelligently
toronto_smart_data_helper("dinesafe", "recent restaurant inspection failures")

# 4. Advanced filtering (if needed)
toronto_query_dataset_data("dinesafe", 
                           filters={"establishment_status": "Conditional Pass"},
                           sort="inspection_date desc",
                           limit=10)
热门数据集
  • dinesafe - 餐厅检查和健康评分
  • traffic-signals - 交通信号灯位置和时序
  • parks-facilities - 公园、游泳池和休闲设施
  • business-licences - 多伦多的持证企业
  • building-permits - 建筑和翻新许可证

测试

此项目包含全面的测试,涵盖单元测试、集成测试和工作流测试。

前提条件

安装测试依赖:

pip install -e ".[test]"
运行测试
快速测试命令
# Run unit tests only (recommended for development)
python run_tests.py

# Run with verbose output
python run_tests.py --verbose

# Run with coverage report
python run_tests.py --coverage

# Run integration tests (hits real Toronto API)
python run_tests.py --integration

# Run all tests (unit + integration)
python run_tests.py --all

API 参考

核心工具
toronto_start_here() -> str

必要的首次调用,用于提供工作流指南和服务功能说明。

toronto_search_datasets(query: str, limit: int = 10) -> str

按关键词搜索多伦多的数据集。

toronto_smart_data_helper(dataset_id: str, user_question: str, limit: int = 10) -> str

智能助手,可自动处理 API 和 CSV 数据源。

toronto_query_dataset_data(dataset_id: str, filters: Dict = None, fields: List = None, limit: int = 10, sort: str = None) -> str

对 API 数据集进行高级查询,包括筛选和排序。

实用工具
toronto_popular_datasets() -> str

快速访问常用数据集。

toronto_get_dataset_schema(dataset_id: str) -> str

获取 API 数据集的字段名称和类型。

toronto_fetch_csv_data(csv_url: str, max_lines: int = 50) -> str

获取并预览 CSV 文件内容。

架构

  • FastMCP 框架:基于 FastMCP 框架构建,便于定义工具
  • CKAN API:直接集成多伦多基于 CKAN 的开放数据门户
  • 协作式设计:与网页搜索配合使用,而非取而代之
  • 错误恢复:通过智能错误处理提供可执行的建议

贡献

  1. 复刻仓库
  2. 创建功能分支
  3. 为新功能添加测试
  4. 运行测试套件:python run_tests.py --all
  5. 提交拉取请求

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。