Ollama MCP 服务器

Ollama MCP Server 是一个连接 Ollama 和模型上下文协议 (MCP) 的强大桥梁,使 Ollama 的本地 LLM 能力能够无缝集成到 MCP 驱动的应用程序中。

  • by hyzhak
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 hyzhak/ollama-mcp-server

使用说明

Ollama MCP服务器

这是一个重新启动并积极维护的分叉。
原始项目: 夜行/奥拉马·麦普

此存储库(hyzhak/ollama mcp服务器)是一个新的上游,具有改进的维护、元数据和发布自动化。

看 夜行/奥拉马·麦普 查看项目历史和以前的版本。

🚀 Ollama和模型上下文协议(MCP)之间的强大桥梁,使Ollama的本地LLM功能能够无缝集成到您的MCP驱动的应用程序中。

🌟 特性

完成Ollama集成

  • API全面覆盖:通过干净的MCP界面访问Olama的所有基本功能
  • OpenAI兼容聊天:代替OpenAI的聊天完成API
  • 本地LLM电源:在本地运行具有完全控制和隐私的AI模型

核心能力

  • 🔄 模型管理

    • 从注册表中提取模型
    • 将模型推送到注册表
    • 列出可用型号
    • 从模型文件创建自定义模型
    • 复制和删除模型
  • 🤖 模型执行

    • 使用可自定义的提示运行模型(仅在完成后返回响应;stdio模式不支持流式传输)
    • 视觉/多模式支持:将图像传递给兼容的模型
    • 具有系统/用户/助手角色的聊天完成API
    • 可配置参数(温度、超时)
    • 新 think 高级推理和透明度参数(见下文)
    • 原始模式支持直接响应
  • 🛠 服务器控件

    • 启动并管理Ollama服务器
    • 查看详细的模型信息
    • 错误处理和超时管理

🚀 快速开始

先决条件

配置

将服务器添加到MCP配置中:

对于Claude Desktop:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ollama": {
      "command": "npx",
      "args": ["ollama-mcp-server"],
      "env": {
        "OLLAMA_HOST": "http://127.0.0.1:11434"  // Optional: customize Ollama API endpoint
      }
    }
  }
}

🛠 开发人员设置

先决条件

  • 没有 安装在您的系统上
  • Node.js和npm

安装

  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build

🛠 使用示例

拉动并运行模型

// Pull a model
await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "pull",
  arguments: {
    name: "llama2"
  }
});

// Run the model
await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "run",
  arguments: {
    name: "llama2",
    prompt: "Explain quantum computing in simple terms"
  }
});

运行视觉/多模式模型

// Run a model with an image (for vision/multimodal models)
await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "run",
  arguments: {
    name: "gemma3:4b",
    prompt: "Describe the contents of this image.",
    imagePath: "./path/to/image.jpg"
  }
});

聊天完成(兼容OpenAI)

await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "chat_completion",
  arguments: {
    model: "llama2",
    messages: [
      {
        role: "system",
        content: "You are a helpful assistant."
      },
      {
        role: "user",
        content: "What is the meaning of life?"
      }
    ],
    temperature: 0.7
  }
});

// Chat with images (for vision/multimodal models)
await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "chat_completion",
  arguments: {
    model: "gemma3:4b",
    messages: [
      {
        role: "system",
        content: "You are a helpful assistant."
      },
      {
        role: "user",
        content: "Describe the contents of this image.",
        images: ["./path/to/image.jpg"]
      }
    ]
  }
});

注: images 字段是可选的,仅由视觉/多模态模型支持。

创建自定义模型

await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "create",
  arguments: {
    name: "custom-model",
    modelfile: "./path/to/Modelfile"
  }
});

🧠 高级推理 think 参数

两者 run 和 chat_completion 工具现在支持可选 think 参数:

  • think: true:要求模型除了提供最终答案(如果模型支持)外,还提供逐步推理或“思维过程”。
  • think: false (默认):仅返回最终答案。

示例(run 工具):

await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "run",
  arguments: {
    name: "deepseek-r1:32b",
    prompt: "how many r's are in strawberry?",
    think: true
  }
});
  • 如果模型支持它,响应将包括 <think>...</think> 在最终答案之前,进行详细的推理。

示例(chat_completion 工具):

await mcp.use_mcp_tool({
  server_name: "ollama",
  tool_name: "chat_completion",
  arguments: {
    model: "deepseek-r1:32b",
    messages: [
      { role: "user", content: "how many r's are in strawberry?" }
    ],
    think: true
  }
});
  • 模型的推理(如果提供)将包含在消息内容中。

注: 并非所有型号都支持 think 参数。高级模型(例如“deepseek-r1:32b”、“magistic”)可以在以下情况下提供更详细和准确的推理 think 已启用。

🔧 高级配置

  • OLLAMA_HOST:配置自定义Ollama API端点(默认值:http://127.0.0.1:11434)
  • 模型执行的超时设置(默认值:60秒)
  • 响应随机性温度控制(0-2范围)

🤝 贡献

欢迎投稿!请随意:

  • 报告错误
  • 建议新功能
  • 提交拉取请求

📝 许可证

MIT许可证-您可以在自己的项目中自由使用!


内置于❤️ 对于MCP生态系统