mcpField
M
Mcp Server Demo

Mcp Server Demo

本地服务
github.com/zhuohanl开发工具077 周前更新

关于 Mcp Server Demo

Mcp Server Demo 是用于入门 MCP 服务和客户端的示例仓库,包含演示、文档助手和美国天气示例,并提供端到端消息序列测试。

主要功能

  1. 01演示 MCP 服务
  2. 02文档助手服务与客户端
  3. 03美国天气服务
  4. 04端到端消息序列测试

适用场景

  1. 01学习运行 MCP 服务示例
  2. 02试用文档助手客户端与服务端流程
  3. 03查看 MCP 初始化及响应

MCP 相关

仓库包含 MCP 服务示例和文档助手客户端,并提供端到端 MCP 消息序列测试。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

一个用于入门 MCP 服务和客户端的仓库。

参考: 演示 文档助手 美国天气

运行 MCP 服务

uv run python server/demo.py 
uv run python server/doc_assistant.py 
uv run python server/us_weather.py 

运行 MCP 客户端

uv run python client/doc_assistant_client.py 

测试端到端消息序列

uv --directory <path-to-your-server-directory> run demo.py
uv --directory <path-to-your-server-directory> run doc_assistant.py
uv --directory <path-to-your-server-directory> run us_weather.py

在标准输出控制台中,逐条输入以下内容:

jsonc
CopyEdit
// 1️⃣  Client → Server  ─── initialize ──────────────────────────────────────────
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-03-26",
    "clientInfo": { "name": "demo-client", "version": "1.0.0" },
    "capabilities": { "tools": {}, "resources": {} }
  }
}

/* 3️⃣  Client → Server  ─── initialized notification -- no id (fire-and-forget) */
{ "jsonrpc": "2.0", "method": "notifications/initialized" }

/* 4️⃣  Client → Server  ─── tools/list ───────────────────────────────────────── */
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }

/* 6️⃣  Client → Server  ─── tools/call ───────────────────────────────────────── */
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "calculate_sum",
    "arguments": { "a": 4, "b": 3 }
  }
}

我们应该能看到类似以下内容的响应:

/* 2️⃣  Server → Client  ─── InitializeResult ─────────────────────────────────── */
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2025-03-26",
    "serverInfo": { "name": "demo-server", "version": "1.0.0" },
    "capabilities": {
      "tools": { "listChanged": true },
      "resources": {}
    }
  }
}

/* 5️⃣  Server → Client  ─── list result -- includes inputSchema ─────────────── */
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "tools": [
      {
        "name": "calculate_sum",
        "description": "Add two numbers together",
        "inputSchema": {
          "type": "object",
          "properties": {
            "a": { "type": "number" },
            "b": { "type": "number" }
          },
          "required": ["a", "b"]
        }
      }
    ]
  }
}

/* 7️⃣  Server → [external world]  ─ (does the addition)  ─────────────────────── */

/* 8️⃣  Server → Client  ─── result -- structure per schema/2025-03-26 ───────── */
{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      { "type": "text", "text": "7" }
    ]
  }
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。