使用说明

项目简介

本项目 'mcp-opendata' 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为LLM客户端提供新北市交通局开放数据 (OpenData) 的便捷访问接口。通过本服务,LLM可以轻松查询和利用新北市的实时交通信息,包括公交线路、站点、到站时间,以及YouBike站点、停车场、交通路况等数据,从而为用户提供更智能、更贴心的交通出行助手服务。

主要功能点

  • 资源 (Resources) 访问: 提供新北市交通局开放数据API的封装,包括:
    • 公交信息: 线路查询、站点查询、到站时间、实时位置等。
    • 自行车信息: YouBike站点查询、可借车辆查询、附近站点查询、自行车架、自行车道等。
    • 停车场信息: 停车场列表、详细信息、空位查询、附近停车场、收费标准等。
    • 交通状况: 实时路况、道路施工、交通摄像头、交通事件等。
    • 其他交通服务: 出租车服务、拖吊保管场、交通影响评估等。
  • 工具 (Tools) 注册: 注册名为 'ntpc-query' 的工具,允许LLM客户端通过自然语言查询新北市交通信息。
  • Prompt 模板: 内置预定义的Prompt模板,支持用户以自然语言提问,例如“查询307公车的路线”,“板桥区有哪些停车场空位”等。
  • MCP 服务集成: 基于 'fastmcp' 框架构建,实现了MCP服务器的核心功能,可以通过 JSON-RPC 协议与客户端通信。

安装步骤

本仓库提供了多种安装方式,推荐使用 'uv' 或 'mcp' 进行安装,以下分别介绍:

1. 使用 uv (推荐)

如果您的系统尚未安装 'uv',请先安装 'uv',然后按照以下步骤操作:

# 创建虚拟环境
uv venv

# 启动虚拟环境
source .venv/bin/activate  # Linux/macOS
# 或
.venv\Scripts\activate     # Windows

# 安装依赖
uv pip install -e .

2. 使用传统 pip

如果您习惯使用 'pip',可以按照以下步骤操作:

# 创建虚拟环境
python -m venv .venv

# 启动虚拟环境
source .venv/bin/activate  # Linux/macOS
# 或
.venv\Scripts\activate     # Windows

# 安装依赖
pip install -e .

3. 使用 MCP 安装

如果您已经安装了 MCP 客户端环境,可以直接使用 MCP 命令安装本服务:

mcp install ntpc_opendata_tool/server.py --name "新北市交通 OpenData 查詢" --with requests --with python-dotenv --with uvicorn --with typer --with pandas

服务器配置

为了让 MCP 客户端能够连接到本 MCP 服务器,您需要提供服务器的启动配置信息。以下是基于仓库信息生成的 MCP 服务器配置,请复制以下JSON配置信息到您的 MCP 客户端的服务器配置中:

{
  "server name": "新北市交通 OpenData 查詢",
  "command": "mcp",
  "args": [
    "run",
    "ntpc_opendata_tool/server.py"
  ],
  "description": "提供新北市交通局开放数据查询服务,包括公交、自行车、停车场、路况等信息。",
  "transport": "stdio"
}

配置参数说明:

  • 'server name': 服务器在 MCP 客户端中显示的名称,可以自定义修改。
  • 'command': 启动服务器的命令,这里使用 'mcp' 命令,前提是您已安装并配置好 MCP 客户端环境。
  • 'args': 传递给 'mcp run' 命令的参数,指定了服务器入口文件 'ntpc_opendata_tool/server.py'。
  • 'description': 对服务器功能的简要描述,方便在 MCP 客户端中识别和选择。
  • 'transport': 指定客户端与服务器通信的传输协议,这里使用 'stdio',即标准输入输出流。

请注意:

  • 确保您的 MCP 客户端环境已正确安装并配置,能够识别 'mcp' 命令。
  • 如果您不使用 'mcp install' 安装,而是使用 'uv' 或 'pip' 安装,您需要自行启动 'ntpc_opendata_tool/server.py' 文件。例如,可以使用 'uvicorn ntpc_opendata_tool.server:mcp --reload' 命令启动服务器,并将 MCP 客户端的 'command' 和 'args' 配置相应修改为 '"command": "uvicorn"', '"args": ["ntpc_opendata_tool.server:mcp", "--reload"]'。

基本使用方法

成功配置并启动 MCP 服务器后,您可以在 MCP 客户端中通过自然语言查询新北市交通信息。例如:

  • 在 Claude 等支持 MCP 协议的LLM客户端中,您可以提问:

    • "新北市307公车的路线信息"
    • "307公车什么时候会到捷运板桥站?"
    • "板桥区有哪些 YouBike 站点?"
    • "板桥区目前的交通状况如何?"
  • LLM客户端会将您的自然语言查询转换为 MCP 请求发送到本服务器,服务器解析请求并调用相应的API获取数据,最终将结果返回给LLM客户端,并以自然语言呈现给用户。

  • 您也可以参考仓库 'README.md' 文件中 “作為 MCP 服務使用” 章节的示例,了解更多查询方式。

信息

分类

网页与API