Skip to main content
Glama

Ollama MCP Server

by NewAITees

ollama-MCP-服务器

与 Ollama 通信的模型上下文协议 (MCP) 服务器

概述

该 MCP 服务器实现了本地 Ollama LLM 实例和 MCP 兼容应用程序之间的无缝集成,提供了高级任务分解、评估和工作流管理。

主要特点:

  • 复杂问题的任务分解
  • 评估和验证结果
  • 管理和运行 Ollama 模型
  • 通过 MCP 协议实现标准化通信
  • 高级错误处理和详细的错误消息
  • 性能优化(连接池、LRU缓存)

成分

资源

服务器实现了以下资源:

  • task:// - 用于访问单个任务的 URI 方案
  • result:// - 访问评估结果的 URI 方案
  • model:// - 用于访问可用的 Ollama 模型的 URI 方案。

每个资源都配置了适当的元数据和 MIME 类型,以实现最佳的 LLM 交互。

提示和工具关系

在 MCP 服务器中,提示和工具紧密相关,但具有不同的作用。

  • 提示:类似模式的功能,为法学硕士提供特定的思维方式和结构
  • 工具:充当实际执行操作的处理程序

每个工具都需要一个相应的模式(提示),以便有效地将 LLM 的思维技能与实际的系统功能结合起来。

迅速的

服务器提供了一些特殊的提示:

  • 分解任务- 将复杂任务分解为可管理的子任务
    • 获取详细任务描述和可选参数
    • 返回依赖关系和估计复杂性的结构化细分
  • 评估结果- 根据指定标准分析任务结果
    • 获取结果和评估参数
    • 返回带有分数和改进建议的详细评估

工具

该服务器实现了几个强大的工具:

  • 添加任务
    • 必需参数: name (字符串)、 description (字符串)
    • 可选参数: priority (数字)、 deadline (字符串)、 tags (数组)
    • 在系统中创建一个新任务并返回其标识符。
    • 对应架构:任务创建的数据验证架构
  • 分解任务
    • 必需参数: task_id (字符串)、 granularity (字符串:“高”|“中”|“低”)
    • 可选参数: max_subtasks (数量)
    • 使用 Ollama 将复杂任务分解为可管理的子任务
    • 对应模式:上面的decompose-task提示
  • 评估结果
    • 必需参数: result_id (字符串)、 criteria (对象)
    • 可选参数: detailed (布尔值)
    • 根据指定标准评估结果并提供反馈
    • 对应模式:上面的evaluate-result提示
  • 运行模型
    • 必需参数: model (字符串)、 prompt (字符串)
    • 可选参数: temperature (数量)、 max_tokens (数量)
    • 使用指定的参数运行 Ollama 模型。
    • 对应架构:Ollama 模型执行参数验证架构

新功能和改进

扩展错误处理

服务器提供更详细、更结构化的错误消息。这使得客户端应用程序能够更有效地处理错误。错误响应示例:

{ "error": { "message": "Task not found: task-123", "status_code": 404, "details": { "provided_id": "task-123" } } }

性能优化

  • 连接池:使用共享的 HTTP 连接池可提高请求性能并降低资源利用率。
  • LRU 缓存:缓存对相同或相似请求的响应可缩短响应时间并减少 Ollama 服务器的负载。

这些设置可以在config.py中调整:

# パフォーマンス関連設定 cache_size: int = 100 # キャッシュに保存する最大エントリ数 max_connections: int = 10 # 同時接続の最大数 max_connections_per_host: int = 10 # ホストごとの最大接続数 request_timeout: int = 60 # リクエストタイムアウト(秒)

模型规范功能

概述

Ollama-MCP-Server 提供了多种指定 Ollama 模型的灵活性。

模型规范优先级

模型按以下优先顺序指定:

  1. 调用工具时的参数( model参数)
  2. MCP 配置文件env部分
  3. 环境变量( OLLAMA_DEFAULT_MODEL
  4. 默认值( llama3

使用 MCP 配置文件的模型规范

为了与 Claude Desktop 等客户端一起使用,您可以使用 MCP 配置文件指定模型:

{ "mcpServers": { "ollama-MCP-server": { "command": "python", "args": [ "-m", "ollama_mcp_server" ], "env": [ {"model": "llama3:latest"} ] } } }

检查可用型号

在服务器启动时,会检查已配置模型是否存在。如果找不到模型,则会记录警告。 run-model工具还返回可用模型的列表,允许用户选择有效的模型。

改进的错误处理

如果指定的模型不存在或者发生通信错误,则会提供详细的错误消息。错误消息包括可用模型的列表,以便用户可以快速解决问题。

测试

该项目包括一个全面的测试套件:

  • 单元测试:测试各个组件的功能
  • 集成测试:测试端到端工作流程

运行测试:

# すべてのテストを実行 python -m unittest discover # 特定のテストを実行 python -m unittest tests.test_integration

环境

环境变量

OLLAMA_HOST=http://localhost:11434 DEFAULT_MODEL=llama3 LOG_LEVEL=info

设置Ollama

确保 Ollama 已安装并运行在适当的型号上:

# Ollamaをインストール(まだインストールされていない場合) curl -fsSL https://ollama.com/install.sh | sh # 推奨モデルをダウンロード ollama pull llama3 ollama pull mistral ollama pull qwen2

快速入门

安装

pip install ollama-mcp-server

Claude桌面设置

MacOS

路径: ~/Library/Application\ Support/Claude/claude_desktop_config.json

视窗

路径: %APPDATA%/Claude/claude_desktop_config.json

"mcpServers": { "ollama-MCP-server": { "command": "uv", "args": [ "--directory", "/path/to/ollama-MCP-server", "run", "ollama-MCP-server" ], "ENV":["model":"deepseek:r14B"] } }
"mcpServers": { "ollama-MCP-server": { "command": "uvx", "args": [ "ollama-MCP-server" ] } }

使用示例

任务分解

将复杂任务分解为可管理的子任务:

result = await mcp.use_mcp_tool({ "server_name": "ollama-MCP-server", "tool_name": "decompose-task", "arguments": { "task_id": "task://123", "granularity": "medium", "max_subtasks": 5 } })

结果评估

根据特定标准评估结果:

evaluation = await mcp.use_mcp_tool({ "server_name": "ollama-MCP-server", "tool_name": "evaluate-result", "arguments": { "result_id": "result://456", "criteria": { "accuracy": 0.4, "completeness": 0.3, "clarity": 0.3 }, "detailed": true } })

运行 Ollama 模型

要直接查询 Ollama 模型:

response = await mcp.use_mcp_tool({ "server_name": "ollama-MCP-server", "tool_name": "run-model", "arguments": { "model": "llama3", "prompt": "量子コンピューティングを簡単な言葉で説明してください", "temperature": 0.7 } })

发展

项目设置

  1. 克隆存储库:
git clone https://github.com/yourusername/ollama-MCP-server.git cd ollama-MCP-server
  1. 创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # Windowsの場合: venv\Scripts\activate
  1. 安装开发依赖项:
uv sync --dev --all-extras

本地开发

该项目包含一些有用的开发脚本:

运行服务器
./run_server.sh

选项:

  • --debug :以调试模式运行(日志级别:DEBUG)
  • --log=LEVEL :指定日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
运行测试
./run_tests.sh

选项:

  • --unit :仅运行单元测试
  • --integration :仅运行集成测试
  • --all :运行所有测试(默认)
  • --verbose :详细测试输出

构建并发布

准备分发包:

  1. 同步依赖项并更新锁文件:
uv sync
  1. 构建软件包分发版:
uv build

这将在dist/目录中创建源和轮子分布。

  1. 发布到 PyPI:
uv publish

注意:您必须在环境变量或命令标志中配置您的 PyPI 凭据:

  • 令牌: --tokenUV_PUBLISH_TOKEN
  • 或用户名/密码: --username / UV_PUBLISH_USERNAME--password / UV_PUBLISH_PASSWORD

调试

MCP 服务器通过 stdio 运行,因此调试可能很困难。为了获得最佳调试体验,我们强烈建议使用MCP Inspector

要使用npm启动 MCP Inspector,请运行以下命令:

npx @modelcontextprotocol/inspector uv --directory /path/to/ollama-MCP-server run ollama-mcp-server

启动时,检查器将显示一个 URL,您可以在浏览器中访问该 URL 来开始调试。

建筑师

贡献

欢迎投稿!请随意提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支( git checkout -b feature/amazing-feature
  3. 提交更改( git commit -m 'Add some amazing feature'
  4. 推送到分支( git push origin feature/amazing-feature
  5. 打开拉取请求

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

一个服务器,可实现本地 Ollama LLM 实例与 MCP 兼容应用程序之间的无缝集成,提供高级任务分解、评估和工作流管理功能。

  1. 概述
    1. 成分
      1. 资源
      2. 提示和工具关系
      3. 迅速的
      4. 工具
    2. 新功能和改进
      1. 扩展错误处理
      2. 性能优化
    3. 模型规范功能
      1. 概述
      2. 模型规范优先级
      3. 使用 MCP 配置文件的模型规范
      4. 检查可用型号
      5. 改进的错误处理
    4. 测试
      1. 环境
        1. 环境变量
        2. 设置Ollama
      2. 快速入门
        1. 安装
        2. Claude桌面设置
      3. 使用示例
        1. 任务分解
        2. 结果评估
        3. 运行 Ollama 模型
      4. 发展
        1. 项目设置
        2. 本地开发
        3. 构建并发布
        4. 调试
      5. 建筑师
        1. 贡献
          1. 执照
            1. 致谢

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                MCP Ollama server integrates Ollama models with MCP clients, allowing users to list models, get detailed information, and interact with them through questions.
                Last updated -
                3
                12
                Python
                MIT License
                • Apple
              • -
                security
                A
                license
                -
                quality
                Enables seamless integration between Ollama's local LLM models and MCP-compatible applications, supporting model management and chat interactions.
                Last updated -
                165
                47
                TypeScript
                AGPL 3.0
              • A
                security
                F
                license
                A
                quality
                A bridge that enables seamless integration of Ollama's local LLM capabilities into MCP-powered applications, allowing users to manage and run AI models locally with full API coverage.
                Last updated -
                10
                33
                JavaScript
                • Apple
              • -
                security
                F
                license
                -
                quality
                A generic Model Context Protocol framework for building AI-powered applications that provides standardized ways to create MCP servers and clients for integrating LLMs with support for Ollama and Supabase.
                Last updated -
                TypeScript

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/NewAITees/ollama-MCP-server'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server