使用说明
MCP服务器教程
最近我一直在尝试使用人工智能助手,然后我遇到了一个叫做……的东西 **模型上下文协议(MCP)**这真的很酷。我跟着这个做了 MCP教程 于是我决定记录下我的这次小冒险。
我从MCP中学到的东西
基本上,MCP(机器控制协议或类似技术,具体根据上下文确定)让你能赋予你的AI超能力。以前,我把AI想象成一个封闭的盒子。你问它问题,它回答。但有了MCP,你可以在AI和现实世界之间搭建一座桥梁。我了解到,我可以创造出自己的“工具”,让AI利用这些工具去做它原本无法做的事情。
我学到的主要观点
- MCP 服务器: 这是我构建的后端系统。我的自定义工具都存放在这里。
- MCP 客户端: 这是与我的服务器进行交互的AI应用,就像Claude Desktop一样。
- 工具: 这些只是AI可以调用的Python函数。我制作了一个
get_latest_news从网络上抓取头条新闻的工具。 - 资源与提示: 我还发现,我可以给AI访问文件(资源)的权限,甚至可以给它提供回复(提示)的模板。
我如何让我的服务器运行起来
这个教程对我帮助很大,而且比我想象的要容易。我做了以下这些:
-
安装了必要的库:
我把所有我需要的Python库都放到一个
requirements.txt文件:fastapi uvicorn python-dotenv httpx beautifulsoup4 mcp然后,我在终端中运行了这个命令:
pip install -r requirements.txt -
服务器已启动:
一切安装完毕后,我只需运行我的Python脚本:
python main.py就这样!服务器现已准备好连接到Claude桌面版。
一窥内部 main.py
想知道这段Python代码到底在做什么吗?我们来详细分析一下。
这个(或:该) main.py 文件是服务器的核心。以下是一个快速概览:
-
引进优质资源: 在顶部,我导入了所有我需要的库,比如
FastMCP用于创建服务器,httpx用于发送网络请求,以及BeautifulSoup用于解析HTML。 -
设置MCP服务器: 这行代码创建了一个新的MCP服务器并为其命名:
mcp = FastMCP("tech_news") -
定义
get_latest_news工具: 这是我创建的主要工具。它是一个Python函数,接收一个新闻源作为输入(比如“techcrunch”或“theverge”),并返回该网站的最新新闻。该
@mcp.tool()装饰器是用来告诉MCP服务器这个函数是一个AI可以使用的工具。 -
获取新闻: 这个(或“该”)
fetch_news函数是一个辅助函数,负责从网络上获取新闻的主要工作。它使用httpx获取新闻网站的HTML代码以及BeautifulSoup解析它并从段落中提取文本。 -
运行服务器: 这是剧本的最后一部分
if __name__ == "__main__":这段代码确保服务器仅在我直接运行脚本时才启动mcp.run(transport='stdio')这一行代码实际上是启动服务器的。
所以,简而言之, main.py 使用一个单一工具创建一个MCP服务器,该服务器能够从网络上获取新闻。当人工智能调用这个工具时,服务器会运行(相关程序) get_latest_news 执行函数并将结果返回给人工智能。挺酷的,对吧?
连接到Claude桌面版
这就是魔法发生的地方!为了将我的服务器连接到Claude Desktop,我需要进行一些配置。下面是我是如何做的:
提醒一下: 以下是我成功采用的步骤。你的实际情况可能会有所不同。
-
查找配置文件:
在Claude Desktop中,我进入“Claude”菜单,然后选择“设置...”,接着转到“开发者”选项卡。那里有一个“编辑配置”的按钮。点击该按钮后会打开
claude_desktop_config.json文件。 -
编辑配置文件:
我用这个JSON片段替换了文件的内容:
{ "mcpServers": { "tech_news_server": { "command": "python", "args": [ "main.py" ] } } } -
重启Claude桌面版:
我保存了文件,然后完全退出并重新启动了Claude Desktop。这一步很重要,否则更改不会生效。
-
检查连接:
重启后,我在提示输入区域的右下角看到了一个小锤子图标。这让我知道我的服务器已经连接成功了!现在我可以让Claude获取最新新闻,它会使用我的自定义工具来完成这个任务。
我的一点浅见
这是一个非常有趣的项目。它让我意识到,我可以让我的人工智能助手变得功能强大得多。如果你想自己尝试,一定要看看那个让我入门的教程: