Ollama MCP 服务端实现

使用说明(Markdown 格式)

  • 项目简介

    • 该项目实现了一个基于 MCP 的服务端,用于向 LLM 客户端提供上下文信息、资源访问、工具注册/执行,以及提示模板的渲染与管理,支持多种传输方式,具备会话管理与能力声明能力。核心组件包含工具注册与执行、MCP 请求处理、以及对 Ollama 与其他外部服务的集成。
  • 主要功能点

    • MCP 核心能力
      • 通过 MCP 协议接收并处理 JSON-RPC 风格的请求,返回标准化的 JSON-RPC 响应。
      • 向客户端提供工具注册、执行、以及资源/提示相关的能力。
    • 资源、工具与提示
      • 资源管理:提供数据访问能力,管理可用的资源集合。
      • 工具注册与执行:支持多种内置和外部工具,LLM 可以通过工具调用实现外部功能。
      • 提示模板与渲染:支持用于不同交互模式的 Prompt 渲染和自定义化。
    • 集成与扩展
      • 与 Ollama、Playwright(浏览器自动化)、GitHub API 等工具的集成,提供多领域能力。
      • MCP Gateway 功能,支持跨多服务器编排与协作。
    • 传输与安全
      • 通过 Stdio、SSE、WebSocket 等传输方案与客户端通信,具备会话管理与安全审计能力。
    • 服务器端实现
      • 核心服务器实现包含工具注册、请求路由、健康检查、服务器状态,以及对外部工具/服务的调用封装。
  • 安装与运行步骤

    • 环境准备
      • 需要具备 Python 3.12 及以上版本(代码中使用的依赖以源码结构为主,实际环境请根据 docs/CI/CD 说明安装依赖)。
    • 获取代码
      • 克隆仓库到本地或服务器上。
    • 启动服务器
      • 通过命令行启动 MCP 服务器(以 stdio 传输为例):
        • 命令示例(需根据实际部署环境调整路径与入口模块): { "server_name": "mcp-devops-server", "command": ["python", "-m", "ollama_mcp_server.server.mcp_server"], "args": [] }
      • 客户端连接时需要使用包含 server_name、command、args 的配置(以 JSON 形式提供给客户端),具体示例如上所示的配置字段。
    • 运行测试与验证
      • 项目内含若干单元测试,可覆盖配置、工具注册、服务器健康、端到端工具执行等场景。生产环境请先在受控环境中验证再接入生产。
  • 服务器配置(给 MCP 客户端的连接信息,JSON 形式,含 server name、command、args 等)

    • 说明
      • MCP 客户端需要的是连接信息,用以从 MCP 服务器建立连接并调用能力。下面给出一个配置示例,包含服务器名称、启动命令及参数。请将该配置交由客户端在建立连接时读取并使用。
    • 配置示例(JSON) { "server_name": "mcp-devops-server", "command": ["python", "-m", "ollama_mcp_server.server.mcp_server"], "args": [] }
    • 注释
      • server_name:服务器的唯一名称,用于识别与管控多服务器环境。
      • command:启动服务器的命令(在没有打包成可执行镜像时,通常以 Python 模块运行方式提供入口)。
      • args:启动命令的附加参数列表,当前示例为空,实际可根据部署需求添加。
    • 说明
      • MCP 客户端不需要读取代码实现细节,仅需要上述连接信息来建立 JSON-RPC 风格的请求-响应通道。
  • 基本使用方法

    • 部署后,客户端可通过 MCP 协议向服务器发起请求,进行以下操作:
      • 列出可用工具、注册/调用工具
      • 读取或写入资源
      • 请求并渲染 Prompt 模板
    • 在开发与运维场景中,可以通过网格化部署实现多实例协同,并借助 MCP Gateway 实现跨服务器编排。
  • 兼容性与扩展

    • 服务器设计面向扩展,支持新增工具、资源类型与传输协议。
    • 集成了多种外部平台的工具,与 Ollama 等模型服务保持兼容,便于在 LLM 应用中提供上下文与能力服务。

服务器信息