公共交通行程规划服务

通过Model Context Protocol暴露Entur的行程规划API,支持多模式旅程规划、实时出发信息查询、附近站点查找及服务警报获取,适用于挪威公共交通系统。

  • by simeneide
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 simeneide/entur_mcp

使用说明

Entur MCP服务器

entur-mcp 是一个 FastMCP 通过以下方式公开Entur的Journey Planner API的服务器 模型上下文协议。它允许助理和自动化系统计划行程、检查出发情况,并列出挪威公共交通的服务警报。

出于演示目的,它在以下公共端点上运行:

https://eide-entur.fastmcp.app/mcp

特性

  • plan_trip:两地之间的多式联运规划。
  • stop_departures:实时出发前往停靠地点。
  • nearest_places:附近的车站、码头和交通设施。
  • service_alerts:主动中断,可按停止和严重程度进行过滤。

安装

使用 紫外线:

uv tool install entur-mcp

或者:

pipx install entur-mcp
# or
pip install entur-mcp

用法

FastMCP CLI(推荐)

该项目附带了一个名为的FastMCP服务器对象 server.使用FastMCP CLI运行它(可选通过 uv 了解项目环境):

# From the repository root
uv run fastmcp run entur_mcp/server.py

# Explicit object selection (optional)
uv run fastmcp run entur_mcp/server.py:server

# Streamable HTTP transport for remote agents
uv run fastmcp run entur_mcp/server.py --transport http --host 0.0.0.0 --port 8000
# -> exposes https://localhost:8000/mcp by default

便利入口点

仍然提供stdio包装器以实现兼容性:

entur-mcp          # via console script
# or
python -m entur_mcp

服务器自动向MCP客户端注册其工具和模式。

配置

Entur要求呼叫者使用描述性的客户端名称来标识自己。在启动服务器之前配置以下环境变量:

  • ENTUR_CLIENT_NAME: 必需例如。 MyApp/1.0 (contact@example.com).
  • ENTUR_CLIENT_ID:可选。如果您有企业颁发的API密钥,请提供该密钥。
  • ENTUR_USER_AGENT:可选。覆盖HTTP User-Agent.默认为 ENTUR_CLIENT_NAME.

如果省略变量,服务器将回退到占位符值,但您应该始终提供自己的联系方式,以遵守Entur的使用指南。

发展

uv venv  # or python -m venv .venv
source .venv/bin/activate
pip install -e .[test]
pytest

测试套件使用 respx 模拟Entur的HTTP API。测试期间不进行网络呼叫。

FastMCP云部署

FastMCP Cloud使您的服务器在公共HTTPS URL上可用。分三步部署:

  1. 将此存储库推送到GitHub(公共或私有)。
  2. 登录到…… fastmcp.cloud 使用您的GitHub帐户并创建一个新项目。
  3. 将项目指向您的仓库并使用 entur_mcp/server.py:server 作为入口点。

FastMCP Cloud从以下位置安装依赖项 pyproject.toml,构建项目,并返回一个URL,例如 https://<project>.fastmcp.app/mcp。与MCP兼容代理共享该端点。(部署上线后,请在此处替换URL。)

许可证

根据MIT许可证分发。看 LICENSE 了解详情。