项目简介

本项目 'ollama-mcp-scratch-example' 是一个基于 Model Context Protocol (MCP) 的服务器示例,旨在演示如何构建一个能够与大型语言模型(LLM)客户端协同工作的后端服务。该服务器集成了 Ollama 模型,并实现了简单的工具和资源,展示了 MCP 协议在连接 LLM 与外部功能和数据方面的能力。

主要功能点

  • MCP 服务器实现: 遵循 MCP 协议规范,提供标准的上下文服务接口。
  • 工具注册与调用: 示例服务器注册了一个 'add' 工具,可以执行加法运算,展示了 LLM 通过 MCP 调用外部工具的能力。
  • 资源管理与访问: 示例服务器提供了一个 'greeting' 资源,可以根据请求的名称返回个性化问候语,演示了 MCP 资源访问功能。
  • Ollama 模型集成: 客户端使用 'ollama_custom.py' 模块与本地 Ollama 服务器通信,利用 Ollama 模型的工具调用能力。
  • Stdio 传输协议: 服务器和客户端通过标准的 Stdio (标准输入输出) 进行通信。
  • JSON-RPC 协议: 客户端和服务器之间使用 JSON-RPC 协议进行请求和响应的交互。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/gmgalvan/ollama-mcp-scratch-example.git
    cd ollama-mcp-scratch-example
  2. 安装依赖: 确保已安装 Python 3.8+ 和 pip。然后运行以下命令安装项目依赖:

    pip install -r requirements.txt
  3. 安装并运行 Ollama: 确保已安装并运行 Ollama,并且 Ollama 服务监听在 'http://localhost:11434'。 请参考 Ollama 官方文档 安装和配置 Ollama。 本项目默认使用 'llama3.2:1b' 模型,请确保 Ollama 中已下载该模型或修改 'client.py' 和 'ollama_custom.py' 中的模型名称。

服务器配置

MCP 客户端需要配置服务器的启动命令和参数才能连接到 MCP 服务器。对于本项目,客户端 ('client.py') 需要以下配置信息来启动和连接服务器 ('server.py'):

{
  "server_name": "Demo Server",
  "command": "python",
  "args": ["server.py"],
  "description": "启动 Python MCP 示例服务器"
}

参数注释:

  • 'server_name': 服务器的名称,用于标识和管理服务器连接,可以自定义。
  • 'command': 启动服务器的可执行命令,这里是 'python',表示使用 Python 解释器。
  • 'args': 传递给 'command' 的参数列表,这里 '["server.py"]' 指定要运行的服务器脚本是 'server.py'。
  • 'description': 对服务器配置的简要描述,方便用户理解其用途,可以自定义。

MCP 客户端 (例如 'client.py') 会在其代码中读取并使用这些配置信息来启动和连接 MCP 服务器。 用户通常无需手动修改此配置,除非需要更改服务器脚本的路径或启动方式。

基本使用方法

  1. 启动服务器: 在仓库根目录下,无需手动启动 'server.py'。客户端 'client.py' 会根据配置自动启动 'server.py'。

  2. 运行客户端: 在仓库根目录下,运行客户端脚本 'client.py' 并指定服务器脚本 'server.py' 作为参数:

    python client.py server.py
  3. 开始对话: 客户端启动后,会进入交互式聊天模式。您可以输入查询并与集成了 MCP 服务器和 Ollama 模型的系统进行对话。

    示例查询:

    • 'What is 42 + 7?' (测试工具调用)
    • 'Tell me a joke' (不使用工具的普通对话)
    • '{"tool": "add", "input": {"a": 10, "b": 20}}' (直接 JSON 格式调用工具)
    • 'greeting://World' (访问 greeting 资源,实际输入 'greeting://YourName' 即可替换 'YourName')
  4. 退出: 在交互式聊天模式中输入 'quit' 可以退出客户端。

注意: 请确保 Ollama 服务已正确运行,并且客户端能够访问到 Ollama 服务地址 ('http://localhost:11434')。

信息

分类

AI与计算