简单讲讲对MCP的理解

工具的发展

  • 自己写工具的代码逻辑,通过prompt告诉模型,在需要的时候返回functioncall

    • 痛点:和业务长在一起,如何拓展,如何共享?

  • MCP应运而生,按照MCP协议开发的python/js脚本,可以共享本地运行,也可部署MCP server供统一调用。

MCP-Client/MCP-Server(更像一个中间件)

  • client端的mcp config json可以配置npx/uvx的方式运行,可以看出对应的js/python的管理工具。

    • 可以很容易的想到,都是脚本语言,stdio的模式:通过index.js/xxxx.py进行本地调用

    • 对应的MCP-Server代码,管理在云仓库,通过包管理工具拉取

  • client端访问server端支持SSE(server send event)(官方表示不建议使用,因为需要保持长连接,稳定性堪忧)

  • client端访问server端支持http(推荐),对应的MCP-Server就要从脚本变成一个服务,不过也很简单,都有成熟的MCP框架。

  • client端怎么知道访问哪个MCP-Server?

    • 万变不离其中,还是prompt,成熟的ide都维护了一套整体prompt(自己开发的可以去借鉴),告诉了怎么去调用MCP-Server

    • MCP-Server只需要告诉client端自己提供了哪些功能就可以,填充到上面提到的整体prompt中

    • MCP协议的好处就体现出来了,按协议开发的server端以及client端的配置,client端能auto获取简单的工具描述

    • 当然成熟的ide都支持自定义描述,更加贴合业务,识别更精准