【AI】MCP,弥补Agent的缺陷
文章目录
- Aegnt
- 工作流
- MCP
- 工作流
- 实战MCP Server
- 出现的问题
- 运行
Aegnt
- 由于LLM的知识库截止于某个时间点,无法获得最新的数据。
- 于是产生了
Agent
(智能体/代理) - LLM通过调用Agent的
tool
(函数)来获取最新的数据
工作流
- 1、User问LLM:“今天天气怎么样”
- 2、LLM看看有没有对应的Tool,调用Tool查询
- 3、Tool查询到后把结果告诉LLM
- 4、LLM再最终把结果告诉给用户
这就是一个Agent,但这就会造成另一个问题:Tool的建造和维护(语言不通无法复用)
于是诞生了MCP !!!
MCP
MCP(Model Context Protocol模型上下文协议)是claude提出的规范,它包括Tool、Resource、Prompt
工作流
- 1、User问MCP Client:今天天气怎么样?
- 2、MCP Client把Query、MCP Server和Tools形成一个新的Prompt给LLM
- 3、LLM调用指令
- 4、MCP Client接收指令后去MCP Server里调用对应的Tool
实战MCP Server
UV是一个极速的Python包和项目管理工具,使用Rust编写,速度比pip快10-100倍!它不仅能替代pip,还能替代pip-tools、pipx、poetry、pyenv和virtualenv等多个工具。
1、install uv
pip install uv
2、初始化项目
uv init bilibili-mcp-server
3、安装bilibili-api-python和mcp
uv add bilibili-api-python "mcp[cli]"
4、写server
import os
from typing import Any, Optional, Dict, Listfrom bilibili_api import search, sync
from mcp.server.fastmcp import FastMCP# 定义server
mcp = FastMCP("Bilibili mcp server")# 定义tool
@mcp.tool()
def general_search(keyword: str) -> dict[Any, Any]:"""Search Bilibili API with the given keyword.Args:keyword: Search term to look for on BilibiliReturns:Dictionary containing the search results from Bilibili"""return sync(search.search(keyword))if __name__ == "__main__":mcp.run(transport='stdio') # 本地连接
5、vscode安装Cline插件
6、配置MCP Server
绿色就表示加载成功了
出现的问题
配置了MCP Server,状态没有变成绿色(报错:spawn uv ENOENT spawn uv ENOENT)
这样就需要调整一下配置(改成用cmd
运行):
{"mcpServers": {"bilibili": {"timeout": 60,"command": "cmd","args": ["/c","uv","--directory","D:/Desktop/Study/AI/DeepSeek/MCP/bilibili-mcp-server","run","bilibili.py"]}}
}
运行
1.
2.