MCP And Function Call

一、对比

对比维度 MCP(Model Context Protocol) Function Call
架构设计 客户端—服务器模式,采用标准的JSON-RPC协议,实现完全解耦的模块化架构 集成于模型内部,多为垂直定制,通常直接嵌入模型调用逻辑
通信模式 同步与异步均支持,灵活调整消息传递方式 主要以同步模式为主,异步支持有限,依赖于平台扩展实现
标准化程度 开放标准,支持跨平台工具调用,一次开发,众多模型共用接口 供应商专用,适用范围受限,每个新工具需单独开发接口,标准化程度不高
部署方式 工具方提供MCP服务器,采用统一协议即可接入所有支持MCP的AI模型 每个API或工具都需在各自模型中集成,需定制开发,不具通用性
安全与权限 内嵌多层安全机制(如OAuth认证、动态权限映射和数据加密),上下文持续安全传输 安全机制分散,依赖开发者自行实现,缺乏统一认证流程
扩展性 模块化设计,新增工具只需实现MCP接口即可,不需多次适配 每增加一个工具都需要重新设计和实现接口,存在重复开发问题

二、环境初始化

uv init mcp -p 3.10
# uv init -p 3.10
# uv venv
cd mcp
source .venv/Scripts/activate
# uv add mcp[cli] httpx pypinyin # server
# uv add openai lxml # client

三、编码

git clone https://gitee.com/hlyani/mcp.git

1、stdio

cd mcp
uv --directory weather/client run stdio.py
{
    "mcpServers": {
      "weather_stdio": {
        "disabled": false,
        "timeout": 60,
        "command": "uv",
        "args": [
          "--directory",
          "C:\\harley\\BaiduSyncdisk\\sugon\\vscode_workspace\\mcp\\weather\\server",
          "run",
          "stdio.py"
        ],
        "transportType": "stdio"
      }
    }
  }

2、sse

cd mcp
uv run --directory weather/server sse.py
uv --directory weather/client run sse.py
{
    "mcpServers": {
      "weather_sse": {
        "disabled": false,
        "timeout": 60,
        "url": "http://localhost:8000/sse",
        "transportType": "sse"
      }
    }
  }

results matching ""

    No results matching ""