MCP实践演示
此目录提供了模型上下文协议(MCP)服务器和客户端对的最小Go实现,因此您可以看到交互是如何端到端工作的。
结构
cmd/server:HTTP JSON-RPC服务器,它公开了一些演示资源和操作。cmd/client:CLI连接到服务器,列出资源,描述一个资源,然后执行几个操作。
运行演示
cd McpPractice
# Start the MCP server
GO111MODULE=on go run ./cmd/serverIn a second terminal run the client,传入一个目标指令:
cd McpPractice
GO111MODULE=on go run ./cmd/client -goal "我想知道现在几点"客户端会先调用 listResources 收集 MCP 服务端暴露的能力,然后根据 -goal 自动规划要使用的资源和 action;如果配置了 DeepSeek,会让 LLM 决策最合适的资源,否则使用本地启发式。规划结果再驱动后续的 describeResource 与 performAction 调用,模拟真实 MCP Client 的工作流。
要将客户端指向其他端点,请使用 -endpoint=http://host:port/rpc.
可选:调用 DeepSeek LLM
客户端可以把资源详情发给 DeepSeek 模型生成中文摘要,并用 LLM 决策应该调用哪个资源/action。步骤:
export DEEPSEEK_API_KEY=sk-xxxx # 你的 DeepSeek Key
cd McpPractice
GO111MODULE=on go run ./cmd/client -goal "帮我获取当前时间" -llm-model=deepseek-chat如果没有设置 DEEPSEEK_API_KEY,客户端会跳过 LLM 摘要与 LLM Planner,改用内置启发式(例如 goal 包含 “时间” 时自动选择 time 资源)。
