使用说明
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#实现
-
启动C#MCP服务器:
cd csharp/mcp-server dotnet run # or use: run.cmd服务器将在
http://localhost:3001 -
运行C#MCP客户端:
cd csharp/mcp-client dotnet run # or use: run.cmd
选项2:Node.js实现
-
启动Node.js MCP服务器:
cd nodejs/mcp-server pnpm install pnpm run build && pnpm start # or use: run.cmd服务器将在
http://localhost:3001 -
运行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)/SearchC - 描述:按位置或名称搜索酒店
- 参数:
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
手动测试
- 启动任何MCP服务器
- 使用相应的客户端连接和测试功能
- 尝试使用以下查询搜索酒店:
- “迈阿密”(应该能找到海景)
- “丹佛”(应该找到山林小屋)
- “海洋”(应该找到海景)
📝 示例用法
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实现模式的示例代码提供的。
