MCP教程进阶篇,没学到最后你就放弃了!

 

一、MCP的背景

在mcp没有出现来之前,我们与大模型的交互大部分都是通过API或者大模型要求的接口。

GTP商店、coze智能体所要求的server都是不一样的,为了适配多个大模型,1个服务要开发多个server服务。

一句话概括就是mcp 就是定义了统一的服务协议,同时大模型可以借助mcp 协议来对接n个 mcp server,从而增强大模型的能力。

二、 MCP定义介绍

MCP(Model Control Protocol)是一个开放标准协议,专为控制和交互大型语言模型(LLMs)而设计。

这个协议由Anthropic公司提出并开源,旨在提供一种标准化的方式来与AI模型进行通信。

Cursor作为一款面向开发者的AI编辑器,原生集成了MCP协议,使开发者能够连接到任何兼容MCP的模型服务。这为开发团队提供了极大的灵活性,既可以使用公共AI服务,也可以连接到企业内部部署的AI模型。

mcp的架构图

参考地址:

https://modelcontextprotocol.io

三、如何使用一个官方mcp

如何使用mcp ,可以参考官方的地址

https://modelcontextprotocol.io/examples

1、filesystem,目的:解决了直接访问本地文件夹的功能

具体命令:

因此,拼接的command命令如下:

npx -y @modelcontextprotocol/server-filesystem /Users/syw/Downloads/book

在cursor mcp 中添加。

02 直接让大模型访问本地数据库

首先,mac 安装pg。安装方法是:https://juejin.cn/post/7239990044333801533

接下来就是运行命令了。

因此,拼接的command命令如下:

npx -y @modelcontextprotocol/server-postgres postgresql://postgres:123456@localhost:5432/postgres

在cursor mcp添加:

四、如何写一个mcp server 供cursor使用

困境:本地文件无法自动发送到服务器。

解决办法:让cursor学习一些mcp server的demo,然后自己学习,帮我生成新的mcp server。

步骤一:让cursor去理解mcp的官方文档,生成mcp的提示词。

首先下载官方的例子:

https://github.com/modelcontextprotocol/quickstart-resources/

然后cursor打开文件执行下面的提示词:

你先学习mcp的写法,然后给我生成一个结构化的mcp提示词,要求务必按照官方demo的写法。

小tips:这个要在ask中执行,不然,永远也不能达到想要的效果。下面就是我生成的mcp 提示词。

MCP_TEMPLATE = """你是一个 MCP (Model Context Protocol) 服务器开发专家。请按照以下结构帮助用户开发 MCP 服务器:

1. 服务器基本结构分析:
- 服务器名称和用途
- 需要实现的主要功能
- 需要用到的外部依赖

2. 代码结构设计:
- 导入必要的包和模块
- 初始化 MCP 服务器实例
- 定义常量和配置
- 实现辅助函数
- 实现 @mcp.tool() 装饰的工具函数
- 主函数运行服务器

3. 关键要点提醒:
- 必须使用 @mcp.tool() 装饰器
- 必须在主函数中使用 mcp.run(transport='stdio')
- 工具函数需要清晰的文档字符串
- 建议使用异步函数提高性能

4. 代码示例格式:
```python
import mcp
from typing import Any

# 初始化服务器
mcp = mcp.FastMCP("server_name")

# 工具函数示例
@mcp.tool()
async def your_tool(param: str) -> str:
    \"\"\"工具函数的文档字符串
    
    Args:
        param: 参数说明
    
    Returns:
        返回值说明
    \"\"\"
    # 实现逻辑
    return result

if __name__ == "__main__":
    mcp.run(transport='stdio')
```

5. 测试和调试建议:
- 使用 uv run your_server.py 运行服务器
- 检查 ~/Library/Logs/Claude/mcp*.log 日志文件
- 确保 claude_desktop_config.json 配置正确

请根据用户的具体需求,按照上述结构提供详细的实现方案。

用户需求:{user_requirement}

请按照以上结构,为用户生成完整的 MCP 服务器实现方案。
"""

步骤二:添加cursor rules,将生成的rule添加到客户端。

步骤三:结合mcp提示词,加上自己业务内容,让cursor生成

根据mcp专家的提示词rule,编写一个实现了将本地的/Users/syw/project/wechatAr 文件夹下的所有文件上传到服务器 47.93.xx.xx 用户名root 目录/opt/ll,已经配置好远程免密码登陆。现在开始实现这个mcp服务,集成scp命令。当我关键词是”上传微信目录“,就可以调用mcp的tool自动触发。

步骤四:打开setting,去mcp中更添加server。

添加的时候,commnad 一定要选择我们执行文件的绝对路径,不然的话cursor是找不到文件路径目录的。

写在后面的话

很多人可能已经放弃了,其实mcp并不难。只是在cursor 0.46版本将mcp放到setting的一级目录后,导致了一些bug的出现,给大家带来了些许困扰。

window安装不了mcp的可以看看下面的文章。

为什么你的Cursor总装不上MCP?今天分享4个终极大招

关于mcp,它是下一代的标准还是昙花一现,虽然现在众说纷纭,但热度却依旧不减。

如果你还不熟悉mcp,可以关注我的视频号,里面有详细的介绍!当然我也在mcp的路上不断摸索,文中如有不妥地方,欢迎批评指正!


 


(文:大瑜聊AI)

欢迎分享

发表评论