MCP Intro

Defination

  • MCP is essentially a universal adapter between AI applications and external tools or data sources. (可以类比是通用接口)
  • MCP的结构
    • 采用client-server的架构(AI-client, external intergration-server)
    • 可以确保数据交换的结构化&&规范化 示意图

Importance

  • 没有MCP的话, AI每次和外界交换数据都要重写一个api. MCP的优势:
    • 类似于插头和插座,这就是一次规范化,可以实现快速工具集成
    • 可以用于agent,既可以拥有更强大的能力,也可以从外界获得数据
    • 模型和环境的双向上下文(也就是LLM可以和环境对话)
    • 一个MCP server可以提供prompt(就类似于说明书) 和 resources

MCP architecture

  • 结构:

    • Client:各类AI应用。如chatbot/ide assistant/llm
    • Server:对外提供各类能力的,包括工具,资源以及提示词模板
  • 所有交互都通过结构化的JSON_RPC进行

    • example: MCP client需要查找有什么available的工具的时候

      1    {
      2    "jsonrpc": "2.0",
      3    "id": 1,
      4    "method": "tools/list",
      5    "params": {}
      6    }
      
    • 然后MCP server回答

      1    {
      2    "jsonrpc": "2.0",
      3    "id": 1,
      4    "result": [
      5        { "name": "get_weather", "description": "Retrieves weather data.", "schema": { "location": "string" } }
      6    ]
      7    }
      
    • 在这个过程中是Host Application来完成的

      • 模型表达意图
      • host app翻译成MCP请求
      • server执行返回
      • host app把结果喂给llm
      • 也就是说这个host app才有执行权,llm只是建议权

MCP servers

  • 只要能接受请求 并返回格式化数据 就可以拿过来做server的
  • 可以理解为
    1LLM <--> host app <--> MCP Server A/B/C...
    2#这样就带来了很好的扩展性
    
  • MCP server可以做的方向:
    • 数据类:查数据库/读文档
    • 工具类:调API/模型
    • 管理类:管理AI workflow
  • MCP server可以deploy在任何地方

MCP client

  • 就是应用MCP server能力的人

细节补充见here