使用说明
Windsurf llama.cpp MCP大桥
一个小Python MCP stdio服务器 这让 帆板运动 打电话给当地人 llama.cpp llama-server 穿过 /completion 终点。
Windsurf -> MCP over stdio -> Python bridge -> llama.cpp llama-server -> local GGUF model
该项目旨在用于可重复的本地AI开发人员工具实验、低VRAM机器和客户工程风格的调试。
工作的
- 用于Windsurf的MCP stdio集成。
- 本地
llama.cpp/completion电话。 complete用于一般完井的工具。review_code代码审查提示工具。llama_health端点可达性检查工具。- 安全日志记录:所有日志都转到
stderr;JSON-RPC响应保持不变stdout. - 低VRAM
llama-server启动脚本。
需求
- Python 3.11+
requests- A建成
llama.cppllama-server二进制 - 局部GGUF模型
- 支持MCP的风帆
安装
git clone https://github.com/waqasm86/windsurf-llama-cpp-mcp-bridge.git
cd windsurf-llama-cpp-mcp-bridge
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r mcp-server/requirements.txt
启动llama.cpp
复制示例配置并编辑路径:
cp llama/config.example.env llama/config.env
nano llama/config.env
然后启动本地模型服务器:
./llama/start_llama_server.sh
默认端点为:
http://127.0.0.1:8090/completion
快速手动测试:
curl -s http://127.0.0.1:8090/completion \
-H 'Content-Type: application/json' \
-d '{"prompt":"Say hello in one line.","n_predict":32,"temperature":0.2,"stream":false}'
配置Windsurf
复制 windsurf-config/mcp.json 进入您的Windsurf MCP配置位置,然后将此占位符替换为您的真实绝对路径:
/ABSOLUTE/PATH/TO/windsurf-llama-cpp-mcp-bridge/mcp-server/server_stdio.py
配置示例:
{
"mcpServers": {
"local-llama-stdio": {
"command": "/usr/bin/env",
"args": [
"python3.11",
"-u",
"/ABSOLUTE/PATH/TO/windsurf-llama-cpp-mcp-bridge/mcp-server/server_stdio.py"
],
"env": {
"PYTHONUNBUFFERED": "1",
"LLAMA_COMPLETION_URL": "http://127.0.0.1:8090/completion",
"LLAMA_TIMEOUT_S": "120"
},
"autoRestart": true,
"disabled": false
}
}
}
编辑MCP配置后重新启动Windsurf。
无风浪条件下的烟雾测试
测试初始化和工具发现:
./mcp-server/smoke_test_stdio.sh
测试实际完成后 llama-server 正在运行:
cd mcp-server
printf '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"complete","arguments":{"prompt":"Say hello in one line.","max_tokens":64,"temperature":0.2}}}\n' \
| LLAMA_COMPLETION_URL="http://127.0.0.1:8090/completion" python3.11 -u server_stdio.py
可用工具
complete
输入:
{
"prompt": "Explain MCP in one paragraph.",
"max_tokens": 256,
"temperature": 0.7
}
review_code
输入:
{
"language": "python",
"code": "def add(a,b): return a+b",
"max_tokens": 512
}
llama_health
检查是否已配置 /completion 端点是可访问的。
故障排除
| 症状 | 可能原因 | 修复 |
|---|---|---|
| Windsurf显示没有工具 | 路径错误 mcp.json |
使用绝对路径 server_stdio.py |
| MCP进程启动然后退出 | 缺少Python依赖关系 | 运行 pip install -r mcp-server/requirements.txt |
| 工具调用表示llama.cpp无法访问 | llama-server 未运行或端口不匹配 |
启动 ./llama/start_llama_server.sh 并保持港口 8090 对齐 |
| JSON损坏/无响应 | 日志打印到stdout | 保持所有日志打开 stderr 只有 |
| CUDA内存不足 | GPU层太多或上下文太大 | 减少 GPU_LAYERS, CTX_SIZE,或 BATCH_SIZE 在 llama/config.env |
| 生成速度慢 | CPU回退或低端GPU | 减小模型大小、使用较小的量化或较低的上下文/批大小 |
客户工程演示说明
此仓库有意支持可调试性而非复杂性。它展示了AI编码工具集成的完整部署路径:
- 启动本地模型运行时。
- 在Windsurf上注册MCP stdio服务器。
- 将工具暴露到IDE。
- 将工具调用路由到本地推理端点。
- 返回结构化MCP响应。
- 通过清除日志和冒烟测试调试常见的部署失败。
许可证
添加您喜欢的许可证,例如MIT。