瑞士公共交通MCP服务器

一个提供实时访问瑞士公共交通网络的模型上下文协议(MCP)服务器,支持站点搜索、班次查询和路线规划。

  • by pierrick1213
  • C#
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 pierrick1213/swiss-transport-mcp

使用说明

瑞士运输MCP服务器🇨🇭🚉

A. 模型上下文协议(MCP) 该服务器提供对瑞士公共交通网络的实时访问。该服务器使人工智能模型(如Claude、ChatGPT等)能够搜索车站、查询出发地和查找瑞士各地的路线连接。

数据由出色的OpenData.ch API提供支持: https://transport.opendata.ch/docs.html

🛠️ 功能(工具)

此MCP服务器向您的AI代理公开了三个主要工具:

  • GetLocations:搜索位置、车站、兴趣点(POI)或地址(例如“巴塞尔”、“洛桑”)。返回坐标和距离。
  • GetStationboard:获取从特定车站(例如“Aarau”)出发的下一个出发转机。显示目的地、线路、出发时间、站台和当前延误。
  • GetConnections:寻找从a点到B点的旅程(例如,从“日内瓦”到“苏黎世”)。返回旅程的持续时间、转移次数和详细步骤。

🚀 如何使用此MCP服务器

您可以使用 直接公共服务器,或通过自行运行此服务器 码头工人 或本地使用 .NET.

选项1:使用公共服务器(最简单)

你不需要安装任何东西!服务器已托管,可供公众使用。 只需将以下配置添加到MCP客户端配置文件中(例如。, claude_desktop_config.json):

{
  "mcpServers": {
    "swiss-transport": {
      "type": "http",
      "url": "https://swiss-transport.pa-nas.ch/mcp"
    }
  }
}

选项2:使用Docker(自托管)

自托管此服务器的最简单方法是运行Docker Hub上提供的官方Docker镜像: 👉 https://hub.docker.com/repository/docker/pickcool/swiss-transport-mcp

使用Docker启动服务器:

docker run -d -p 5263:8080 --name swiss-transport-mcp pickcool/swiss-transport-mcp:latest

然后,配置您的MCP客户端以通过HTTP连接到它:

{
  "mcpServers": {
    "swiss-transport": {
      "type": "http",
      "url": "http://localhost:5263/mcp"
    }
  }
}

选项3:使用在本地运行。网

如果你更喜欢在本地运行它或想为代码做出贡献,你需要 .NET 10.0 SDK 安装。

1.通过HTTP本地测试

您可以正常运行API,使用提供的 .http 文件:

git clone https://github.com/pierrick1213/swiss-transport-mcp.git
cd swiss-transport-mcp/swiss-transport-mcp
dotnet run

跑步后,您可以使用 swiss-transport-mcp.http Visual Studio或VS Code中的文件来发送测试请求。

2.在MCP客户端中配置

确保您的服务器正在运行(dotnet run),然后将您的AI客户端配置为通过HTTP连接。将以下内容添加到MCP配置文件中:

{
  "mcpServers": {
    "swiss-transport": {
      "type": "http",
      "url": "http://localhost:5263/mcp"
    }
  }
}

🧠 引擎盖下的工作原理

此服务器是使用 ASP。NET核心10.0 和那个 ModelContextProtocol.AspNetCore 包裹。 它运行过 超文本传输协议,这使得通过标准HTTP客户端进行集成、扩展和测试变得容易。

当您的AI模型决定需要训练信息时,MCP客户端通过HTTP POST向此服务器发送JSON-RPC请求。服务器查询 transport.opendata.ch API,专门清理和格式化JSON响应,以便LLM易于理解,并在HTTP响应中返回结果。

🤝 贡献

欢迎投稿!请随时打开问题或提交Pull Request。

  1. 分叉项目
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支机构(git push origin feature/AmazingFeature)
  5. 打开拉取请求