本地模型管理服务器

Ollama MCP Server是一个自包含的模型上下文协议服务器,用于本地Ollama管理,提供模型列表、聊天、服务器控制等功能,支持跨平台和多GPU配置。

  • by paolodalprato
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 paolodalprato/ollama-mcp-server

使用说明

Ollama MCP服务器

一个自给自足的 模型上下文协议(MCP)服务器 在Claude AI的协助下开发的Ollama本地管理系统。功能包括列出本地模型、聊天、启动/停止服务器,以及一个“本地模型顾问”,为给定任务建议最佳的本地模型。该服务器旨在成为一个健壮、无依赖性和跨平台的工具,用于管理本地Ollama实例。

⚠️ 当前测试状态

目前正在测试:配备NVIDIA RTX 4090的Windows 11
状态:Windows测试版,其他平台需要测试
跨平台代码:已为Linux和macOS做好准备,但需要社区测试
GPU支持:NVIDIA经过全面测试,AMD/Intel/Apple Silicon已实施,但需要验证

我们欢迎不同平台和硬件配置的测试人员!请通过GitHub Issues报告您的体验。

🎯 主要特点

🔧 自给自足的架构

  • 零外部依赖:不需要外部MCP服务器
  • MIT许可证就绪:所有内部开发并获得适当许可的代码
  • 企业级:专业的错误处理和可操作的故障排除

🌐 通用兼容性

  • 交叉平台的:Windows、Linux、macOS,具有自动平台检测功能
  • 多GPU支持:NVIDIA、AMD、Intel检测,具有供应商特定的优化
  • 智能安装发现:跨平台自动检测Olama

⚡ 完成当地Ollama管理

  • 模型操作:列出、建议和删除本地模型。
  • 服务器控件:通过智能流程管理启动和监控Ollama服务器。
  • 直接聊天:与任何本地安装的模型进行通信。
  • 系统分析:评估硬件兼容性并监控资源。

🚀 快速开始

安装

git clone https://github.com/paolodalprato/ollama-mcp-server.git
cd ollama-mcp-server
pip install -e .

配置

添加到您的MCP客户端配置中(例如,Claude Desktop config.json):

{
  "mcpServers": {
    "ollama-mcp": {
      "command": "python",
      "args": [
        "X:\\PATH_TO\\ollama-mcp-server\\src\\ollama_mcp\\server.py"
      ],
      "env": {}
    }
  }
}

备注:调整路径以匹配您的安装目录。在Linux/macOS上,使用正斜杠: /path/to/ollama-mcp-server/src/ollama_mcp/server.py

需求

  • Python 3.10+ (MCP SDK依赖项要求)
  • Ollama已安装 可在PATH中访问
  • MCP兼容客户端 (克劳德桌面等)

Ollama配置兼容性

此MCP服务器会自动遵守您的Ollama配置。如果您已经自定义了Ollama设置(例如,通过以下方式更改了模型文件夹 OLLAMA_MODELS 环境变量),MCP服务器将无缝工作,无需任何额外配置。

🛠️ 可用工具

模型管理

  • list_local_models -列出所有本地安装的型号及其详细信息。
  • local_llm_chat -直接与任何本地安装的型号聊天。
  • remove_model -从本地存储中安全删除模型。
  • suggest_models -推荐最好的 本地安装 特定任务的模型(例如“建议编码模型”)。

服务器和系统操作

  • start_ollama_server -如果Ollama服务器尚未运行,则启动它。
  • ollama_health_check -对Ollama服务器执行全面的健康检查。
  • system_resource_check -分析系统硬件和资源可用性。

诊断

  • test_model_responsiveness -通过发送测试提示来检查特定本地模型的响应性,帮助诊断性能问题。
  • select_chat_model -在开始聊天之前,显示可供选择的本地型号列表。

💬 如何与Olama MCP互动

Olama MCP工厂 通过您的MCP客户端 (就像克劳德桌面)-你不直接与它交互。相反,您可以使用以下方式与MCP客户端通信 自然语言,客户端将您的请求转换为工具调用。

基本交互模式

您用自然语言与MCP客户端对话,它会自动使用适当的ollama-MCP工具:

You: "List my installed Ollama models"
→ Client calls: list_local_models
→ You get: Formatted list of your models

You: "Chat with llama3.2: explain machine learning"  
→ Client calls: local_llm_chat with model="llama3.2" and message="explain machine learning"
→ You get: AI response from your local model

You: "Check if Ollama is running"
→ Client calls: ollama_health_check  
→ You get: Server status and troubleshooting if needed

交互示例

模型管理

  • “我安装了哪些型号?” → list_local_models
  • “我需要一个创意写作的模型,我的哪个模型最好?” → suggest_models
  • “删除旧的mistral模型以节省空间” → remove_model

系统操作

  • “启动Ollama服务器” → start_ollama_server
  • “我的系统能够运行大型人工智能模型吗?” → system_resource_check

AI聊天

  • “与llama3.2聊天:编写Python函数对列表进行排序” → local_llm_chat
  • “使用deepseek编码器调试此代码:[代码片段]” → local_llm_chat
  • “让phi3.5简单解释量子计算” → local_llm_chat

要点

  • 无直接命令:你从不打电话 ollama_health_check() 直接
  • 自然语言:与您的MCP客户正常交谈
  • 自动刀具选择:客户根据您的要求选择合适的工具
  • 对话式:您可以提出后续问题,客户可以维护上下文

🎯 真实世界用例

日常开发工作流程

“我需要做一个编码项目。我的哪种本地模型最适合编码?让我们检查它的性能,然后问它一个问题。”

这可能会触发:

  1. suggest_models -推荐最佳的本地“编码”模型。
  2. test_model_responsiveness -检查推荐的型号是否响应。
  3. local_llm_chat -开始与模特聊天。

模型管理会议

“给我看看我有什么模型,并推荐一个用于写故事。然后让我们清理掉我不需要的旧模型。”

触发器:

  1. list_local_models -当前库存
  2. suggest_models -推荐一个当地的“写故事”模式。
  3. remove_model -清理不需要的模型。

故障排除会话

“Ollama不工作。检查出了什么问题,试着修复它,然后通过简单的聊天进行测试。”

触发器:

  1. ollama_health_check -诊断问题
  2. start_ollama_server -尝试启动服务器
  3. local_llm_chat -验证是否使用测试消息

🏗️ 建筑

设计原则

  • 独立:零外部MCP服务器依赖关系
  • 故障保险:全面的错误处理和可操作的指导
  • 跨平台优先:通用Windows/Linux/macOS兼容性
  • 企业就绪:专业级实施和文件编制

技术亮点

  • 内部流程管理:具有超时控制的高级子流程处理
  • 多GPU检测:平台特定的GPU识别,而不会混淆指标
  • 智能选型:未指定时回退到第一个可用型号
  • 渐进式健康监测:智能服务器启动检测,并提供详细反馈

📋 系统兼容性

操作系统

  • 视窗:完全支持程序文件和AppData中的自动检测✅ 已测试
  • Linux:XDG配置支持与包管理器集成⚠️ 需要测试
  • macOS:支持Apple Silicon GPU的自制检测⚠️ 需要测试

GPU支持

  • 英伟达:通过nvidia smi进行全面检测,并提供内存和利用率信息✅ 经过测试的RTX 4090
  • 超威半导体:通过供应商特定工具提供ROCm支持⚠️ 需要测试
  • 英特尔:通过系统工具进行基本检测⚠️ 需要测试
  • 苹果芯片:具有统一内存处理的M1/M2/M3检测⚠️ 需要测试

硬件要求

  • 最小:4GB RAM,2GB可用磁盘空间
  • 推荐:8GB+RAM,10GB+可用磁盘空间
  • 图形处理器:可选,但建议用于模型加速

🔧 发展

项目结构

ollama-mcp-server/
├── src/
│   ├── __init__.py               # Defines the package version
│   └── ollama_mcp/
│       ├── __init__.py           # Makes 'ollama_mcp' a package
│       ├── server.py             # Main MCP server implementation
│       ├── client.py             # Ollama API client
│       ├── config.py             # Configuration management
│       ├── model_manager.py      # Local model operations
│       ├── hardware_checker.py   # System hardware analysis
│       └── ... (and other modules)
├── tests/
│   ├── test_client.py            # Unit tests for the client
│   └── test_tools.py             # Integration tests for tools
├── .gitignore                    # Specifies intentionally untracked files
└── pyproject.toml                # Project configuration and dependencies

关键技术成果

独立实施

  • 挑战:消除外部 desktop-commander 依赖
  • 解决方案:具有高级子流程处理功能的内部流程管理
  • 结果:零外部MCP依赖,兼容MIT许可证

智能GPU检测

  • 挑战:复杂的VRAM报告导致用户困惑
  • 解决方案:仅简化为GPU名称显示
  • 结果:干净、可靠的硬件标识

企业错误处理

  • 实施:具有特定错误类型的6级异常框架
  • 覆盖:平台特定错误、流程故障、网络问题
  • 用户体验:针对每种错误情况的可操作故障排除步骤

🤝 贡献

我们欢迎捐款!特别需要帮助的领域:

  • 平台测试:不同的操作系统和硬件配置⭐ 高优先级
  • GPU供应商支持:额外的供应商特定检测
  • 性能优化:启动时间和资源使用的改进
  • 文档:使用示例和集成指南
  • 测试:边缘情况和错误条件验证

即时测试需求

  • Linux:Ubuntu、Fedora、Arch,具有各种GPU配置
  • macOS:安装了不同Ollama的英特尔和苹果Silicon Mac
  • GPU供应商:AMD ROCm、英特尔Arc、苹果统一内存
  • 边缘案例:不同的Python版本,不同的Ollama安装方法

开发设置

git clone https://github.com/paolodalprato/ollama-mcp-server.git
cd ollama-mcp-server

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Code formatting
black src/
isort src/

# Type checking
mypy src/

🐛 故障排除

常见问题

找不到Ollama

# Verify Ollama installation
ollama --version

# Check PATH configuration
which ollama  # Linux/macOS
where ollama  # Windows

服务器启动失败

# Check port availability
netstat -an | grep 11434

# Manual server start for debugging
ollama serve

权限问题

  • 视窗:如果需要,以管理员身份运行
  • Linux/macOS:检查服务管理的用户权限

平台特定问题

如果您在Linux或macOS上遇到问题,请通过GitHub issues报告:

  • 操作系统和版本
  • Python版本
  • Ollama版本和安装方法
  • GPU硬件(如适用)
  • 完整的错误输出

📊 演出

典型响应时间 (Windows RTX 4090)

  • 健康检查:<500ms
  • 模型列表:<1秒
  • 服务器启动:1-15秒(取决于硬件)
  • 模特聊天:2-30秒(取决于型号和提示)

资源使用情况

  • 记忆:MCP服务器进程小于50MB
  • 中央处理器:闲置时最小,随操作而扩展
  • 存储:仅配置文件和日志

🔐 安全

  • 数据流:用户→ MCP客户端(克劳德)→ ollama mcp服务器→ 当地Ollama→ 通过链条返回

👨‍💻 关于本项目

这是我的第一台MCP服务器,它是通过改编我为自己的Ollama管理需求开发的个人工具而创建的。

我面临的问题

我开始使用Claude与Ollama交互,因为它允许我使用自然语言而不是命令行界面。Claude还提供了Ollama独有的功能,特别是基于我的系统功能和特定需求的智能模型建议。

我的解决方案

我构建了这个MCP服务器来简化我自己的工作流程,然后将其改进为其他人可能会觉得有用的稳定工具。该设计反映了真实的使用模式:

  • 自足:没有可以破坏的外部依赖关系
  • 智能错误处理:事情出错时有明确的指导
  • 跨平台:在不同环境中工作一致
  • 实用工具:我在日常工作中实际使用的功能

设计理念

我最初开发这个是为了更有效地管理Olama模型。当MCP协议可用时,我将我的个人工具转换为MCP服务器,与可能发现它有用的其他人共享。

开发方法:这个项目是与Claude一起使用“vibe编码”开发的,这是一个迭代的、对话式的开发过程,人工智能的帮助有助于完善技术实施和用户体验。这是人工智能辅助开发为人工智能管理创建工具的一个实例。Jules还参与了最后的重构阶段。

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • Ollama团队:优秀的本地AI平台
  • MCP项目:用于模型上下文协议规范
  • 克劳德桌面/代码由Anthropic:作为MCP客户端实现、测试和重构的工具
  • 谷歌朱尔斯:作为重构的工具

📞 支持


更新日志

  • v0.9.0(2025年8月17日): 关键错误修复版本-修复了阻止模型列表与Claude Desktop一起工作的日期时间序列化问题。现在,所有9个工具都已验证工作正常。
  • 2025年8月: 项目重构和增强。彻底改革了模块化架构,实现了一个完全异步的客户端,添加了一个测试套件,并根据“本地优先”的理念改进了工具逻辑。
  • 2025年7月: 初始版本由Paolo Dalprato在Claude AI的协助下创建。

有关详细更改,请参阅 更改日志.md.


状态:Windows测试版,其他平台需要测试
测试:Windows 11+RTX 4090经过验证,Linux/macOS需要社区验证
许可证:MIT
依赖项:无需外部MCP服务器