【AI】如何基于cursor创建MCP索引pdf

我们可以把MCP理解成Cursor和外部功能之间的"翻译官",它能让Cursor和专门处理PDF的工具"对话",实现PDF解析、向量化存储和检索这些功能。

一、MCP到底是什么

MCP全称是‌Model Context Protocol‌,简单来说就是一套"沟通规则",它规定了Cursor怎么和外部的服务、工具交流。比如你想让Cursor处理PDF,Cursor本身没有这个能力,就需要通过MCP这个"翻译官",把你的需求"翻译"成外部PDF处理工具能听懂的语言,再把工具处理好的结果"翻译"回Cursor能展示的内容。

二、Windows电脑上怎么创建或获取MCP

  1. 先确认基础环境
    确保你的Windows电脑已经安装了Python(推荐3.8及以上版本),可以从Python官网下载安装。
    安装好Python后,打开命令提示符(Win+R输入cmd),输入pip --version,确认pip(Python的包管理工具)能正常工作。
  2. 创建MCP服务端(以PDF解析为例)

这里我们用一个简单的开源框架来搭建,步骤如下:

安装依赖工具‌

在命令提示符里输入以下命令,安装文档解析、向量处理需要的工具:

复制代码
bash
Copy Code
pip install pdfplumber sentence-transformers faiss-cpu langchain

pdfplumber:负责把PDF里的文字提取出来

sentence-transformers:把提取的文字转换成计算机能理解的"向量"

faiss-cpu:用来存储和检索这些向量

langchain:帮我们快速搭建MCP服务的框架

编写MCP服务代码‌

新建一个叫pdf_mcp_server.py的文件,把下面的代码复制进去:

c 复制代码
python
Copy Code
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings import SentenceTransformerEmbeddings
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI  # 如果用本地模型,可替换为LocalLLM
import json
import socket

# 1. 加载PDF并拆分文本
loader = PyPDFLoader("你的PDF文件路径.pdf")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
texts = text_splitter.split_documents(documents)

# 2. 转换成向量并存储
embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
vectorstore = FAISS.from_documents(texts, embeddings)

# 3. 创建MCP服务接口
def handle_mcp_request(request):
    # 解析请求(这里简化处理,实际可根据MCP协议规范调整)
    query = request.get("query", "")
    if not query:
        return {"error": "缺少查询内容"}
    
    # 用向量检索回答问题
    retriever = vectorstore.as_retriever()
    qa = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=retriever)
    result = qa.run(query)
    return {"answer": result}

# 4. 启动服务(监听本地端口)
def start_server():
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind(("localhost", 9000))
    server.listen(1)
    print("MCP服务已启动,监听端口9000")
    while True:
        client, addr = server.accept()
        request = json.loads(client.recv(1024).decode())
        response = handle_mcp_request(request)
        client.send(json.dumps(response).encode())
        client.close()

if __name__ == "__main__":
    start_server()

注意把代码里的"你的PDF文件路径.pdf"替换成你电脑里实际的PDF文件路径

如果不想用OpenAI的在线模型,也可以换成本地的开源模型,比如LlamaCpp,需要额外安装pip install llama-cpp-python

启动MCP服务‌

把代码保存好后,在命令提示符里进入这个文件所在的文件夹,输入python pdf_mcp_server.py,就会启动MCP服务,它会在本地的9000端口等待Cursor的连接。

  1. 在Cursor里配置MCP

打开Cursor,进入设置界面(快捷键Ctrl+Comma)

找到Model Context Protocol相关设置,添加一个新的MCP服务:

服务名称:可以随便起,比如PDF解析服务

服务地址:填写http://localhost:9000

协议版本:选择最新版本

保存设置后,重启Cursor,现在你就可以在Cursor里上传PDF,然后提问,它就会通过MCP调用我们搭建的服务来处理PDF啦

三、快速获取现成MCP服务(不想自己搭建)

如果你不想自己写代码,也可以用一些开源的现成工具,比如:

PrivateGPT‌:一个开源的本地PDF处理工具,它本身就支持MCP协议,你可以直接下载安装,然后在Cursor里配置它的服务地址

quivr‌:另一个开源的RAG工具,也支持MCP,安装后可以快速和Cursor对接

从截图来看,你同事的 Cursor 目前没有安装任何 MCP 工具(显示 "No MCP Tools")。


添加 MCP 的两种方式

方式一:通过 UI 添加(截图中的按钮)

点击 "Add Custom MCP" 按钮,然后填写:

字段 说明
Name 工具名称,如 yocto-builder
Type 选择 stdio(本地命令)或 sse(远程服务)
Command 启动命令,如 python3node
Arguments 参数,如 /path/to/yocto_mcp_server.py

方式二:直接编辑配置文件(推荐 ⭐)

创建或编辑项目根目录的 .cursor/mcp.json

json 复制代码
{
  "mcpServers": {
    "yocto-sa522": {
      "command": "python3",
      "args": ["/home/user/yocto-mcp/yocto_mcp_server.py"],
      "env": {
        "YOCTO_BUILD_DIR": "/path/to/yocto/build"
      }
    },
    "android-adb": {
      "command": "npx",
      "args": ["-y", "android-debug-bridge-mcp"]
    }
  }
}

然后 重启 Cursor 或按 Cmd/Ctrl + Shift + PDeveloper: Reload Window


快速测试步骤

bash 复制代码
# 1. 创建目录
mkdir -p ~/cursor-mcp && cd ~/cursor-mcp

# 2. 保存之前提供的 yocto_mcp_server.py
# [粘贴代码]

# 3. 安装依赖
pip install mcp

# 4. 测试服务器能否独立运行
python3 yocto_mcp_server.py
# 应该没有报错,等待输入

# 5. 配置 Cursor
# 按上面的方式二创建 .cursor/mcp.json

验证安装成功

配置完成后,在 Cursor 中:

  1. 查看 Tools 面板 → 应该显示 yocto-sa522 和可用工具列表
  2. 在 Composer 中测试 : "使用 yocto 工具编译 linux-qcom"

如果成功,Cursor 会自动调用 bitbake_compile 工具。


常见问题

问题 解决
显示 "Connection refused" 检查 Python 路径是否正确
工具不显示 确保 mcp.json 语法正确,重启 Cursor
命令执行失败 在终端先测试 python3 yocto_mcp_server.py 是否能运行
权限不足 确保有执行权限:chmod +x yocto_mcp_server.py

需要我提供一个 简化版的 yocto_mcp_server.py 吗?只保留最核心的编译和日志功能,方便快速测试。

相关推荐
AI自动化工坊3 分钟前
Hugging Face ml-intern技术深度解析:AI机器学习工程师的工程实践
人工智能·机器学习·huggingface·ml-intern·ai机器学习
疯狂成瘾者5 分钟前
Agent 的需求理解质量如何具体实现:从意图识别到槽位补全、追问与确认机制
人工智能·自然语言处理
北京软秦科技有限公司11 分钟前
资料验收报告审核再升级,IACheck与AI报告审核共同开创新标准
人工智能
Zzj_tju12 分钟前
视觉语言模型技术指南:图像是怎么“接入”语言模型的?视觉编码器、投影层与对齐机制详解
人工智能·语言模型·自然语言处理
Fullde福德负载箱厂家14 分钟前
负载箱的日常运维与故障处置:用户应知的设备保养与异常应对
人工智能·制造
jinanwuhuaguo20 分钟前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
大龄程序员狗哥24 分钟前
第44篇:命名实体识别(NER)实战——从文本中提取关键信息(项目实战)
人工智能
lpfasd12332 分钟前
2026年第17周GitHub趋势周报:AI代理工程化与端侧智能加速落地
人工智能·github
nervermore99042 分钟前
2.人工智能学习-环境搭建
人工智能
Flying pigs~~1 小时前
LoRA 面试完全指南:低秩分解原理 + Transformer 应用
人工智能·深度学习·lora·大模型·微调·transformer