酒店搜索服务

提供基于Model Context Protocol (MCP)的酒店搜索服务,支持通过位置或名称搜索酒店,并显示可用房间信息。

  • by patrice-truong
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 patrice-truong/mcp-client-server

使用说明

MCP客户端服务器示例

此存储库包含C#和Node.js/TypeScript中模型上下文协议(MCP)客户端和服务器应用程序的示例实现。这些示例演示了如何构建与MCP兼容的服务器,这些服务器公开了酒店搜索功能的工具,以及可以连接到这些服务器并与之交互的客户端。

🏗️ 项目结构

mcp-client-server/
├── csharp/                    # C# implementations
│   ├── mcp-client/           # C# MCP client (console application)
│   └── mcp-server/           # C# MCP server (ASP.NET Core web app)
├── nodejs/                   # Node.js/TypeScript implementations
│   ├── mcp-client/           # Node.js MCP client
│   └── mcp-server/           # Node.js MCP server (Express.js)
└── README.md                 # This file

🌟 特性

MCP服务器

两种服务器实现都提供以下MCP工具:

  • 酒店搜索:按位置或名称搜索酒店
  • 可用酒店:
    • 海景(迈阿密)-5间客房
    • 山旅馆(丹佛)-2间客房

MCP客户端

两个客户端实现都演示了:

  • 通过服务器发送事件(SSE)连接到MCP服务器
  • 列出服务器上可用的工具
  • 使用参数调用MCP工具
  • 显示格式化结果

🚀 快速开始

先决条件

对于C#项目

  • .NET 9.0或更高版本
  • Visual Studio 2022或带有C#扩展的VS代码

适用于Node.js项目

  • Node.js v16或更高版本
  • npm或pnpm包管理器

运行示例

选项1:C#实现

  1. 启动C#MCP服务器:

    cd csharp/mcp-server
    dotnet run
    # or use: run.cmd
    

    服务器将在 http://localhost:3001

  2. 运行C#MCP客户端:

    cd csharp/mcp-client
    dotnet run
    # or use: run.cmd
    

选项2:Node.js实现

  1. 启动Node.js MCP服务器:

    cd nodejs/mcp-server
    pnpm install
    pnpm run build && pnpm start
    # or use: run.cmd
    

    服务器将在 http://localhost:3001

  2. 运行Node.js MCP客户端:

    cd nodejs/mcp-client
    pnpm install
    pnpm run build && pnpm start
    # or use: run.cmd
    

🔧 技术细节

通信协议

  • 运输:服务器通过HTTP发送事件(SSE)
  • 端口:3001(所有服务器的默认值)
  • 端点:
    • /sse -MCP通信的SSE连接端点
    • /messages -工具执行的POST端点

MCP工具可用

  • 工具名称: searchHotels (Node.js)/ Search C
  • 描述:按位置或名称搜索酒店
  • 参数:
    • query (string)-酒店位置或名称的搜索词

🛠️ 发展

建设项目

C#项目

# Build server
cd csharp/mcp-server
dotnet build

# Build client
cd csharp/mcp-client
dotnet build

Node.js项目

# Build server
cd nodejs/mcp-server
pnpm install
pnpm run build

# Build client
cd nodejs/mcp-client
pnpm install
pnpm run build

发展模式

Node.js服务器(带自动重新加载)

cd nodejs/mcp-server
pnpm run dev

Node.js客户端(开发模式)

cd nodejs/mcp-client
pnpm run dev

🧪 测试

使用MCP检查器

这两台服务器都可以使用MCP Inspector工具进行测试:

npx -y @modelcontextprotocol/inspector

手动测试

  1. 启动任何MCP服务器
  2. 使用相应的客户端连接和测试功能
  3. 尝试使用以下查询搜索酒店:
    • “迈阿密”(应该能找到海景)
    • “丹佛”(应该找到山林小屋)
    • “海洋”(应该找到海景)

📝 示例用法

C#客户端示例

MCP Client Console Application
==============================

Enter your hotel search query (or 'quit' to exit): miami
Connecting to MCP server...
Connected! Listing available tools...
Available tool: Search (Searches for hotels based on the user's query.)
Searching for hotels with query: 'miami'...

Search Results:
===============
Found hotels:
- Ocean View (Miami): 5 rooms available

Enter your hotel search query (or 'quit' to exit): quit
Goodbye!

Node.js客户端示例

[CLIENT] Connected to MCP server
[CLIENT] searchHotels response: {
  content: [
    {
      type: 'text',
      text: 'Found 1 hotel(s):\n\n🏨 Ocean View in Miami (5 rooms available)'
    }
  ]
}

📚 了解更多

📄 许可证

这个项目是作为学习MCP实现模式的示例代码提供的。