章
目
录
今天咱们就来唠唠MCP Server,看看它是如何让大型语言模型(LLM)更高效地与外部资源协同工作。
一、啥是MCP Server?
MCP Server,全称为基于MCP(Model Context Protocol,模型上下文协议)的服务器。简单来说,它就像是一座桥梁,一头连着大型语言模型,另一头接着外部数据源和各种工具。借助MCP Server,开发者能轻松把本地的资源,像文件、数据库,还有各种API接口等,“喂”给AI模型,这样模型就能更智能、高效地干活,实现各种自动化操作啦。
二、MCP Server有哪些核心功能?
(一)资源暴露
MCP Server能把本地的各类资源,毫无保留地展示给AI模型,让模型可以直接访问和使用。比如说,像file:///home/user/report.txt
这样的文件资源,模型可以读取里面的内容;还有memo://recent-insights
这种内存资源,模型也能获取相关信息。
(二)工具提供
它还允许开发者把本地的工具分享给AI模型。这些工具可都是模型完成复杂任务的“好帮手”,像查询数据库的query_database
工具,只要给它传入SQL语句,就能返回查询结果;还有write_file
工具,可以按照指定的文件路径写入内容。
(三)动态通知
当资源有变动的时候,MCP Server会通过通知机制,主动把更新信息推送给客户端。这样一来,数据就能时刻保持最新,保证了数据的实时性和一致性,避免因为数据滞后导致的问题。
(四)会话管理
MCP Server在客户端和服务器的通信过程中,承担着重要的管理职责。它负责处理客户端连接的初始化,协商双方的能力,以及在会话结束时关闭连接,全方位确保通信的稳定和安全,就像一个尽职的“通信管家”。
三、MCP Server的架构长啥样?
- MCP客户端:一般就是那些AI应用程序,比如Claude Desktop,或者其他基于LLM开发的工具。它们主要负责向服务器发起请求,和服务器进行通信。
- MCP服务器:是个轻量级的程序,主要任务就是把特定的数据源或者工具功能暴露出来,通过标准化的协议和客户端进行交互。
它们之间的通信格式基于JSON – RPC 2.0,支持请求、响应和通知这三种消息类型。这种标准化的通信方式,就像是大家都说同一种语言,保证了双方交流的顺畅和一致。
四、咱该咋用MCP Server呢?
(一)自己动手,定制专属MCP Server
要是你想按照自己的需求打造一个MCP Server,也是可以实现的。这里以python – sdk为例,给大家简单演示一下。
首先得安装相关的依赖包,在命令行输入:
uv add "mcp[cli]"
pip install mcp
这一步就像是给你的开发环境准备好“原材料”。
接着,咱们来编写server.py
文件:
# server.py
# 从mcp.server.fastmcp模块导入FastMCP类,这个类用于创建MCP服务器实例
from mcp.server.fastmcp import FastMCP
# 创建一个名为“Demo”的MCP服务器实例
mcp = FastMCP("Demo")
# 使用@mcp.tool()装饰器定义一个工具函数add,它接收两个整数参数a和b,返回它们的和
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# 使用@mcp.resource()装饰器定义一个资源函数get_greeting,它接收一个字符串参数name,返回个性化的问候语
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
这段代码定义了一个简单的MCP Server,里面有一个加法工具和一个能生成个性化问候语的资源。
最后,通过下面的命令启动服务:
mcp install server.py
这样,一个自定义的MCP Server就跑起来啦!
(二)“拿来主义”,使用现成的MCP Server
要是你不想从头开始折腾,也可以直接用现有的MCP Server。下面给大家推荐几个不错的资源:
- mcp中文教程:mcpdoc.club/这个网站可能是中文资料里对MCP讲解最全面的教程了,从环境配置到实际开发,各个方面都有详细介绍。
- GitHub:MCP Servers官方仓库里有不少开源的项目,能给咱们提供很多参考和灵感。
- 网站:McpFound导航站非常实用,它可以按照不同类别筛选和搜索MCP Server,而且还支持免费提交自己开发的MCP Server。在上面,你能找到像
mcp - clickhouse
这种针对ClickHouse的MCP Server,还有mcp - server - axiom
这种为Axiom打造的服务器,选择非常丰富。
五、MCP Server都用在哪些地方?
(一)本地资源操作
借助MCP Server,AI模型操作本地文件、数据库、Git这些资源就像“家常便饭”一样简单。举个例子,以前查询数据库得写一大串复杂的SQL语句,现在只要用自然语言描述你的需求,MCP Server就能帮你搞定,是不是超方便?
(二)自动化工作流
在构建AI工作流方面,MCP Server也是一把好手。比如说,结合Playwright MCP Server,AI模型可以自动完成浏览器操作,实现UI自动化测试。
(三)数据隐私与安全
MCP Server在本地运行的特点,让它在数据隐私和安全方面有着天然的优势。它避免了把敏感数据上传到第三方平台,从源头上降低了数据泄露的风险,确保了数据的安全和隐私。
六、总结
MCP Server是个很强的工具,打破了AI模型和本地资源、工具之间的“壁垒”,实现了无缝集成, 显著提升了开发效率。