Integrations
Enables seamless communication with local Ollama LLM instances, providing capabilities for task decomposition, result evaluation, and direct model execution with configurable parameters.
Provides a Python interface for utilizing the MCP server's tools programmatically, allowing developers to implement task decomposition, result evaluation, and model execution in Python applications.
ollama-MCP-服务器
与 Ollama 通信的模型上下文协议 (MCP) 服务器
概述
该 MCP 服务器实现了本地 Ollama LLM 实例和 MCP 兼容应用程序之间的无缝集成,提供了高级任务分解、评估和工作流管理。
主要特点:
- 复杂问题的任务分解
- 评估和验证结果
- 管理和运行 Ollama 模型
- 通过 MCP 协议实现标准化通信
- 高级错误处理和详细的错误消息
- 性能优化(连接池、LRU缓存)
成分
资源
服务器实现了以下资源:
- task:// - 用于访问单个任务的 URI 方案
- result:// - 访问评估结果的 URI 方案
- model:// - 用于访问可用的 Ollama 模型的 URI 方案。
每个资源都配置了适当的元数据和 MIME 类型,以实现最佳的 LLM 交互。
提示和工具关系
在 MCP 服务器中,提示和工具紧密相关,但具有不同的作用。
- 提示:类似模式的功能,为法学硕士提供特定的思维方式和结构
- 工具:充当实际执行操作的处理程序
每个工具都需要一个相应的模式(提示),以便有效地将 LLM 的思维技能与实际的系统功能结合起来。
迅速的
服务器提供了一些特殊的提示:
- 分解任务- 将复杂任务分解为可管理的子任务
- 获取详细任务描述和可选参数
- 返回依赖关系和估计复杂性的结构化细分
- 评估结果- 根据指定标准分析任务结果
- 获取结果和评估参数
- 返回带有分数和改进建议的详细评估
工具
该服务器实现了几个强大的工具:
- 添加任务
- 必需参数:
name
(字符串)、description
(字符串) - 可选参数:
priority
(数字)、deadline
(字符串)、tags
(数组) - 在系统中创建一个新任务并返回其标识符。
- 对应架构:任务创建的数据验证架构
- 必需参数:
- 分解任务
- 必需参数:
task_id
(字符串)、granularity
(字符串:“高”|“中”|“低”) - 可选参数:
max_subtasks
(数量) - 使用 Ollama 将复杂任务分解为可管理的子任务
- 对应模式:上面的
decompose-task
提示
- 必需参数:
- 评估结果
- 必需参数:
result_id
(字符串)、criteria
(对象) - 可选参数:
detailed
(布尔值) - 根据指定标准评估结果并提供反馈
- 对应模式:上面的
evaluate-result
提示
- 必需参数:
- 运行模型
- 必需参数:
model
(字符串)、prompt
(字符串) - 可选参数:
temperature
(数量)、max_tokens
(数量) - 使用指定的参数运行 Ollama 模型。
- 对应架构:Ollama 模型执行参数验证架构
- 必需参数:
新功能和改进
扩展错误处理
服务器提供更详细、更结构化的错误消息。这使得客户端应用程序能够更有效地处理错误。错误响应示例:
性能优化
- 连接池:使用共享的 HTTP 连接池可提高请求性能并降低资源利用率。
- LRU 缓存:缓存对相同或相似请求的响应可缩短响应时间并减少 Ollama 服务器的负载。
这些设置可以在config.py
中调整:
模型规范功能
概述
Ollama-MCP-Server 提供了多种指定 Ollama 模型的灵活性。
模型规范优先级
模型按以下优先顺序指定:
- 调用工具时的参数(
model
参数) - MCP 配置文件
env
部分 - 环境变量(
OLLAMA_DEFAULT_MODEL
) - 默认值(
llama3
)
使用 MCP 配置文件的模型规范
为了与 Claude Desktop 等客户端一起使用,您可以使用 MCP 配置文件指定模型:
检查可用型号
在服务器启动时,会检查已配置模型是否存在。如果找不到模型,则会记录警告。 run-model
工具还返回可用模型的列表,允许用户选择有效的模型。
改进的错误处理
如果指定的模型不存在或者发生通信错误,则会提供详细的错误消息。错误消息包括可用模型的列表,以便用户可以快速解决问题。
测试
该项目包括一个全面的测试套件:
- 单元测试:测试各个组件的功能
- 集成测试:测试端到端工作流程
运行测试:
环境
环境变量
设置Ollama
确保 Ollama 已安装并运行在适当的型号上:
快速入门
安装
Claude桌面设置
MacOS
路径: ~/Library/Application\ Support/Claude/claude_desktop_config.json
视窗
路径: %APPDATA%/Claude/claude_desktop_config.json
使用示例
任务分解
将复杂任务分解为可管理的子任务:
结果评估
根据特定标准评估结果:
运行 Ollama 模型
要直接查询 Ollama 模型:
发展
项目设置
- 克隆存储库:
- 创建并激活虚拟环境:
- 安装开发依赖项:
本地开发
该项目包含一些有用的开发脚本:
运行服务器
选项:
--debug
:以调试模式运行(日志级别:DEBUG)--log=LEVEL
:指定日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
运行测试
选项:
--unit
:仅运行单元测试--integration
:仅运行集成测试--all
:运行所有测试(默认)--verbose
:详细测试输出
构建并发布
准备分发包:
- 同步依赖项并更新锁文件:
- 构建软件包分发版:
这将在dist/
目录中创建源和轮子分布。
- 发布到 PyPI:
注意:您必须在环境变量或命令标志中配置您的 PyPI 凭据:
- 令牌:
--token
或UV_PUBLISH_TOKEN
- 或用户名/密码:
--username
/UV_PUBLISH_USERNAME
和--password
/UV_PUBLISH_PASSWORD
调试
MCP 服务器通过 stdio 运行,因此调试可能很困难。为了获得最佳调试体验,我们强烈建议使用MCP Inspector 。
要使用npm
启动 MCP Inspector,请运行以下命令:
启动时,检查器将显示一个 URL,您可以在浏览器中访问该 URL 来开始调试。
建筑师
贡献
欢迎投稿!请随意提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 提交更改(
git commit -m 'Add some amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 打开拉取请求
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
This server cannot be installed
一个服务器,可实现本地 Ollama LLM 实例与 MCP 兼容应用程序之间的无缝集成,提供高级任务分解、评估和工作流管理功能。