客户端调用MCP服务 ============== # 调用Stdio类型的MCP服务 ## 调用本质:客户端在内部使用命令行(Windows下为cmd.exe),调用MCP服务控制台程序的可执行文件。 windows下,类似于 ```cmd cmd.exe /c "D://目录/McpServer.exe" ``` ## 注意事项 1. .NET 开发的Stio程序,客户端调用时:一种是,执行命令换成cmd,参数为 Studio类型的mcp服务程序可执行文件(带路径),另一种是,执行命令为 Dotnet,参数为 Dotnet的命令及参数(dotnet 路径/mcpServer.dll或者dotnet run --project xxx.csproj) 2. 调用服务后,很可能MCP服务进程没有自动退出,还驻留在系统进程中,造成后续调用失败;特别是在开发与调试阶段,这种情况更常见。调用失败时,一定要先检查MCP服务进程是否还在运行,如果还在运行,先结束进程。 3. 可以使用`MCP C# SDK`中,提供的 `IMcpClient` 直接调用MCP服务相关功能(连接、列举工具、调用工具等); 方便开发与调试,但不建议在生产环境中使用; 4. 生产环境,使用 `Microsoft.Extensions.AI`、`Microsoft.SemanticKernel`等AI库,进行调用; # 调用SSE类型的MCP服务 ## 调用本质:客户端发送http请求,MCP服务程序响应内容;只不过服务端使用SSE,数据交换使用Json Patch格式。这一切源于MCP协议。 ## 注意事项: