Token导航 LogoToken导航TokenDH.com
Government of Canada Open Data MCP Servers logo
运维云端stdio官方级别未说明来源级核验

Government of Canada Open Data MCP Servers

MCP Server

用于访问加拿大开放政府数据的Python模型上下文协议服务器,提供数据集发现和交通基础设施查询功能。

工具数

14

提示词数

0

GitHub Stars

1

资源数

0
数据访问PythonVS CodeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

krunal16-c

提供方

krunal16-c

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

加拿大政府开放数据MCP服务器

基于Python的模型上下文协议(MCP)服务器,用于访问加拿大的开放政府数据。该项目包括两个互补的MCP服务器:

  1. GOV-CA数据集MCP -跨所有加拿大政府开放数据的通用数据集发现、搜索和元数据检索
  2. GOV-CA交通MCP -使用加拿大统计局成本数据查询桥梁、隧道、机场、港口和铁路的专业基础设施

特性

数据集发现(gov_mcp)

  • 搜索范围 250000多个数据集 加拿大开放政府
  • 按主题、组织或管辖区浏览(联邦/省/市)
  • 获取详细的数据集模式并下载URL
  • 跟踪最近的数据集更新

交通基础设施(gov_ca_Transportation)

  • 查询 桥梁条件 使用加拿大统计局所有省份的国家数据
  • 获取 基础设施重置成本 来自加拿大统计局的调查
  • 搜索 机场和港口 在加拿大各地
  • 查询 铁路 基础设施
  • 搜索 隧道 按省份和类型
  • 统一数据方法:使用加拿大统计局核心公共基础设施调查,以实现一致的全国覆盖

快速开始

安装

# Clone and install
cd gov_mcp
pip install -e .

# Or install dependencies directly
pip install -r requirements.txt

运行服务器

# Dataset Discovery MCP
python -m gov_mcp.server

# Transportation Infrastructure MCP  
python -m gov_ca_transportation.server

Docker部署

这两个MCP服务器都可以单独或使用Docker Compose作为Docker容器运行。

使用Docker Compose(推荐)

# Start all servers
docker-compose up

# Start in background (detached mode)
docker-compose up -d

# Start a specific server
docker-compose up gov-ca-dataset
docker-compose up gov-ca-transportation

# View logs
docker-compose logs -f

# Stop all servers
docker-compose down

构建独立的Docker镜像

# Build Dataset Discovery MCP
docker build -f gov_mcp/Dockerfile -t gov-ca-dataset-mcp .

# Build Transportation Infrastructure MCP
docker build -f gov_ca_transportation/Dockerfile -t gov-ca-transportation-mcp .

运行单个容器

# Run Dataset Discovery MCP (port 8002)
docker run -d --name gov-ca-dataset -p 8002:8002 gov-ca-dataset-mcp

# Run Transportation Infrastructure MCP (port 8001)
docker run -d --name gov-ca-transportation -p 8001:8001 gov-ca-transportation-mcp

Docker端点

服务器容器端口主机端口SSE端点
数据集发现80028002http://localhost:8002/sse
交通80018001http://localhost:8001/sse

SSE(服务器发送事件)传输

两个MCP服务器都支持基于HTTP的流媒体的SSE传输。使用以下命令启动任一服务器 --sse 标志和端口参数以启用SSE端点:

# Start Transportation MCP with SSE on port 8001
python -m gov_ca_transportation.server --sse --port 8001

# Start Dataset Discovery MCP with SSE on port 8002
python -m gov_mcp.server --sse --port 8002

当启用SSE时。, http://0.0.0.0:8001/sse).您可以使用web客户端、curl或Python SSE客户端连接到该端点。

连接示例:

  • 卷曲(原始流):
curl -H "Accept: text/event-stream" -N http://localhost:8001/sse
  • JavaScript(事件源):
const es = new EventSource("http://localhost:8001/sse");
es.onmessage = (e) => console.log("SSE message:", e.data);
es.onerror = (err) => console.error("SSE error:", err);
  • Python(httpx-sse):
from httpx_sse import EventSource

with EventSource("http://localhost:8001/sse") as event_source:
  for event in event_source:
    # event is an object with .event, .data, .id
    print(event.data)

笔记:

  • SSE端点通过HTTP为兼容客户端提供MCP事件和结果。
  • 启动时,MCP服务器将打印SSE端点URL和端口 --sse.
  • 基于SSE的传输需要客户端支持服务器发送事件(EventSource),或者使用具有SSE支持的Python/HTTP库,如 httpx-sse.

建筑

gov_mcp/                          # Dataset Discovery MCP
├── server.py                     # MCP server with 7 tools
├── api_client.py                 # Open Government Canada API wrapper
├── http_client.py                # HTTP client with retry logic
└── types.py                      # Type definitions

gov_ca_transportation/            # Transportation Infrastructure MCP
├── server.py                     # MCP server with 7 tools
├── api_client.py                 # Statistics Canada + provincial data fetching
├── http_client.py                # HTTP client
└── types.py                      # Type definitions

数据源

交通MCP使用 加拿大统计局 作为全国覆盖的主要数据来源:

数据类型主要来源覆盖范围
桥梁状况加拿大统计局表34-10-0288-01所有省份/地区
基础设施成本加拿大统计局表34-10-0284-01所有省份/地区
详细的桥梁记录省级开放数据安大略省、魁北克省、新斯科舍省
机场魁北克开放数据,不列颠哥伦比亚省OpenMaps魁北克,不列颠哥伦比亚
铁路国家铁路网国家

可用工具

数据集发现MCP(gov_MCP)-7个工具

工具说明
search_datasets搜索所有250000多个加拿大政府数据集
get_dataset_schema获取包含字段定义和下载URL的完整架构
list_organizations按部门/组织浏览
browse_by_topic按主题领域探索数据集
check_available_mcps检查哪些专用MCP可用
get_activity_stream查看最近更新的数据集
query_datastore直接查询数据(回退模式)

交通基础设施MCP(gov_ca_Transportation)-7个工具

工具说明
query_bridges使用StatCan状态数据按省份搜索桥梁基础设施
analyze_bridge_conditions使用加拿大统计局数据进行总体状况分析
get_infrastructure_costs从加拿大统计局获取按条件计算的重置成本
query_ports_airports搜索机场、港口、码头、直升机场
query_railways搜索铁路线路和车站
query_tunnels搜索隧道基础设施
compare_across_regions比较各省的基础设施

示例用法

搜索数据集

# Search for water datasets in Saskatchewan
result = search_datasets(query="water Saskatchewan", limit=20)
# Returns 103 datasets including water quality monitoring data

分析桥梁状况

# Get bridge conditions for any province using Statistics Canada data
result = analyze_bridge_conditions(region="Saskatchewan")
# Returns: Very Poor: 2.4%, Poor: 16.4%, Fair: 23.7%, Good: 32.4%, Very Good: 10.1%

获取基础设施成本

# Get bridge replacement costs for Ontario
result = get_infrastructure_costs(infrastructure_type="bridge", location="Ontario")
# Returns: Total $81.4B, Priority investment needed: $2.65B (Poor + Very Poor)

查询网桥

# Get bridge data with StatCan condition distribution
result = query_bridges(province="Ontario", limit=100)
# Returns condition summary + detailed records from provincial sources

项目结构

gov_mcp/
├── gov_mcp/                    # Dataset Discovery MCP
│   ├── __init__.py
│   ├── server.py               # MCP server
│   ├── api_client.py           # API wrapper
│   ├── http_client.py          # HTTP client
│   ├── types.py                # Type definitions
│   └── Dockerfile              # Docker build for this server
├── gov_ca_transportation/      # Transportation MCP
│   ├── __init__.py
│   ├── server.py               # MCP server
│   ├── api_client.py           # StatCan + provincial data fetcher
│   ├── http_client.py          # HTTP client
│   ├── types.py                # Type definitions
│   └── Dockerfile              # Docker build for this server
├── tests/                      # Test files
├── documentation/              # Additional docs
├── docker-compose.yml          # Docker Compose for all servers
├── .dockerignore               # Docker ignore file
├── pyproject.toml              # Project config
├── requirements.txt            # Dependencies
└── README.md                   # This file

配置

VS代码MCP设置

添加到您的VS Code settings.json或MCP配置中:

{
  "mcpServers": {
    "gov-ca-dataset": {
      "command": "python",
      "args": ["-m", "gov_mcp.server"],
      "cwd": "/path/to/gov_mcp"
    },
    "gov-ca-transportation": {
      "command": "python", 
      "args": ["-m", "gov_ca_transportation.server"],
      "cwd": "/path/to/gov_mcp"
    }
  }
}

发展

运行测试

pytest tests/

运行验证

python validate.py

关键能力

  • 250000多个数据集 可从加拿大开放政府搜索
  • 加拿大统计局一体化 获取权威的国家基础设施数据
  • 覆盖所有省份 桥梁状况和基础设施成本
  • 真实的基础设施数据 来自省/市开放数据门户
  • 多种数据格式:GeoJSON、CSV、ZIP(StatCan)
  • 条件分析:桥梁状况百分比,按状况分列的重置成本
  • 地理过滤:按省或全国汇总

API来源

来源数据类型
加拿大统计局基础设施成本、桥梁状况(全国)
open.canada.ca联邦数据集
donnees.montreal.ca蒙特利尔大桥记录
data.ontario.ca安大略省桥梁记录
openmaps.gov.bc.ca不列颠哥伦比亚省机场、铁路
data.novascotia.ca新斯科舍省构造
donneesquebec.ca魁北克机场

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!拜托:

  1. 复刻仓库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 提交拉取请求

目录标签

目录标签

数据访问PythonVS Code本地部署政府数据基础设施分析数据集发现Python工具

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP