ChatGPT定制的本地文件MCP(可能是指某种特定于本地文件处理的模块或配置)
使用Cloudflare Tunnel的自定义MCP服务器,用于读取本地文件。将ChatGPT(chatgpt.com,而非API)指向您机器上的一个专用文件夹——模型会按需读取完整文件。无需RAG预处理,不进行部分读取,不上传文件。通过安全的OAuth 2.0直接访问文件。
需要明确的是,在对话过程中,文件内容会被传输到OpenAI服务器进行处理。这些内容并不会永久存储在ChatGPT项目中,而是遵循OpenAI的标准对话数据保留政策。这种方法与手动上传不同,因为文件是按需获取的,而不是预先上传的。
______________________________________________________________________
特点/功能
- 使用动态客户端注册实现安全的OAuth 2.0认证(RFC 7591)
- Cloudflare Tunnel:实现无需端口转发的远程安全访问
- 完整的文件访问权限——ChatGPT读取整个文件,而非分块读取
- 智能文件发现 - 按名称搜索,列出目录,按需读取
- 持久会话 - 注册客户端在服务器重启后仍能存活
- systemd 集成 - 与系统服务一起启动/停止
- 桌面启动器 - 图形用户界面快捷方式,便于操作(Linux)
______________________________________________________________________
为何超出RAG(参考答案/范围/规定)?
传统的RAG(检索增强生成):
需要进行预处理和嵌入生成。返回部分/分块内容。增加了延迟和复杂性。关于文件结构的信息有限。
这个MCP服务器:
直接文件系统访问。按需读取完整文件。ChatGPT可以浏览您的目录结构。小文件处理延迟更低。无需预处理。
______________________________________________________________________
先决条件
- 操作系统:Linux(已在Ubuntu/Kubuntu上测试过)、macOS,或带有WSL的Windows
- Python:3.8或更高版本
- Cloudflare 账户:免费套餐可用
- 域名:由Cloudflare管理的任何域名
- ChatGPT:Plus或Pro账户(用于MCP支持)
______________________________________________________________________
快速入门
1. 克隆仓库
git clone https://github.com/YOUR_USERNAME/chatgpt-custom-mcp-for-local-files.git
cd chatgpt-custom-mcp-for-local-files2. 安装依赖项
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt在Windows上使用: venv\Scripts\activate
3. 配置环境
cp .env.example .env
nano .env编辑这些必需的变量:
BASE_DIR=/path/to/your/files
OAUTH_CLIENT_ID=chatgpt-mcp-default
OAUTH_CLIENT_SECRET=your-secure-random-string生成一个安全的密钥:
openssl rand -hex 324. 设置Cloudflare隧道
请参阅详细的设置指南于 docs/SETUP.md
基本步骤:
# Install cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
# Create tunnel
cloudflared tunnel create mcp-files
# Configure DNS in Cloudflare dashboard
# Add CNAME: mcp.yourdomain.com -> TUNNEL_ID.cfargotunnel.com
# Start tunnel
cloudflared tunnel run mcp-files5. 启动MCP服务器
python server_mcp.py服务器运行于 http://localhost:4000
6. 连接ChatGPT
前往ChatGPT → 设置 → 应用和连接器 → 开发者模式 → 启用
然后:启用连接器 → 创建
填写:
Name: Local Files
URL: https://mcp.yourdomain.com
OAuth: YesChatGPT将自动注册并进行身份验证。
______________________________________________________________________
建筑学
简单的请求流程:
ChatGPT -> Cloudflare Tunnel (mcp.yourdomain.com) -> MCP Server (localhost:4000) -> Your FilesOAuth流程:
ChatGPT registers -> Gets client_id and client_secret -> Requests access token -> Uses token for API calls______________________________________________________________________
可用工具
ChatGPT可以使用这些MCP工具:
列出文件 - 列出目录中的所有文件
示例:“显示所有Python文件”
读取文件 - 读取文件的全部内容
示例:“阅读README.md文件”
搜索 - 按名称搜索文件
示例:“查找包含‘config’的文件”
获取(或“抓取”) - 通过路径获取文件
示例:“获取 src/main.py”
______________________________________________________________________
安全考虑事项
保护你的东西是:
- OAuth 2.0 防止未经授权的访问
- 文件永远不会离开您的机器(按需提供)
- Cloudflare Tunnel 对所有流量进行加密
- ChatGPT中未存储任何凭证
你应该做的事:
- 仅暴露你希望ChatGPT访问的文件夹
- 在开始之前,请仔细检查 BASE_DIR
- 使用强OAuth凭据
- 确保您的隧道凭据安全无虞
见 docs/SECURITY.md 以获取详细指南。
______________________________________________________________________
故障排除
ChatGPT 显示“424 依赖项失败”
检查服务器日志以查找实际错误。验证OAuth令牌是否有效。确保MCP响应格式正确。
隧道连接失败
验证DNS记录指向隧道。检查隧道是否正在运行 cloudflared tunnel info审查隧道日志。
服务器无法启动
检查端口4000是否可用 lsof -i :4000验证已安装的Python依赖项。检查.env文件是否存在且值正确。
见 docs/TROUBLESHOOTING.md 以获取完整指南。
______________________________________________________________________
systemd 安装(Linux)
对于自动启动和管理:
# Copy service files
cp setup/systemd/*.service ~/.config/systemd/user/
# Edit paths in service files
nano ~/.config/systemd/user/mcp-server.service
# Enable and start
systemctl --user daemon-reload
systemctl --user enable mcp-server mcp-tunnel
systemctl --user start mcp-server mcp-tunnel
# Check status
systemctl --user status mcp-server______________________________________________________________________
桌面启动器(Linux)
# Copy desktop files
cp setup/desktop/*.desktop ~/.local/share/applications/
# Update desktop database
update-desktop-database ~/.local/share/applications/现在,“启动MCP服务器”已出现在您的应用程序菜单中。
______________________________________________________________________
项目结构
.
├── server_mcp.py Main MCP server
├── requirements.txt Python dependencies
├── .env.example Environment template
├── setup/
│ ├── tunnel-config.yml.example
│ └── systemd/
│ ├── mcp-server.service
│ └── mcp-tunnel.service
└── docs/
├── SETUP.md Detailed setup guide
├── TROUBLESHOOTING.md Common issues
└── SECURITY.md Security best practices______________________________________________________________________
做出贡献
请随意克隆并修改以供您个人使用。欢迎提交拉取请求,但可能无法及时审核或合并。不保证一定会被接受。
许可证
MIT 许可证 - 详见 LICENSE 文件。
______________________________________________________________________
致谢
根据位于 https://modelcontextprotocol.io/ 的MCP协议规范构建
使用 Cloudflare Tunnel 实现安全访问:https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
实现了RFC 7591以支持动态客户端注册:https://tools.ietf.org/html/rfc7591
______________________________________________________________________
支持
文档:参见 docs/SETUP.md
按现状提供,不提供支持。
______________________________________________________________________
注: 这是一个独立项目,与OpenAI或Anthropic并无正式关联。
