MCP实战-本地MCP Server+Cursor实践
MCP实战-本地MCP Server+Cursor实践
概述
本文介绍了如何编写一个最简单的本地MCP Server,并通过Cursor来使用该MCP Server。
MCP结构介绍
下图是MCP的结构图。本文中“带MCP客户端的主机”,模块我选择的使用Cursor。MCP服务器我这里是自己开发的一个HelloWorld 的MCP服务。其他的本地数据源和远程服务都不需要调用。
访问MCP server的两种模式
这里我使用的是FastMCP来实现的MCP Server。运行该Server时,有2种模式:
- 本地模式:
- 可以用来调试MCP服务是否工作正常。在运行该server时,直接
mcp.run(transport="stdio")
。也就是说把run函数中的transport参数设置成stdio即可。
- 可以用来调试MCP服务是否工作正常。在运行该server时,直接
- 远程模式:
- 把transport参数设置成sse。通过http post来进行通信。
说明:我这里使用本地模式。
本地MCP Server代码
代码很简单,就是一个hello world返回。这里使用的是FastMCP。
from mcp.server.fastmcp import FastMCPmcp = FastMCP("HelloWorld")@mcp.tool()
def helloworld() -> str:"""hello world"""return "hello world for mcp"if __name__ == "__main__":mcp.run(transport="stdio")
配置Cursor
在cursor中依次点击以下按钮:
File -> Preference->Cursor Settings->MCP-> “Add new global MCP Server”
再打开的配置文件中输入:
{"mcpServers": {"hello-server": {"command": "C:\\Users\\issuser\\.conda\\envs\\py311\\python.exe","args": ["D:\\my_dev\\mcp-server\\helloworld.py"],"description": "A Simple helloworld Server."}}
}
这里要注意一下:
- command:是你的python命令所在的位置。
- args:是要请求的mcp server的文件所在的全路径。
测试刚才写的MCP Server
在右侧打开Agent对话框。
输入:call HelloWorld MCP Server,或则直接输入helloworld也可以。
Agent会去找相关对应的MCP Server,找到后会询问是否调用该MCP Server。从下图可以看到,Agent找到了Helloworld的Server,并调用了该Server。
总结
本文介绍一个最简单的MCP Server的编写的例子。并通过Cursor来使用了该MCP Server提供的服务。可以想象,要是我有若干个这样的MCP Server包括外部第三方提供的,那么我的Agent就会变得非常强大了。