Token导航 LogoToken导航TokenDH.com
Ns Trains logo
AI代理stdio官方级别未说明来源级核验

Ns Trains

MCP Server

一个基于模型上下文协议(MCP)的服务器,用于AI助手与荷兰铁路(NS)API交互,提供路线规划、票价查询和实时出发信息。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
PythonClaudeAI代理Claude DesktopClaude

安装说明

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

作者 / 组织

eze-godoy

提供方

eze-godoy

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

uv run pre-commit install

详细介绍

荷兰NS列车的MCP服务器

mcp名称:ns桥

![Python 3.11+](https://www.python.org/downloads/) ![License: MIT](https://opensource.org/licenses/MIT) ![Ruff](https://github.com/astral-sh/ruff) ![Checked with mypy](https://mypy-lang.org/) ![Pre-commit](https://github.com/pre-commit/pre-commit) ![Tests: pytest](https://github.com/pytest-dev/pytest) ](https://hub.docker.com/r/ezegodoy26/mcp-server-ns-bridge)

A. 模型上下文协议(MCP) 服务器,使人工智能助手能够与荷兰铁路(NS)API交互,以进行路线规划、定价和实时发车信息。

与任何MCP客户端兼容,包括Claude Desktop、自定义实现和AI代理框架。

特性

MCP工具

  1. 搜索_状态 -按名称或国家查找火车站

- 按车站名称搜索 - 按国家代码筛选 - 返回行程规划所需的车站代码

  1. 搜索条 -规划车站之间的路线

- 通过连接获得多种旅行选择 - 查看详细的逐段行程信息 - 查看带有折扣选项的定价 - 选择旅行舱位(1级或2级) - 按出发或到达时间搜索

  1. 获取_公寓 -查看实时出发板

- 查看任何车站即将出发的航班 - 跟踪延迟和取消 - 监控平台变化

MCP资源

  • station://{code} -获取特定电台的详细信息

安装

先决条件

- 码头工人 (最简单-无需安装Python) - 紫外线 (建议开发) - (传统Python工作流程)

选项1:Docker(最简单)

先决条件:Docker桌面或Docker引擎

# Pull the pre-built image from Docker Hub
docker pull ezegodoy26/mcp-server-ns-bridge:latest

然后配置MCP客户端(请参阅 用法 以下部分为配置示例)。

有关Docker的详细使用、故障排除和高级选项,请参阅 医生.md.

选项2:使用紫外线设置(建议用于开发)

# Clone the repository
cd mcp-server-ns-bridge

# Install dependencies
uv sync --all-extras

# Set up pre-commit hooks (recommended for development)
uv run pre-commit install

# Copy environment template
cp .env.example .env

# Edit .env and add your NS API key
# NS_API_KEY=your_actual_api_key_here

选项3:使用pip进行设置

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -e ".[dev]"

# Set up environment
cp .env.example .env
# Edit .env and add your NS API key

获取NS API密钥

  1. 首选 NS API门户网站
  2. 创建账户
  3. 订阅以下API:

- 旅行信息API(Travel Information API) - NS-APP站点API

  1. 复制您的订阅密钥
  2. 将其添加到您的 .env 文件为 NS_API_KEY

用法

运行MCP服务器

开发模式(带检查员)

export PATH="$HOME/.local/bin:$PATH"
uv run mcp dev src/ns_bridge/server.py

这将打开MCP检查器进行交互式测试。

配置MCP客户端

此服务器可与任何兼容MCP的客户端配合使用。下面是常见客户端的配置示例。

克劳德桌面版

自动安装:

uv run mcp install src/ns_bridge/server.py

这将自动配置Claude Desktop以使用您的MCP服务器。

手动配置:

添加到您的Claude Desktop配置文件中(位置因操作系统而异):

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%\Claude\claude_desktop_config.json

Linux: ~/.config/Claude/claude_desktop_config.json

对于Docker安装:

{
  "mcpServers": {
    "ns-bridge": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--init",
        "-e",
        "NS_API_KEY",
        "ezegodoy26/mcp-server-ns-bridge:latest"
      ],
      "env": {
        "NS_API_KEY": "your_api_key_here"
      }
    }
  }
}
备注:The -e NS_API_KEYargs array命令Docker从主机传递环境变量(由 env 部分)放入容器中。如果没有这一点,API密钥将无法在Docker中使用。

对于紫外线安装:

{
  "mcpServers": {
    "ns-bridge": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/mcp-server-ns-bridge",
        "run",
        "src/ns_bridge/server.py"
      ],
      "env": {
        "NS_API_KEY": "your_api_key_here"
      }
    }
  }
}

更新配置后,重新启动MCP客户端以加载服务器。

其他MCP客户端

对于其他兼容MCP的客户端(自定义实现、AI代理框架等),请参阅客户端的stdio服务器配置文档。服务器通过stdin/stdout接受标准MCP协议消息。

查询示例

配置后,您可以询问您的AI助手:

  • “下个小时有哪些火车从乌得勒支中央火车站出发?”
  • “明天早上9点给我找一趟从阿姆斯特丹到鹿特丹的火车”
  • “从海牙到格罗宁根最快的路线是什么?”
  • “从埃因霍温到马斯特里赫特的头等舱票价是多少?”
  • “给我看看德国边境附近的车站”

发展

项目结构

mcp-server-ns-bridge/
├── src/
│   └── ns_bridge/
│       ├── __init__.py          # Package initialization
│       ├── server.py            # MCP server implementation
│       ├── ns_api_client.py     # NS API wrapper
│       ├── models.py            # Data models (Pydantic)
│       └── config.py            # Configuration management
├── tests/                       # Test suite
├── pyproject.toml               # Project configuration & dependencies
├── .env.example                 # Environment template
└── README.md                    # This file

开发者工具

该项目使用现代Python开发工具来提高代码质量:

预提交钩子

预提交钩子在每次提交之前自动检查您的代码:

  • 一般检查:尾随空格、EOF修复、YAML/TOML验证
  • 拉夫:快速换行和代码格式化
  • MyPy 的:静态类型检查
  • 匪徒:安全漏洞扫描
# Install pre-commit hooks (one-time setup)
uv run pre-commit install

# Run manually on all files
uv run pre-commit run --all-files

# Hooks will automatically run on git commit

代码格式化和换行

您还可以手动运行工具:

# Format code with Ruff
uv run ruff format src/ tests/

# Lint and auto-fix
uv run ruff check --fix src/ tests/

# Type checking
uv run mypy src/

# Security scanning
uv run bandit -r src/

开发者_TOOLS.md 了解每个工具的详细文档以及我们使用它们的原因。

测试

  • pytest:测试框架
  • pytest异步:异步测试支持
  • 新冠肺炎:代码覆盖率
  • pytest httpx:API测试的HTTP模拟

运行测试:

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov

# Run specific test file
uv run pytest tests/test_models.py

# Run with verbose output
uv run pytest -v

虚拟环境说明

对, uv 与虚拟环境兼容! uv 自动创建和管理 .venv 项目中的目录。如果需要,您可以手动激活它:

source .venv/bin/activate  # macOS/Linux
.venv\Scripts\activate     # Windows

然而, uv run 自动使用虚拟环境,因此对于大多数任务来说,激活是可选的。

API文档

使用的NS API端点

  1. API站 (/nsapp-stations/v2)

- 搜索并列出火车站 - 按国家筛选

  1. 行程API (/reisinformatie-api/api/v3/trips)

- 带连接的路线规划 - 定价信息 - 对中转站的支持

  1. 离开API (/reisinformatie-api/api/v2/departures)

- 实时出发信息 - 延迟和取消跟踪

车站代码

常用站代码:

  • ut 乌得勒支 中央
  • asd 阿姆斯特丹 中央
  • rtd 鹿特丹 中央
  • gvc 海牙中央
  • ehv 埃因霍温 中央
  • nm -奈梅亨
  • gn -格罗宁根

使用 search_stations 查找更多电台代码的工具。

贡献

欢迎提出建议和改进!

开发工作流程

  1. 创建要素分支
  2. 进行更改
  3. 运行测试套件: uv run pytest
  4. 预提交钩子将在提交时自动运行(或手动运行: uv run pre-commit run)
  5. 提交拉取请求

备注:预提交挂钩自动处理格式化、linting、类型检查和安全扫描。

许可证

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

致谢

路线图

计划的未来增强功能:

  • \[\]添加对中断的支持API
  • \[\]包括车站设施信息
  • \[\]添加行程详细信息(拥挤预测)
  • \[\]支持国际航线
  • \[\]缓存频繁访问的数据
  • \[\]遵守API配额的速率限制

目录标签

目录标签

PythonClaudeAI代理铁路信息查询本地部署路线规划实时交通数据AI助手集成公共交通API

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdioapi-key部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP