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 传输协议。
安装步骤
- 安装 Ollama: 确保你的系统上已经安装了 Ollama 并可以正常运行。
- 安装 Node.js 和 npm/pnpm: 确保你的系统上安装了 Node.js 和 npm 或 pnpm。
- 安装依赖: 克隆仓库后,在项目根目录下运行 'pnpm install' 或 'npm install' 安装依赖。
- 构建项目: 运行 '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与计算