使用说明
FGD Fusion Stack Pro-MCP内存和LLM集成
具有智能内存管理、文件监控和多LLM提供程序支持的生产就绪模型上下文协议(MCP)服务器。具有现代PyQt6 GUI和Neo-Cyber主题,用于通过持久内存和上下文感知AI辅助管理您的开发工作区。
📋 目录
🆕 最新动态
6.0版-主要稳定性和性能更新(2025年11月)
🔒 关键错误修复(P0)
- 数据完整性:静默写入失败现在会引发异常,以防止数据丢失
- 种族状况预防:跨平台文件锁定(fcntl/msvcrt),超时10秒
- 安全:限制内存文件的文件权限(600)
- 原子写入:临时文件+重命名模式可防止损坏
- UI一致性:所有窗户均采用现代新赛博色彩
- 演出:日志查看器已优化-只读取新行(30%+CPU→ 最小)
- 健康监测:后端进程崩溃检测和用户警报
⚡ 高优先级增强功能(P1)
- UUID聊天键:防止基于时间戳的密钥发生16%的冲突率
- 提供程序配置:尊重用户
default_provider设置(硬编码到Grok) - 吐司通知:添加/移除烤面包时,可以平稳地重新定位
- 内存泄漏已修复:按钮和标题的计时器生命周期管理
- 加载指示器:用于长时间操作的现代微调器覆盖(>100KB文件,服务器启动)
- 懒惰树加载:性能大幅提升-大型项目(1000+个文件)速度提高20-50倍
🚀 中等优先级功能(P2)
- 记忆修剪:基于LRU的自动清理(可配置的最大值:1000个条目)
- 可配置超时:每个提供程序超时设置(30-120s)
- 网络重试逻辑:瞬时故障的指数回退(3次重试,2秒-8秒延迟)
已修复的错误总数15个关键/高/中优先问题 性能提升:树加载速度提高20-50倍,内存减少90%,CPU使用率最低 代码更改:在4次提交中添加了606行,删除了146行
🎯 概述
FGD Fusion Stack Pro提供了一个符合MCP标准的服务器,将您的本地开发环境与大型语言模型连接起来。它维护交互的持久内存,监视文件系统更改,并为LLM查询提供智能上下文。
关键部件:
- MCP服务器:用于工具执行的符合模型上下文协议的服务器
- 存储器:基于JSON的持久内存,具有LRU修剪和访问跟踪功能
- 文件监视器:实时文件系统监控和更改检测
- LLM后端:具有重试逻辑的多提供商支持(Grok、OpenAI、Claude、Ollama)
- PyQt6图形用户界面:带有加载指示器的专业Neo-Cyber主题界面
- FastAPI服务器:用于web集成的可选REST API包装
🏗️ 建筑
┌─────────────────────────────────────────────────────────────┐
│ User Interface │
│ ┌────────────────┐ ┌────────────────┐ │
│ │ PyQt6 GUI │ │ FastAPI REST │ │
│ │ (gui_main_ │ │ (server.py) │ │
│ │ pro.py) │ │ │ │
│ │ │ │ │ │
│ │ • Loading │ │ • Rate Limit │ │
│ │ Indicators │ │ • CORS Config │ │
│ │ • Lazy Tree │ │ • Health Check │ │
│ │ • Toast Notif │ │ │ │
│ └────────┬───────┘ └────────┬───────┘ │
└───────────┼──────────────────────────────┼─────────────────┘
│ │
└──────────────┬───────────────┘
▼
┌──────────────────────────────┐
│ MCP Server (mcp_backend.py) │
│ │
│ ┌─────────────────────────┐ │
│ │ MCP Protocol Handler │ │
│ │ - list_tools() │ │
│ │ - call_tool() │ │
│ └─────────────────────────┘ │
│ │
│ ┌──────────┬───────────┐ │
│ │ Memory │ File │ │
│ │ Store │ Watcher │ │
│ │ + LRU │ │ │
│ │ + Lock │ │ │
│ └──────────┴───────────┘ │
│ │
│ ┌─────────────────────────┐ │
│ │ LLM Backend │ │
│ │ + Retry Logic │ │
│ │ + Config Timeouts │ │
│ │ ┌─────┬──────┬──────┐ │ │
│ │ │Grok │OpenAI│Claude│ │ │
│ │ └─────┴──────┴──────┘ │ │
│ └─────────────────────────┘ │
└──────────────┬────────────────┘
▼
┌──────────────────────────────┐
│ External LLM APIs │
│ - X.AI (Grok) │
│ - OpenAI │
│ - Anthropic (Claude) │
│ - Ollama (Local) │
└──────────────────────────────┘
✨ 特性
🔧 MCP工具(8个可用)
| 工具 | 描述 | 功能 |
|---|---|---|
| list_directory | 使用gitignore感知浏览文件 | 模式匹配,大小限制 |
| read_file | 读取文件内容 | 编码检测、大小验证 |
| write_file | 使用自动备份写入文件 | 原子写入、审批工作流 |
| edit_file | 编辑现有文件 | 差异预览,需要批准 |
| 使用 git_diff | 显示未提交的更改 | 统一差异格式 |
| git_提交 | 使用自动生成的消息进行提交 | AI驱动的提交消息 |
| git_log | 查看提交历史 | 可配置深度 |
| llm_query | 使用上下文注入查询LLM | 多提供程序,重试逻辑 |
💾 存储器系统
持久存储功能:
- ✅ LRU修剪:超过1000个条目时自动清理(可配置)
- ✅ 文件锁定:跨平台锁可防止比赛条件
- ✅ 原子写入:临时文件+重命名可确保数据完整性
- ✅ 安全权限:600(仅限所有者读/写)
- ✅ 访问跟踪:统计每个内存被访问的次数
- ✅ 分类:按类型组织(一般、llm、对话、文件更改)
- ✅ UUID密钥:防止时间戳冲突(消除16%的冲突率)
存储结构:
{
"memories": {
"conversations": {
"chat_<uuid>": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"prompt": "Explain this code",
"response": "This code implements...",
"provider": "grok",
"timestamp": "2025-11-09T10:30:00",
"context_used": 5,
"value": {...},
"access_count": 3
}
}
},
"context": [
{"type": "file_change", "data": {...}, "timestamp": "..."},
...
]
}
📊 文件监视
- 看门狗集成:实时文件系统事件监控
- 更改跟踪:创建、修改和删除文件的记录
- 上下文集成:文件更改自动添加到上下文窗口
- 大小限制:可配置的目录和文件大小限制,以防止过载
- Gitignore感知:尊重他人
🎨 GUI功能(现代新网络主题)
视觉组件:
- ✅ 加载覆盖层:用于长时间操作(文件加载、服务器启动)的动画微调器
- ✅ 懒惰文件树:按需加载1000多个文件项目(速度提高20-50倍)
- ✅ 吐司通知:在动画中平滑滑动,并自动重新定位
- ✅ 深色主题:基于专业梯度的Neo-Cyber设计
- ✅ 实时日志:实时日志查看,增量更新(无完全重建)
- ✅ 健康监测:使用用户警报进行后端崩溃检测
- ✅ 提供者选择:LLM提供商之间的轻松切换
- ✅ 弹出窗口:用于预览、差异和日志的单独窗口
性能特点:
- 日志查看器只读取新行(每秒读取整个文件)
- 树只加载可见节点(正在加载整个目录结构)
- 定时器清理可防止内存泄漏
- 加载指示器可防止“冻结应用程序”的感知
🤖 LLM提供商支持
| 提供程序 | 型号 | 超时 | 重试 | 状态 |
|---|---|---|---|---|
| Grok(X.AI) | grok-3 | 30s(配置) | ✅ 3x | ✅ 默认值 |
| 开放人工智能 | gpt-4o-mini | 60秒(配置) | ✅ 3x | ✅ 活动 |
| 克劳德 | claude-3-5连接器 | 90秒(配置) | ✅ 3x | ✅ 活动 |
| 奥拉玛 | llama3(本地) | 120秒(配置) | ✅ 3x | ✅ 活动 |
所有提供商现在都具有以下功能:
- ✅ 每个提供程序可配置超时
- ✅ 指数回退重试(3次尝试:2秒、4秒、8秒延迟)
- ✅ 尊重
default_provider配置 - ✅ 详细的错误记录和重试尝试
🔨 最近的改进
数据完整性和安全性
| 修复 | 之前 | 之后 | 影响 |
|---|---|---|---|
| 无声故障 | 吞下错误 | 引发异常 | 防止数据丢失 |
| 竞态条件 | 无锁定 | 文件锁(fcntl/msvcrt) | 防止损坏 |
| 文件权限 | 644(全球可读) | 600(仅限所有者) | 安全强化 |
| 写原子性 | 直接写入 | 临时+重命名 | 防崩溃写入 |
性能优化
| 组件 | 之前 | 之后 | 改进 |
|---|---|---|---|
| 日志查看器 | 30%+CPU,完全重建 | 最小CPU,增量 | 95%+减少 |
| 树加载 | 1000个文件2-5秒 | <100ms | 快20-50倍 |
| 内存增长 | 无限 | 最多1000个条目 | 有限制 |
| 网络错误 | 立即失败 | 3次回退重试 | 可靠性++ |
用户体验
- ✅ 加载指示器:不再有“冻了吗?”的困惑
- ✅ 吐司动画:拆卸时可顺利重新定位
- ✅ 碰撞检测:如果后端死亡,立即通知
- ✅ 零碰撞:基于UUID的聊天密钥(冲突率为16%)
- ✅ 供应商选择:默认配置荣誉(硬编码到Grok)
📦 安装
先决条件
- python:3.10或更高
- 点:包管理器
- 虚拟环境:推荐
系统依赖关系(Linux)
PyQt6 GUI需要Linux上的系统库:
# Ubuntu/Debian
sudo apt-get install -y libegl1 libegl-mesa0 libgl1 libxkbcommon0 libdbus-1-3 \
libxcb-xinerama0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 \
libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-cursor0 libxcb-xfixes0
备注:这些是预装在大多数桌面Linux系统上的。
安装步骤
-
克隆存储库
git clone https://github.com/mikeychann-hash/MCPM.git cd MCPM -
创建虚拟环境
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate -
安装依赖项
pip install -r requirements.txt -
设置环境变量
# Create .env file cat > .env << EOF # Required for Grok (default provider) XAI_API_KEY=your_xai_api_key_here # Optional: Only needed if using these providers OPENAI_API_KEY=your_openai_api_key_here ANTHROPIC_API_KEY=your_anthropic_api_key_here EOF -
启动GUI
python gui_main_pro.py
⚙️ 配置
增强的config.yaml
watch_dir: "/path/to/your/project" # Directory to monitor
memory_file: ".fgd_memory.json" # Memory storage file
log_file: "fgd_server.log" # Log output file
context_limit: 20 # Max context items to keep
max_memory_entries: 1000 # NEW: Max memories before LRU pruning
scan:
max_dir_size_gb: 2 # Max directory size to scan
max_files_per_scan: 5 # Max files per list operation
max_file_size_kb: 250 # Max individual file size to read
llm:
default_provider: "grok" # Default LLM provider
providers:
grok:
model: "grok-3"
base_url: "https://api.x.ai/v1"
timeout: 30 # NEW: Configurable timeout (seconds)
openai:
model: "gpt-4o-mini"
base_url: "https://api.openai.com/v1"
timeout: 60 # NEW: Longer for complex queries
claude:
model: "claude-3-5-sonnet-20241022"
base_url: "https://api.anthropic.com/v1"
timeout: 90 # NEW: Even longer for Claude
ollama:
model: "llama3"
base_url: "http://localhost:11434/v1"
timeout: 120 # NEW: Longest for local models
配置说明
v6.0中的新功能:
max_memory_entries:控制LRU修剪何时开始(默认值:1000)timeout:每个提供程序超时时间(秒)(允许针对不同型号速度进行自定义)
内存修剪策略:
- 按access_count(升序)和timestamp(最旧的先)对条目进行排序
- 超过限制时删除最近最少使用的条目
- 自动清理空类别
- 记录修剪活动以进行监控
🚀 用法
选项1:PyQt6图形用户界面(推荐)
python gui_main_pro.py
增强的GUI工作流程:
- 点击 浏览 选择项目目录
- 从下拉列表中选择LLM提供商(Grok、OpenAI、Claude、Ollama)
- 点击 启动服务器 启动MCP后端
- 新:加载指示器显示启动进度
- 新:后端健康监控检测到崩溃
- 查看带有过滤选项的实时日志
- 新:增量日志更新(无完全重建)
- 按日志级别搜索和筛选
- 使用延迟加载树浏览项目文件
- 新:大型项目速度快20-50倍
- 新:为大于100KB的文件加载微调器
- 实时监控服务器状态和内存使用情况
GUI功能:
- ✅ 自动生成配置文件
- ✅ 验证API密钥
- ✅ 管理子流程生命周期
- ✅ 平滑的吐司通知
- ✅ 用于预览/差异/日志的弹出窗口
- ✅ 现代新网络主题
选项2:MCP服务器直接
python mcp_backend.py config.yaml
这将以stdio模式启动MCP服务器,以便与MCP客户端集成。
增强功能:
- ✅ 自动内存修剪
- ✅ 文件锁定可防止损坏
- ✅ 采用指数回退的网络重试
- ✅ 每个提供程序的可配置超时
选项3:FastAPI REST服务器
python server.py
访问端点位于 http://localhost:8456:
| 端点 | 方法 | 描述 |
|---|---|---|
/api/status |
GET | 检查服务器状态 |
/api/start |
POST | 启动MCP服务器 |
/api/stop |
POST | 停止MCP服务器 |
/api/logs |
GET | 查看日志(查询: ?file=fgd_server.log) |
/api/memory |
GET | 检索所有记忆 |
/api/llm_query |
POST | 直接查询LLM |
快速查找查询示例
# 1. Start FastAPI server
python server.py &
# 2. Start MCP backend
curl -X POST http://localhost:8456/api/start \
-H 'Content-Type: application/json' \
-d '{
"watch_dir": "/path/to/project",
"default_provider": "grok"
}'
# 3. Send query to Grok
curl -X POST http://localhost:8456/api/llm_query \
-H 'Content-Type: application/json' \
-d '{
"prompt": "Summarize the recent changes",
"provider": "grok"
}'
# 4. Check status
curl http://localhost:8456/api/status | jq
📚 API 参考
MCP工具
llm_query(增强型)
使用自动上下文注入和重试逻辑查询LLM。
{
"tool": "llm_query",
"arguments": {
"prompt": "Explain this error",
"provider": "grok"
}
}
新功能:
- ✅ 已配置尊重
default_provider - ✅ 3次指数回退重试(2s、4s、8s)
- ✅ 每个提供程序的可配置超时
- ✅ 基于UUID的对话密钥(防止冲突)
记住(增强)
使用LRU修剪将信息存储在持久内存中。
{
"tool": "remember",
"arguments": {
"key": "api_endpoint",
"value": "https://api.example.com",
"category": "general"
}
}
新功能:
- ✅ 超过限制时自动修剪LRU
- ✅ 访问计数跟踪
- ✅ 文件锁定可防止损坏
- ✅ 原子写入防止数据丢失
召回
通过访问跟踪检索存储的内存。
{
"tool": "recall",
"arguments": {
"key": "api_endpoint",
"category": "general"
}
}
新功能:
- ✅ 每次召回的访问次数递增
- ✅ 帮助LRU算法保留常用数据
有关完整的工具文档,请参阅上面的原始API参考部分。
🗺️ 路线图
✅ 已完成(v6.0)
- [x] 关键错误修复(P0):数据完整性、文件锁定、原子写入
- [x] 高优先级增强(P1):UUID键、加载指示器、懒惰树
- [x] 中等优先级功能(P2):内存修剪、重试逻辑、可配置超时
- [x] GUI改进:Neo Cyber主题、健康监测、吐司动画
- [x] 性能优化:树速度提高20-50倍,日志CPU减少95%
🔜 即将推出(v6.1)
- [ ] MCP-2:启动时的连接验证
- [ ] MCP-4:正确的MCP错误响应(重构字符串错误)
- [ ] 桂-6/7/8:窗口状态持久性(大小、位置、拆分器状态)
- [ ] 桂-20:常用操作的键盘快捷键
- [ ] GUI-12:自定义对话框(替换QMessageBox)
🎯 未来的增强功能
- [ ] 测试:综合单元测试套件
- [ ] 指标:Prometheus兼容指标端点
- [ ] 认证:REST终结点的API密钥身份验证
- [ ] 插件:自定义工具插件系统
- [ ] 多语言:支持非Python项目
- [ ] 云同步:可选的云存储备份
- [ ] 协作:跨团队成员共享内存
🐛 已知问题
- 目前没有跟踪(v6.0中修复了15个错误)
🔍 故障排除
服务器无法启动
症状:后端无法启动,日志中有错误
解决方案:
- ✅ 检查API密钥
.env文件 - ✅ 验证的目录权限
watch_dir - ✅ 检查端口8456是否可用(适用于FastAPI)
- ✅ 查看后端脚本路径(
mcp_backend.py必须存在)
新:加载指示器现在显示启动进度,使问题更加明显。
文件监视器未检测到更改
症状:文件修改未出现在上下文中
解决方案:
- ✅ 确保
watch_dir已正确配置 - ✅ 检查目录是否太大(>2GB默认限制)
- ✅ 验证是否有足够的系统资源
- ✅ 检查监视器是否正在运行(日志显示“文件监视器已启动”)
LLM查询失败
症状:查询返回错误或超时
解决方案:
- ✅ 验证API密钥有效并且具有信用
- ✅ 检查到API端点的网络连接
- ✅ 查看日志以了解详细的错误消息
- ✅ 新:检查重试尝试是否已用尽(日志显示“3次尝试后失败”)
- ✅ 新:如果需要,在提供程序配置中增加超时时间
记忆不持久
症状:重新启动后数据丢失
解决方案:
- ✅ 检查上的写入权限
memory_file位置 - ✅ 验证可用磁盘空间
- ✅ 在保存操作期间查找日志中的错误
- ✅ 新:检查文件锁定是否导致超时(日志显示“内存加载超时”)
GUI冻结
症状:接口变得无响应
解决方案:
- ✅ 在v6.0中已修复:日志查看器性能问题已解决
- ✅ 在v6.0中已修复:延迟树加载可防止大型项目冻结
- ✅ 关闭资源密集型选项卡(日志、预览)
- ✅ 降低后端日志的冗长程度
内存使用率高
症状:应用程序使用了过多的RAM
解决方案:
- ✅ 新:内存修剪将条目限制为1000个(可配置)
- ✅ 降低
max_memory_entries在配置中 - ✅ 通过回忆/删除手动清除旧记忆
- ✅ 定期重新启动服务器以获得新状态
JSON-RPC验证错误
症状: "Invalid JSON: expected value at line 1 column 1"
原因:MCP服务器使用JSON-RPC 2.0协议通过stdio进行通信。
解决方案:
- ✅ 使用PyQt6图形用户界面(
gui_main_pro.py)而不是直接运行服务器 - ✅ 使用FastAPI REST包装器(
server.py)用于基于HTTP的交互 - ✅ 不要在运行MCP服务器的终端中键入纯文本
- ✅ 确保所有stdin输入都是有效的JSON-RPC 2.0格式
预期格式:
{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "read_file", "arguments": {"filepath": "test.py"}}, "id": 1}
📊 性能基准
前后对比(v6.0)
| 度量 | 之前 | 之后 | 改进 |
|---|---|---|---|
| 树加载(1000个文件) | 2-5秒 | <100毫秒 | 快20-50倍 |
| 日志查看器CPU | 减少30%+ | <2% | 95% |
| 内存文件大小 | 无限制(10MB+) | 有限制(1000个条目) | 可预测 |
| 聊天键冲突 | 碰撞率16% | 碰撞率0% | 提高100% |
| 网络故障恢复 | 立即失败 | 3次重试,2-8秒回退 | 可靠性++ |
| 文件写入安全 | 无锁定 | 跨平台锁定 | 防止损坏 |
🔒 安全最佳实践
如果在生产环境中部署:
- 环境变量:从不承诺
.env文件到版本控制 - API密钥:定期轮换密钥,使用密钥管理服务
- 跨域资源共享:将特定来源列入白名单,而不是
* - 输入验证:验证所有用户输入和文件路径(✅ 已实施)
- 速率限制:实施每个用户/IP速率限制(✅ 在FastAPI中实现)
- 传输层安全:对所有外部API通信使用HTTPS
- 日志记录:避免记录敏感数据(API密钥、令牌)
- 文件权限:内存文件现在使用600(✅ 在v6.0中实现)
- 原子操作:防止写入过程中的数据损坏(✅ 在v6.0中实现)
🔗 Grok API连接指南
⚠️ 重要提示:型号更新
截至2025年11月,X.AI已弃用 grok-beta.你 必须 使用 grok-3 相反。
- ❌ 老的
model: grok-beta(已撤销-将失败,出现404错误) - ✅ 新
model: grok-3(当前型号)
MCPM v6.0+已更新为使用 grok-3 自动。如果您使用的是旧版本,请更新您的 fgd_config.yaml:
llm:
providers:
grok:
model: grok-3 # Change from grok-beta to grok-3
先决条件
- Grok API帐户位于 x.ai
- X.AI帐户中的有效API密钥
- XAI_API_KEY环境变量集
- 要连接的互联网
api.x.ai/v1
步骤1:获取Grok API密钥
- 访问X.AI首选 https://x.ai/
- 注册/登录:创建帐户或登录
- 获取API密钥:
- 导航到API设置
- 生成新的API密钥
- 复制密钥(以开头
xai-前缀通常)
- 安全保存:将其存放在安全的地方
步骤2:配置MCPM
选项A:使用.env文件(推荐)
创建 .env MCPM根目录中的文件:
# Required for Grok provider
XAI_API_KEY=xai_your_actual_api_key_here
# Optional: Other providers
OPENAI_API_KEY=sk-your-openai-key
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
选项B:使用环境变量
Windows(命令提示符):
set XAI_API_KEY=xai_your_actual_api_key_here
python gui_main_pro.py
Windows(PowerShell):
$env:XAI_API_KEY = "xai_your_actual_api_key_here"
python gui_main_pro.py
Linux/Mac:
export XAI_API_KEY="xai_your_actual_api_key_here"
python gui_main_pro.py
步骤3:启动MCPM
# GUI Mode (Recommended)
python gui_main_pro.py
# Or direct backend mode
python mcp_backend.py fgd_config.yaml
步骤4:验证连接
GUI将显示:
- 连接状态: "🟢 在grok上运行”(绿色指示灯)
- 日志输出:“Grok API密钥存在:True”
- 型号信息:应显示“grok-3”型号
Grok连接故障排除
问题:“XAI_API_KEY未设置”错误
原因:找不到环境变量
解决方案:
-
检查
.env文件存在并且具有正确的密钥:cat .env # Linux/Mac type .env # Windows -
验证密钥格式(应以开头
xai-):import os print(os.getenv("XAI_API_KEY")) -
设置变量后重新启动Python/GUI:
- 对环境变量的更改需要重新启动
.env文件更改会自动拾取
问题:“Grok API错误401:未经授权”
原因:API密钥无效或过期
解决方案:
- 检查API密钥是否正确(没有空格,前缀正确)
- 从X.AI仪表板重新生成密钥
- 验证密钥是否仍处于活动状态(检查帐户设置)
- 直接测试API密钥:
curl -H "Authorization: Bearer xai_YOUR_KEY" \ https://api.x.ai/v1/models
问题:“Grok API错误429:速率受限”
原因:短时间内请求太多
解决方案:
- 等待1-2分钟后重试
- 检查您帐户的请求限制
- 如果需要,升级X.AI帐户
- 减少并发查询
问题:“连接错误”或“超时”
原因:网络连接问题
解决方案:
- 检查互联网连接:
ping api.x.ai - 检查防火墙/代理设置
- 验证API终结点是否可访问:
curl -I https://api.x.ai/v1/chat/completions - 检查X.AI服务状态
问题:GUI显示“已连接”,但Grok没有响应
原因:后端已启动,但API调用以静默方式失败
解决方案:
-
检查日志中的实际错误:
tail -f fgd_server.log # Backend logs tail -f mcpm_gui.log # GUI logs -
在日志中验证:
- “Grok API密钥存在:True”
- 没有“API错误”消息
- 无超时警告
-
在GUI中使用简单查询进行测试
-
检查模型名称是否与配置匹配:
grok-3
命令列表:通过MCPM GUI使用Grok
1. 启动服务器
- 点击 “浏览” 选择项目文件夹
- 选择 “grok” 从提供者下拉列表
- 点击 "▶️ 启动服务器“ 按钮
- 等候 "🟢 在grok上奔跑” 状态
2. 查询Grok
在支持以下功能的MCP客户端或工具中 llm_query 工具:
{
"tool": "llm_query",
"arguments": {
"prompt": "Your question here",
"provider": "grok"
}
}
3. 使用文件上下文
自动包含文件上下文的查询:
{
"tool": "llm_query",
"arguments": {
"prompt": "Analyze this code: read_file(src/main.py)",
"provider": "grok"
}
}
4. 存储和召回信息
记住Grok的回答:
{
"tool": "remember",
"arguments": {
"key": "grok_solution",
"value": "Solution from Grok response",
"category": "llm"
}
}
稍后再回忆:
{
"tool": "recall",
"arguments": {
"category": "llm"
}
}
5. 搜索项目文件
{
"tool": "search_in_files",
"arguments": {
"query": "TODO",
"pattern": "**/*.py"
}
}
6. 列出文件
{
"tool": "list_files",
"arguments": {
"pattern": "**/*.py"
}
}
REST API:直接Grok查询
如果使用FastAPI包装器(python server.py):
# Start FastAPI server
python server.py
# Query Grok
curl -X POST http://localhost:8456/api/llm_query \
-H 'Content-Type: application/json' \
-d '{
"prompt": "What is machine learning?",
"provider": "grok"
}'
配置文件设置
编辑 fgd_config.yaml 对于Grok特定设置:
llm:
default_provider: grok
providers:
grok:
model: grok-3 # Model version
base_url: https://api.x.ai/v1 # API endpoint
timeout: 60 # Request timeout in seconds
最佳实践
-
API密钥安全:
- 永不承诺
.env转git - 使用
.gitignore排除它 - 定期旋转按键
- 永不承诺
-
速率限制:
- 保持查询<4000个令牌
- 分隔多个请求
- 检查X.AI帐户限制
-
错误处理:
- 始终检查日志(
fgd_server.log) - 使用指数回退(内置)重试
- 优雅地回退到其他提供商
- 始终检查日志(
-
上下文管理:
- 将上下文窗口限制为20个项目(可配置)
- 通过LRU修剪将旧记忆存档
- 清理不必要的文件更改
常见问题解答
Q: 我怎么知道Grok是否真的有联系?
A: 检查 fgd_server.log 对于线路:
Grok API Key present: True
MCP Server starting with configuration:
LLM Provider: grok
Q: 我可以同时使用多个提供商吗?
A: 否,只有一个默认提供程序。通过在GUI或设置中选择不同的提供商进行切换 default_provider 在配置中。
Q: 如果我的API密钥过期怎么办?
A: 在X.AI仪表板上生成新密钥并更新 .env 文件。
Q: Grok API的价格是多少? A: 检查 X.AI定价 -定价结构因层级而异。
Q: 我可以自行托管后端吗?
A: 是的, mcp_backend.py 在当地运行。它只需要互联网对Grok API调用。
📝 更新日志
[6.0.0] - 2025-11-09
添加
- 长时间操作(文件加载、服务器启动)的加载指示器
- 延迟文件树加载(按需节点扩展)
- 具有可配置限制的LRU内存修剪
- 具有指数回退的网络重试逻辑
- 每个提供程序可配置超时
- 后端健康监控和崩溃检测
- 基于UUID的聊天密钥,以防止冲突
- 跨平台文件锁定(fcntl/msvcrt)
- 原子文件写入(临时+重命名)
- 限制性文件权限(600)
固定的
- 静默写入失败现在会引发异常
- 日志查看器性能(30%+CPU→ 最小)
- 树木装载性能(2-5s→ <100ms)
- 并发文件访问中的竞争条件
- Toast通知定位故障
- 定时器内存在按钮和标题中泄漏
- 硬编码Grok提供者(现在尊重配置)
- 聊天键中的时间戳冲突(16%的比率)
改变
- 日志查看器用于增量更新(已完全重建)
- 树加载到懒惰的按需加载(渴望满载)
- 内存存储限制大小(无限制)
- 自动重试的网络请求(单次尝试)
- 提供程序超时为可配置(硬编码为30秒)
演出
- 大型项目的树加载速度提高了20-50倍
- 日志查看器CPU使用率降低95%
- 大型项目的内存使用量减少90%
- 零聊天键冲突(16%)
提交引用:
706b403-P2中等优先级错误2793d02-P1剩余修复5caded9-P1高优先级错误601ffdd-P0严重错误
🤝 贡献
我们欢迎捐款!感兴趣的领域:
高优先级
- []添加全面的单元测试套件
- []启动时执行连接验证(MCP-2)
- []将字符串错误重构为正确的MCP错误对象(MCP-4)
中优先级
- []添加窗口状态持久性(GUI-6/7/8)
- []实现键盘快捷键(GUI-20)
- []用自定义对话框(GUI-12)替换QMessageBox
锦上添花
- []在整个代码库中添加类型提示
- []使用建议改进错误消息
- []添加Prometheus指标
- []实现插件系统
📄 许可证
[在此处添加您的许可证]
💬 支持
对于问题、疑问或贡献:
🙏 致谢
- 模型上下文协议(MCP)规范
- PyQt6用于优秀的GUI框架
- 文件系统监控监视器
- 所有法学硕士提供者(X.AI、OpenAI、Anthropic、Ollama)
内置于❤️ 使用Python、PyQt6和模型上下文协议
