Token导航 LogoToken导航TokenDH.com
Travel MCP (Ppiova) logo
运维云端未说明官方级别未说明来源级核验

Travel MCP (Ppiova)

MCP Server

一个基于.NET的模型上下文协议(MCP)服务器,提供航班和酒店数据查询服务。

工具数

0

提示词数

0

GitHub Stars

3

资源数

0
C#VS Code云端部署VS Code

安装说明

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

作者 / 组织

ppiova

提供方

ppiova

最后核验

2026/5/17 20:34

快速接入

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

详细介绍

旅行MCP服务器

使用构建的模型上下文协议(MCP)服务器。NET,提供包括航班和酒店数据在内的旅行信息。

特性

  • GetFlights:搜索可用航班,可选择按目的地过滤(IATA代码)
  • Gethotels:按城市搜索可用酒店,可选择过滤
  • 使用不区分大小写的过滤 Contains
  • 从嵌入式JSON文件加载的数据
  • 带有C#记录的强类型
  • 基于stdio的自定义MCP协议实现(JSON-RPC 2.0)
  • 零外部依赖(System.Text.Json除外)

技术

  • .NET 8.0:具有最少API的现代C#
  • 系统。文本。JSON:快速JSON序列化
  • MCP协议:通过stdio自定义实现模型上下文协议
  • JSON-RPC 2.0:客户端-服务器通信的标准协议

先决条件

  • .NET 8.0 SDK或更高版本
  • 带有GitHub Copilot扩展的Visual Studio代码

设置

  1. 克隆或导航到项目目录
   cd TravelMCP
  1. 恢复依赖关系
   dotnet restore
  1. 构建项目
   dotnet build

Visual Studio代码配置

在VS代码中配置MCP

该项目包括一个预配置的 .vscode/mcp.json 文件。要使用它:

  1. 在VS Code中打开项目:
   code .
  1. 重新加载VS代码:Ctrl+Shift+P Developer: Reload Window
  1. 打开副驾驶聊天:Ctrl+Alt+I
  1. 验证工具是否可用: 类型 @workspace /tools 在聊天

使用GitHub Copilot的MCP服务器

配置后,您可以通过VS Code中的GitHub Copilot Chat与服务器交互:

示例提示:

  • “显示所有可用航班”
  • “查找飞往拉斯维加斯的航班”
  • “旧金山有哪些酒店?”
  • “显示所有酒店”

MCP服务器将通过集成工具提供数据。

可用工具

GetFlights

使用可选的目的地过滤搜索可用航班。

参数:

  • to (可选):IATA目的地代码(例如,“LAS”、“SFO”、“EZE”)

Copilot中的示例用法:

Show me flights to Las Vegas
Find flights with destination SFO

Gethotels

使用可选的城市过滤搜索可用的酒店。

参数:

  • city (可选):城市名称(如“拉斯维加斯”、“旧金山”、“布宜诺斯艾利斯”)

Copilot中的示例用法:

Show me hotels in San Francisco
Find hotels in Buenos Aires

数据格式

飞行数据

{
  "flight_number": "AA1456",
  "airline": "American Airlines",
  "from": "Miami (MIA)",
  "to": "Las Vegas (LAS)",
  "departure_time": "2025-11-05T09:45:00",
  "arrival_time": "2025-11-05T12:10:00",
  "duration": "5h 25m",
  "price_usd": 289.99
}

酒店数据

{
  "city": "Las Vegas",
  "hotel_name": "The Venetian Resort",
  "rating": 4.8,
  "price_per_night_usd": 289.00,
  "address": "3355 S Las Vegas Blvd, Las Vegas, NV 89109, USA",
  "amenities": ["Pool", "Casino", "Spa", "Free WiFi"]
}

项目结构

TravelMCP/
 Data/
    flights.json      # Sample flight data
    hotels.json       # Sample hotel data
 Mcp/
    McpServer.cs      # MCP server implementation
    Protocol.cs       # JSON-RPC protocol types
 Models/
    Flight.cs         # Flight data model
    Hotel.cs          # Hotel data model
 Program.cs            # Application entry point
 TravelServer.cs       # Business logic and tool handlers
 TravelMCP.csproj      # Project configuration

测试

使用PowerShell脚本进行测试

.\test-server.ps1

这将向服务器发送示例MCP请求并显示响应。

使用自动化测试进行测试

cd Tests
dotnet run

这将运行自动测试,验证:

  • 检索所有航班
  • 按IATA代码筛选
  • 不区分大小写的部分搜索
  • 按城市筛选酒店

关键实施细节

  1. 不可变记录:使用C# record 数据模型的类型
  2. 强类型:所有数据都是JSON反序列化的强类型数据
  3. 灵活的过滤:用途 Contains 用于部分搜索
  4. 不区分大小写:不区分大小写的搜索
  5. XML文档:IntelliSense的代码注释
  6. 完整的MCP协议:无外部依赖的自定义实现
  7. 安全的空处理:具有默认值的可选参数
  8. JSON 模式:工具的输入模式定义
  9. 错误处理:根据JSON-RPC 2.0正确的错误响应

未来改进

功能

  • 添加日期验证以过滤未来的航班
  • 按价格、评级、持续时间进行排序
  • 添加组合 GetTravelPackage(destination) 搜索航班+酒店的工具
  • 附加过滤器:航空公司、价格范围、特定设施
  • 增加座位/房间可用性
  • 实施预订(模拟)

技术性的

  • 连接到真实的航班/酒店API
  • 具有时间无效性的数据缓存
  • 结构化日志记录(Serilog、NLog)
  • 使用xUnit/NUnit进行单元测试
  • MCP协议集成测试
  • 度量和遥测
  • 根据官方列表验证IATA代码
  • 多语言支持(i18n)

建筑

  • 分层(数据、业务、MCP)
  • 依赖注入
  • 外部配置(appsettings.json)
  • Docker的容器化
  • 健康检查
  • 限制利率以防止滥用

贡献

这是一个示范项目。欢迎提出建议和改进!

资源

许可证

麻省理工学院

______________________________________________________________________

使用构建。NET和MCP

目录标签

目录标签

C#VS Code云端部署旅行信息本地部署航班查询酒店查询JSON-RPC.NET

支持客户端

VS Code

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP