该项目实现了一个模型上下文协议 (MCP) 服务器,允许兼容 MCP 的 LLM 客户端(如 Claude Desktop, Fast-Agent 等)通过标准接口调用本地安装的 Ollama 模型和执行其他外部任务(如运行 Bash 命令)。它为 LLM 应用提供了一个结构化的方式来访问本地计算资源。

主要功能点

  • Ollama 模型访问: 列出本地 Ollama 模型,并运行提示词。
  • 异步任务管理: 支持异步执行任务(如运行模型或 Bash 命令),并能查询任务状态、列出任务或取消任务。
  • 脚本与工作流: 托管和执行 Prompt 脚本模板(支持变量替换),以及运行包含多个步骤的自动化工作流。
  • Bash 命令执行: 允许 LLM 安全地执行指定的 Bash 命令。

安装步骤

  1. 安装 Ollama: 确保您已在本地系统上安装并运行 Ollama。请访问 Ollama 官方网站获取安装指南。
  2. 安装 uv: 项目使用 'uv' 作为包管理器。请按照 'uv' 的官方文档进行安装。
  3. 克隆仓库: 将该 GitHub 仓库克隆到您的本地机器。
  4. 创建并激活虚拟环境:
    uv venv
    source .venv/bin/activate # 在 Linux/macOS 上
    # 或 .venv\Scripts\activate # 在 Windows 上
  5. 安装依赖:
    uv pip install -r requirements.txt

服务器配置 (供 MCP 客户端使用)

MCP 服务器本身不需要复杂的独立配置文件来启动核心服务。它是设计为由 MCP 客户端或 MCP 框架(如 Fast-Agent)通过命令行参数启动的。

对于希望连接此服务器的 MCP 客户端(例如 Claude Desktop 或配置 Fast-Agent):

您需要在客户端的配置中指定如何启动和连接到这个 Ollama MCP 服务器。典型的配置会是 JSON 格式,包含一个服务器列表。请参考您的 MCP 客户端文档来找到具体的配置位置(通常是一个 JSON 或 YAML 文件)。

以下是您需要提供的配置信息示例的描述(请根据您的实际文件路径调整):

  • 服务器名称 ('server name'): 您可以自定义一个名称,例如 '"OllamaMCPServer"'。这是 LLM 客户端在调用工具时会引用的名称。
  • 命令 ('command'): 用于启动服务器的可执行文件路径。如果 'uv' 已在您的环境中,通常是 '"uv"'。
  • 参数 ('args'): 启动服务器时需要传递的参数列表。这通常是告诉 'uv' 如何运行服务器模块的指令。例如:
    • 指定项目根目录 ('--directory /path/to/ollama-mcp-server')。
    • 指定运行服务器模块 ('run -m src.ollama_mcp_server.server').

请注意,客户端配置中通常还需要指定服务器的工作目录 ('cwd') 以确保服务器能够找到其脚本、输出等文件。这个工作目录应设置为您克隆的 'ollama-mcp-server' 仓库的根目录。

重要的配置概念: LLM 客户端通过 'command' 和 'args' 来启动服务器进程,并通常通过 Stdio 协议(标准输入输出)与之通信。服务器会侦听客户端发来的 JSON-RPC 请求,执行相应的工具功能,并将 JSON-RPC 响应或通知发回。

基本使用方法

该 Ollama MCP 服务器通常作为后台服务由 MCP 客户端启动和管理。您作为用户的主要交互方式是通过您的 MCP 客户端(例如,在 Claude Desktop 中与一个配置了此服务器的模型对话,或运行一个 Fast-Agent 脚本)。

  1. 配置您的 MCP 客户端: 按照上述“服务器配置”说明,将 Ollama MCP 服务器添加到您的 MCP 客户端(如 Claude Desktop)或 MCP 框架(如 Fast-Agent)的配置中,指定服务器名称、启动命令和参数。
  2. 启动服务器: 您的 MCP 客户端在需要时会自动启动服务器进程。或者,您可以使用命令手动启动服务器(但这通常是为了调试):
    # 确保您在仓库根目录且虚拟环境已激活
    uv run -m src.ollama_mcp_server.server
    服务器启动后会监听标准输入输出(Stdio)或其他配置的传输协议。
  3. 通过 LLM 客户端交互: 在您的 LLM 客户端界面中,选择一个配置为使用此 MCP 服务器的模型或代理。然后,您可以通过自然语言指示 LLM 调用服务器暴露的功能,例如:
    • 询问 LLM "List available Ollama models." (LLM 可能会调用 'list_ollama_models' 工具)
    • 要求 LLM "Run the prompt 'Explain quantum physics' using the llama3 model." (LLM 可能会调用 'run_ollama_prompt' 工具)
    • 让 LLM "Run the bash command 'ls -l'." (LLM 可能会调用 'run_bash_command' 工具)
    • 要求 LLM "Run the script named 'expert_analysis' with topic 'AI ethics'." (LLM 可能会调用 'run_script' 工具)

实际的交互方式取决于您的 LLM 客户端如何集成和暴露 MCP 工具调用能力。该 MCP 服务器提供了后端能力,而客户端负责前端的LLM交互和工具调用逻辑。

信息

分类

AI与计算