使用说明
项目简介
本项目 '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