Ollama MCP Server 使用说明

项目简介

Ollama MCP Server 旨在将本地 Ollama LLM 模型的能力集成到 Model Context Protocol (MCP) 生态系统中。它作为一个 MCP 服务器,允许 MCP 客户端(如 Claude Desktop)通过标准化的 MCP 协议与本地 Ollama 服务器进行交互,利用 Ollama 强大的本地模型运行能力。

主要功能点

  • Ollama 模型管理: 支持拉取、推送、列出、创建、复制和删除 Ollama 模型。
  • Ollama 模型运行: 允许用户运行本地 Ollama 模型,并支持流式响应。
  • OpenAI 兼容的 Chat Completion API: 提供了与 OpenAI Chat Completion API 兼容的接口,方便现有应用迁移。
  • 工具化访问: 将 Ollama 的各项功能封装为 MCP 工具,方便 MCP 客户端调用。
  • 支持多种传输协议: 支持 Stdio 和 SSE 传输协议。

安装步骤

  1. 安装 Ollama: 确保你的系统上已经安装了 Ollama 并可以正常运行。
  2. 安装 Node.js 和 npm/pnpm: 确保你的系统上安装了 Node.js 和 npm 或 pnpm。
  3. 安装依赖: 克隆仓库后,在项目根目录下运行 'pnpm install' 或 'npm install' 安装依赖。
  4. 构建项目: 运行 'pnpm run build' 或 'npm run build' 构建项目。

服务器配置 (MCP 客户端)

要将 Ollama MCP Server 添加到 MCP 客户端配置中,例如 Claude Desktop,你需要配置 'mcpServers' 字段。以下是一个配置示例,你需要根据你的实际情况进行调整。

{
  "mcpServers": {
    "ollama": {
      "command": "node",
      "args": ["/path/to/ollama-mcp/build/index.js"],  // 将 "/path/to/ollama-mcp" 替换为 ollama-mcp 项目的绝对路径
      "env": {
        "OLLAMA_HOST": "http://127.0.0.1:11434"  // 可选:自定义 Ollama API 端点,默认为 http://127.0.0.1:11434
      }
    }
  }
}

配置说明:

  • '"ollama"': 服务器名称,可以自定义,在 MCP 客户端调用工具时需要使用此名称。
  • '"command": "node"': 启动服务器的命令,这里使用 Node.js 运行 'index.js' 文件。
  • '"args": ["/path/to/ollama-mcp/build/index.js"]': 启动命令的参数,指向编译后的 'index.js' 文件路径。请务必将 '/path/to/ollama-mcp' 替换为你本地 'ollama-mcp' 项目的绝对路径。
  • '"env"': 环境变量配置,用于传递额外的配置信息给服务器。
    • '"OLLAMA_HOST"': (可选) 用于指定 Ollama API 的地址。如果你的 Ollama 服务器运行在非默认地址 'http://127.0.0.1:11434',可以通过此环境变量进行配置。

请注意: MCP 客户端需要读取 'command' 和 'args' 来启动 MCP 服务器进程,并与之建立连接。请确保配置的路径正确,并且 Node.js 环境可用。

基本使用方法

配置完成后,在 MCP 客户端中,你可以通过 'mcp.use_mcp_tool' 等方法调用 Ollama MCP Server 提供的工具。以下是一些基本示例(这些是在 MCP 客户端中使用的示例代码,不是 Ollama MCP Server 本身的代码):

1. 拉取模型 (pull):

await mcp.use_mcp_tool({
  server_name: "ollama", // 配置中定义的服务器名称
  tool_name: "pull",
  arguments: {
    name: "llama2" // 要拉取的模型名称
  }
});

2. 运行模型 (run):

await mcp.use_mcp_tool({
  server_name: "ollama", // 配置中定义的服务器名称
  tool_name: "run",
  arguments: {
    name: "llama2", // 要运行的模型名称
    prompt: "请解释一下量子计算" // 提示词
  }
});

3. Chat Completion (chat_completion):

await mcp.use_mcp_tool({
  server_name: "ollama", // 配置中定义的服务器名称
  tool_name: "chat_completion",
  arguments: {
    model: "llama2", // 使用的模型名称
    messages: [
      { role: "user", content: "你好" } // 用户消息
    ]
  }
});

更多工具和详细用法请参考仓库的 'README.md' 文件和代码。

信息

分类

AI与计算