关于 MCP File Reader Server
MCP File Reader Server 提供 MCP 文件读取工具,可从配置的数据目录读取文件,面向 Cursor 用户。它既可由 Cursor 管理并通过 stdio 运行,也可手动启动为 SSE 服务。
主要功能
- 01读取指定目录中的文件
- 02由 Cursor 管理的 stdio 模式
- 03手动启动的 SSE 模式
- 04SSE 客户端测试脚本
适用场景
- 01在 Cursor 中读取 ~/mcp_data 的文件
- 02通过 SSE 服务读取项目文件
- 03测试 SSE 连接和文件读取
MCP 相关
向 MCP 客户端提供 read_file 工具,支持由 Cursor 管理的 stdio 模式,以及由 Starlette 和 Uvicorn 提供的 SSE 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 文件读取器服务
本项目提供了一个简单的 MCP(Model-Control-Protocol)文件读取服务,可通过两种模式运行:
- Stdio 模式(
file-reader): 由 Cursor 通过全局配置管理。 - SSE 模式(
file-reader-sse): 通过手动启动独立运行。
设置说明
1. 前置条件
- Python 3.8 或更高版本
- 已安装 Cursor 应用
- pip 包管理器
2. 安装
- 克隆或下载此仓库
- 创建虚拟环境:
python3 -m venv venv - 激活虚拟环境:
source venv/bin/activate # On macOS/Linux venv\Scripts\activate # On Windows - 安装所需的软件包:
pip install mcp # Uvicorn & Starlette are needed for running the SSE server # httpx is needed for the SSE client pip install "uvicorn[standard]" starlette httpx
3. 配置
选项 1:为 Stdio 模式(file-reader)配置 Cursor
要让 Cursor 管理 stdio 服务:
- 编辑全局 MCP 配置文件:
- macOS:
~/Library/Application Support/Cursor/cursor_mcp_config.json - Windows:
%APPDATA%\Cursor\cursor_mcp_config.json - Linux:
~/.config/Cursor/cursor_mcp_config.json
- macOS:
- 确保存在
file-reader条目,并指向正确的 venv Python 和主脚本file_reader_server.py:{ "mcpServers": { "file-reader": { // Server name for stdio mode "command": "/FULL/PATH/TO/YOUR/PROJECT/venv/bin/python", "args": [ "/FULL/PATH/TO/YOUR/PROJECT/mcp-file-reader-example/file_reader_server.py" ], "enabled": true, "env": {} } // ... other servers ... } } - (请参阅此仓库中的
cursor_mcp_config.json模板)
选项 2:配置项目以发现 SSE 服务(file-reader-sse)
项目本地的 .mcp.json 文件已配置为描述运行在 http://127.0.0.1:8080 的 SSE 服务(file-reader-sse)。请注意,客户端可能需要连接到 /sse 子路径(http://127.0.0.1:8080/sse)。
数据目录
- stdio 服务(
file-reader)默认使用~/mcp_data(位于你的主目录中)。 - SSE 服务(
file-reader-sse)默认使用./project_mcp_data_sse(位于此项目目录中)。
运行相应服务之前,请确保这些目录存在。若 ./project_mcp_data_sse 不存在,./start_sse.sh 脚本会创建该目录。
4. 运行服务
选择一种方式:
方法 A:Stdio 模式(通过 Cursor 运行 file-reader)
- 完成全局配置(上方的选项 1)。
- 重启 Cursor。
- 前往 Cursor 设置 -> MCP。
- 找到
file-reader并将其切换为开启状态。
方法 B:SSE 模式(手动运行 file-reader-sse)
使用提供的启动脚本。在终端中运行:
./start_sse.sh
此脚本会确保依赖项(包括 uvicorn、starlette)已安装,并运行 Uvicorn ASGI 服务,加载 file_reader_server_sse.py 中定义的 Starlette app。Starlette 应用会将 MCP 服务的 SSE 处理器(mcp.sse_app())挂载到根路径。
服务将开始监听 http://127.0.0.1:8080。
5. 在 Cursor 中使用服务
- 如果使用 Stdio 模式(方法 A):
从
~/mcp_data读取:read test.txt using the file-reader server - 如果使用 SSE 模式(方法 B):
假设 Cursor 通过
.mcp.json发现该服务。从./project_mcp_data_sse读取:
(注意:请使用指定的服务名称read sse_test.txt using the file-reader-sse serverfile-reader-sse,以及./project_mcp_data_sse中预期存在的文件名)
6. 使用 SSE 客户端脚本(手动测试)
本项目包含一个 Python 客户端脚本(file_reader_sse_client.py)和一个包装 shell 脚本(run_sse_client.sh),用于通过 mcp 库的 SSE 客户端功能独立测试 SSE 服务。
-
确保 SSE 服务正在运行(使用
./start_sse.sh)。 -
在终端中运行客户端包装脚本:
# 连接、初始化、列出工具,并为 sse_test.txt 调用 read_file ./run_sse_client.sh # 尝试读取其他文件(例如 another_sse.txt) ./run_sse_client.sh another_sse.txt(包装脚本会确保已安装
httpx等依赖项,并使用正确的 Python。) -
客户端将连接到
http://127.0.0.1:8080/sse,初始化 MCP 会话,按名称调用read_file工具,并打印响应或任何错误。
故障排除
- Stdio: 检查 Cursor Settings -> MCP 中的状态(绿色圆点),确认全局配置路径;如果启动失败,请检查 Cursor 日志中的
stderr。 - SSE: 确保手动启动服务(使用
./start_sse.sh),检查其终端输出(stderr)中的错误,并确认客户端可以访问http://127.0.0.1:8080/sse。 - 修改配置后重启 Cursor。
高级用法
stdio服务使用file_reader_server.py。sse服务使用file_reader_server_sse.py。- 两者的日志均输出到
stderr。 - 项目提供了 SSE 服务的基础客户端
file_reader_sse_client.py。 - 项目提供了 SSE 服务的启动脚本:
start_sse.sh。 - SSE 服务使用 Starlette 挂载 MCP SSE 应用(
mcp.sse_app()),然后由 Uvicorn 通过start_sse.sh运行。 - 项目提供了 SSE 客户端的包装脚本:
run_sse_client.sh。 - SSE 客户端脚本使用
mcp.client.sse.sse_client和mcp.ClientSession与服务交互。
许可证
MIT
服务详情
file-reader(Stdio):- 脚本:
file_reader_server.py - 传输方式:Stdio
- 管理方式:通过 Cursor 全局配置(
~/.cursor/mcp.json)和 Settings 开关。 - 规则:
00-MCP-Server-Rules.txt、00-MCP-Client-Rules.txt - 数据目录:
~/mcp_data
- 脚本:
file-reader-sse(SSE):- 脚本:
file_reader_server_sse.py(定义 FastMCP 实例和 Starlette 应用) - 传输方式:通过 Starlette/Uvicorn 使用 SSE(监听
http://127.0.0.1:8080,客户端连接到/sse路径) - 管理方式:通过
start_sse.sh手动启动/停止(运行uvicorn ...:app)。 - 发现方式:通过项目
.mcp.json。 - 规则:
00-MCP-SSE-Server-Rule.txt、00-MCP-SSE-Client-Rule.txt - 数据目录:
./project_mcp_data_sse(相对于项目根目录)
- 脚本:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。