Ollama MCP 服务器用于 Claude 代码
这个MCP(模型上下文协议)服务器将您的本地Ollama实例与Claude Code集成,使Claude能够将编码任务委托给您的本地模型(Gemma3、Mistral等),以最大限度地减少API令牌的使用。
它是如何工作的
克劳德·科德担任着 指挥者(或编曲者,在音乐领域)调用此MCP服务器提供的工具。这些工具在您本地的Ollama实例上运行,而Claude则根据需要对结果进行审查/优化。这种方法:
- ✅ 最大限度减少Anthropic API令牌的使用(使用文件感知工具可减少高达98.75%!)
- ✅ 利用您本地的计算资源
- ✅ 在任何Claude Code项目/会话中均可使用
- ✅ 允许Claude进行监督和纠正
可用工具
基于字符串的工具(将密码作为参数传递)
这些工具接受字符串形式的代码作为参数——当对话中已经包含代码时,这非常有用:
- ollama_生成代码 - 根据需求生成新代码
- ollama_解释代码 - 解释代码的工作原理
- ollama_代码审查 - 审查代码以查找问题并提出改进
- Ollama代码重构 - 重构代码以提高质量
- ollama修复代码 - 修复代码中的错误或缺陷
- ollama_write_tests 可以翻译为“Ollama 编写测试”或“为 Ollama 编写测试用例”,具体取决于上下文和语境。这里,“ollama”可能是一个特定的项目、库或框架的名称,而“write_tests”则表示编写测试的过程或任务 - 生成单元测试
- ollama通用任务 - 执行任何通用编码任务
文件感知工具(大幅节省令牌数量!)
这些工具直接在MCP服务器上读取文件,极大地减少了对话令牌的使用:
- ollama_review_file 翻译为中文是:“Ollama 评论文件” - 通过路径审查文件(与阅读+审查相比,节省约98.75%的标记)
- ollama_解释文件 - 通过路径解释一个文件
- ollama_分析文件 - 分析多个文件以理解其关系
- 基于上下文的Ollama代码生成 - 使用现有文件作为参考模式生成代码
安装说明
1. 安装依赖项
npm install2. 确保Ollama正在运行
确保Ollama正在运行 localhost:11434:
ollama serve确认您已安装相应的模型:
ollama list你应该能看到 gemma3:12b, gemma3:4b,或者您想使用的其他模型。默认模型是 gemma3:12b 和;与;带着 gemma3:4b 作为更简单任务的快速备用方案。
3. 配置Claude代码
将此MCP服务器添加到您的Claude Code配置中。配置文件的位置取决于您的操作系统:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS(苹果电脑操作系统):
~/Library/Application Support/Claude/claude_desktop_config.json - Linux(发音:/ˈlɪnʊks/):
~/.config/Claude/claude_desktop_config.json
在你的配置中添加以下内容(或与现有配置合并 mcpServers):
{
"mcpServers": {
"ollama": {
"command": "node",
"args": ["G:\\Projects\\OllamaClaude\\index.js"]
}
}
}注更新路径中的 args 以匹配您的实际安装位置。
4. 重启Claude代码
更新配置后,请重启Claude Code以使更改生效。
使用方法
配置完成后,Claude Code 将自动访问 Ollama 工具。您可以:
直接使用
请Claude使用特定工具:
- “使用ollama_generate_code来创建一个函数,该函数……”
- “使用ollama_review_code来检查这段代码中的问题”
自动编曲/自动编排
只需让Claude执行任务,它会自行决定何时将任务委托给Ollama:
- “编写一个函数来解析JSON”→ Claude 可能会委托给 Ollama
- “审查这段代码”→ 克劳德可能会先使用Ollama进行初步审查,然后添加见解
- “修复这个错误”→ Ollama尝试修复,Claude验证并在需要时进行修正
定制化
更改默认模型
编辑 index.js 并更新这些行(在文件的顶部附近):
const DEFAULT_MODEL = "gemma3:12b"; // Change to your preferred model
const FALLBACK_MODEL = "gemma3:4b"; // Faster model for simpler tasks值得考虑的热门Ollama模型:
gemma3:12b- 质量与速度的良好平衡(默认)gemma3:27b- 最高质量,速度较慢,需要更多显存(VRAM)gemma3:4b- 最快,适合简单任务qwen2.5-coder:7b- 专门用于编码mistral-small:latest- 速度与质量的良好平衡
修改工具提示
每个工具方法在 index.js 包含一个提示模板。您可以根据自己的特定模型进行自定义,以获得更好的结果。
添加新工具
通过以下方式添加新工具:
- 添加一个工具定义到
ListToolsRequestSchema处理程序(或处理器) - 创造一种新方法(比如
generateCode,reviewCode等 - 添加一个案例到
CallToolRequestSchema处理程序(或“处理器”)
故障排除
“无法连接到 Ollama”错误
- 确保Ollama正在运行:
ollama serve - 检查它是否在默认端口上:
http://localhost:11434 - 使用以下进行测试:
curl http://localhost:11434/api/tags
工具未在Claude代码中显示
- 验证配置路径是否正确
- 完全重启Claude代码
- 检查Claude Code日志中的MCP连接错误
响应缓慢/超时
- 预期行为在单GPU设置下,使用gemma3:12b的Ollama调用通常需要60-180秒
- 考虑为简单任务使用更快的模型(例如。,
gemma3:4b而不是gemma3:12b) - 调整超时设置
index.js第362行(当前为900000毫秒 = 15分钟) - 确保您的机器为模型提供了足够的资源
- 对于大文件,考虑使用更小的模型或将分析任务拆分成多个部分
示例工作流程
基本工作流程
- 用户询问“创建一个函数来验证电子邮件地址”
- 克劳德决定“这是一个代码生成任务,我将使用ollama_generate_code”
- Ollama生成初步代码实现
- 克劳德的评论检查代码,可能提出改进建议或修复方案
- 结果用户获得在Claude监督下由Ollama生成的代码
文件感知工作流(令牌保存器!)
- 用户询问“检查index.js中的代码是否存在安全问题”
- 克劳德打电话来了:
ollama_review_file带有文件路径且焦点为“安全” - MCP服务器直接读取 index.js(对话中不使用任何令牌!)
- Ollama 进行分析审查了约700行代码
- 克劳德(Claude)进行润色添加上下文或额外见解
- 代币储蓄与先将文件读入对话中相比,效率提高了约98.75%
多文件分析工作流程
- 用户询问“index.js 和 package.json 之间有什么关系?”
- 克劳德打电话来了:
ollama_analyze_files包含两个文件路径 - MCP服务器在服务器端读取两个文件
- Ollama进行分析识别依赖关系、模式、关系
- 结果无需通过Claude对话发送文件,即可跨文件获取洞察
这种混合方法结合了本地模型的速度和成本优势,以及Claude的智能和质量保证。
绩效期望
响应时间
- 小任务 (简单的代码片段):20-60秒
- 中等任务 (函数评论,文件分析):60-120秒
- 大型任务 (多个文件,复杂分析):120-180秒
响应时间取决于:
- 您的GPU/CPU性能
- 模型大小(
gemma3:4b比……快约3倍gemma3:12b,gemma3:27b(速度大约慢了2倍) - 任务复杂性
- 针对文件感知工具的文件大小
代币使用情况
- 传统方法阅读700行文件(2000个词)+ 复习(2000个词)= 4000个代币
- 文件感知方法呼叫
ollama_review_file路径为 = ~50个代币 - 储蓄“API”必须翻译为API
##
- 原文内容:: ~98.75% reduction in Claude API token usage!
- 译文内容:Claude API令牌使用量减少了98.75%!相较于纯本地或纯云方案的优势
- 对比 Pure Ollama克劳德提供架构指导,捕捉错误,并确保质量
对比 Pure Claude
OllamaClaude/
├── index.js # Main MCP server implementation
├── package.json # Node.js dependencies
├── README.md # This file
├── test.md # Test cases and validation guide
└── .gitignore # Git ignore patterns在常规编码任务中实现显著的代币节省(高达98.75%!)
两者之最佳(或结合两者之长)
- 本地计算负责繁重任务,Claude负责协调和优化项目结构
- 贡献与未来改进值得考虑的潜在改进:
*.js缓存 - 缓存文件内容用于重复操作Glob 支持
- 传递模式如分析多个文件
- 流式响应流式输出Ollama结果,以提升感知性能
自动上下文 test.md 自动查找并包含相关文件
