项目简介
本项目 '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 协议进行请求和响应的交互。
安装步骤
-
克隆仓库:
git clone https://github.com/gmgalvan/ollama-mcp-scratch-example.git cd ollama-mcp-scratch-example -
安装依赖: 确保已安装 Python 3.8+ 和 pip。然后运行以下命令安装项目依赖:
pip install -r requirements.txt -
安装并运行 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 服务器。 用户通常无需手动修改此配置,除非需要更改服务器脚本的路径或启动方式。
基本使用方法
-
启动服务器: 在仓库根目录下,无需手动启动 'server.py'。客户端 'client.py' 会根据配置自动启动 'server.py'。
-
运行客户端: 在仓库根目录下,运行客户端脚本 'client.py' 并指定服务器脚本 'server.py' 作为参数:
python client.py server.py -
开始对话: 客户端启动后,会进入交互式聊天模式。您可以输入查询并与集成了 MCP 服务器和 Ollama 模型的系统进行对话。
示例查询:
- 'What is 42 + 7?' (测试工具调用)
- 'Tell me a joke' (不使用工具的普通对话)
- '{"tool": "add", "input": {"a": 10, "b": 20}}' (直接 JSON 格式调用工具)
- 'greeting://World' (访问 greeting 资源,实际输入 'greeting://YourName' 即可替换 'YourName')
-
退出: 在交互式聊天模式中输入 'quit' 可以退出客户端。
注意: 请确保 Ollama 服务已正确运行,并且客户端能够访问到 Ollama 服务地址 ('http://localhost:11434')。
信息
分类
AI与计算