Ollama模型服务器

一个提供直接访问Ollama模型进行AI推理的模型上下文协议(MCP)服务器。

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

使用说明

MCP Ollama服务器

模型上下文协议(MCP)服务器,提供对Ollama模型的直接访问,用于人工智能推理。

特性

  • 🚀 直接模型访问:生成回复并与任何Ollama模特聊天
  • 💬 聊天支持:维护与聊天端点的对话上下文
  • 📋 模型管理:列出、拉取、删除和获取有关模型的信息
  • 🔢 嵌入:为语义搜索生成文本嵌入
  • 🔧 完全控制:配置温度、最大令牌和系统提示
  • ✅ 状态检查:自动Olama可用性检测

安装

  1. 先决条件:

    • 没有 已安装并正在运行
    • 已安装Node.js 18+
  2. 安装MCP服务器:

    cd /Users/bard/Code/mcp-ollama
    npm install
    npm run build
    
  3. 添加到Claude桌面配置: 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "ollama": {
          "command": "node",
          "args": ["/Users/bard/Code/mcp-ollama/dist/index.js"],
          "env": {
            "OLLAMA_BASE_URL": "http://localhost:11434"
          }
        }
      }
    }
    
  4. 重新启动克劳德桌面

用法

生成文本

// Simple generation
ollama_generate({
  prompt: "What is the meaning of life?"
})

// With system prompt and parameters
ollama_generate({
  model: "llama3.2",
  prompt: "Write a haiku about coding",
  system: "You are a creative poet",
  temperature: 0.9,
  max_tokens: 100
})

聊天对话

// Multi-turn conversation
ollama_chat({
  model: "llama3.2",
  messages: [
    { role: "system", content: "You are a helpful assistant" },
    { role: "user", content: "What is Python?" },
    { role: "assistant", content: "Python is a high-level programming language..." },
    { role: "user", content: "What makes it good for beginners?" }
  ]
})

模型管理

// List available models
ollama_list()

// Pull a new model
ollama_pull({ model: "mistral" })

// Get model information
ollama_info({ model: "llama3.2" })

// Delete a model
ollama_delete({ model: "old-model" })

生成嵌入

// Generate embeddings for semantic search
ollama_embeddings({
  model: "nomic-embed-text",
  prompt: "The quick brown fox jumps over the lazy dog"
})

可用型号

您可以使用的流行型号:

  • llama3.2 -快速、高效的通用模型
  • deepseek-r1 -高级推理模型
  • mistral -高效的7B参数模型
  • gemma:2b -谷歌的小型高效模式
  • phi3:mini -微软的紧凑型模型
  • nomic-embed-text -用于生成嵌入

拉动任何具有以下功能的模型:

ollama pull <model-name>

配置

环境变量

  • OLLAMA_BASE_URL:Ollama API端点(默认值: http://localhost:11434)

刀具参数

ollama_generate

  • model:要使用的模型(默认值:“llama3.2”)
  • prompt:输入提示(必填)
  • system:系统提示(可选)
  • temperature:采样温度0-1(默认值:0.7)
  • max_tokens:要生成的最大令牌数(默认值:2048)
  • stream:流响应(默认值:false)

奥拉玛帽

  • model:要使用的模型(默认值:“llama3.2”)
  • messages:聊天消息数组(必填)
  • temperature:采样温度0-1(默认值:0.7)
  • max_tokens:要生成的最大令牌数(默认值:2048)

故障排除

Ollama没有跑

如果你看到“❌ Ollama没有跑”,开始Ollama:

ollama serve

没有可用型号

先拉一个模型:

ollama pull llama3.2

不同的Ollama港口

如果Ollama在其他端口上运行,请更新配置:

{
  "env": {
    "OLLAMA_BASE_URL": "http://localhost:YOUR_PORT"
  }
}

与ELVIS的差异

此MCP服务器提供对Ollama模型的直接同步访问,与使用委托/队列模式的ELVIS不同。优点:

  • 立即响应:无需等待任务完成
  • 更简单的API:直接函数调用而不是任务管理
  • 原生聊天支持:内置对话处理
  • 模型管理:拉取、删除和检查模型
  • 嵌入支持:为RAG应用程序生成嵌入

发展

在开发中运行:

npm run dev

建筑:

npm run build

测试:

# Test generate
curl -X POST http://localhost:11434/api/generate \
  -d '{"model": "llama3.2", "prompt": "Hello"}'

# Test chat
curl -X POST http://localhost:11434/api/chat \
  -d '{"model": "llama3.2", "messages": [{"role": "user", "content": "Hello"}]}'

许可证

麻省理工学院