LLM-MCP桥接器

一个TypeScript实现的桥接器,将本地LLM(通过Ollama)连接到模型上下文协议(MCP)服务器,使开源模型能够使用与Claude相同的工具和功能。

  • by patruff
  • TypeScript
  • 本地部署
  • 984 星标
  • 更新于
在 GitHub 查看 patruff/ollama-mcp-bridge

使用说明

MCP-LLM电桥

一种将本地LLM(通过Ollama)连接到模型上下文协议(MCP)服务器的TypeScript实现。这座桥允许开源模型使用与Claude相同的工具和功能,从而实现强大的本地AI助手。

概述

该项目将本地大型语言模型与MCP服务器连接起来,MCP服务器提供各种功能,如:

  • 文件系统操作
  • 勇敢的网络搜索
  • GitHub交互
  • 谷歌云端硬盘和Gmail集成
  • 内存/存储
  • 使用Flux生成图像

该桥在LLM的输出和MCP的JSON-RPC协议之间进行转换,允许任何兼容Ollama的模型像Claude一样使用这些工具。

当前设置

  • LLM:通过Ollama使用Qwen 2.5 7B(qwen2.5编码器:7B指令)
  • 单核细胞趋化蛋白:
    • 文件系统操作(@modelcontextprotocol/server-filesystem)
    • 勇敢的搜索(@modelcontextprotocol/server-brave-search)
    • GitHub(@modelcontextprotocol/server-github)
    • 记忆(@modelcontextprotocol/server-memory)
    • 通量图像生成(@patruff/server-flux)
    • Gmail和云端硬盘(@patruff/server-gmail-drive)

建筑

  • 桥:管理工具注册和执行的核心组件
  • LLM客户端:处理Ollama交互和格式化工具调用
  • MCP客户端:管理MCP服务器连接和JSON-RPC通信
  • 工具路由器:根据工具类型将请求路由到适当的MCP

主要特点

  • 多MCP支持,具有动态刀具布线功能
  • 工具调用的结构化输出验证
  • 根据用户提示自动检测刀具
  • Ollama的稳健流程管理
  • 详细的日志记录和错误处理

设置

  1. 安装Ollama和所需型号:
ollama pull qwen2.5-coder:7b-instruct
  1. 安装MCP服务器:
npm install -g @modelcontextprotocol/server-filesystem
npm install -g @modelcontextprotocol/server-brave-search
npm install -g @modelcontextprotocol/server-github
npm install -g @modelcontextprotocol/server-memory
npm install -g @patruff/server-flux
npm install -g @patruff/server-gmail-drive
  1. 配置凭据:
    • 集 BRAVE_API_KEY 勇敢搜索
    • 集 GITHUB_PERSONAL_ACCESS_TOKEN 对于GitHub
    • 集 REPLICATE_API_TOKEN 对于Flux
    • 运行Gmail/驱动器MCP身份验证: node path/to/gmail-drive/index.js auth
    • 例如,节点C:\Users\patru\AppData\Roaming\npm\node_modules@patruff\服务器gmail驱动器\dist\index.js身份验证

配置

该桥通过以下方式配置 bridge_config.json:

  • MCP服务器定义
  • LLM设置(型号、温度等)
  • 工具权限和路径

例子:

{
  "mcpServers": {
    "filesystem": {
      "command": "node",
      "args": ["path/to/server-filesystem/dist/index.js"],
      "allowedDirectory": "workspace/path"
    },
    // ... other MCP configurations
  },
  "llm": {
    "model": "qwen2.5-coder:7b-instruct",
    "baseUrl": "http://localhost:11434"
  }
}

用法

  1. 启动桥:
npm run start
  1. 可用命令:
    • list-tools:显示可用工具
    • 常规文本:向LLM发送提示
    • quit:退出程序

交互示例:

> Search the web for "latest TypeScript features"
[Uses Brave Search MCP to find results]

> Create a new folder called "project-docs"
[Uses Filesystem MCP to create directory]

> Send an email to user@example.com
[Uses Gmail MCP to compose and send email]

技术细节

刀具检测

该桥包括基于用户输入的智能工具检测:

  • 电子邮件操作:通过电子邮件地址和关键字检测
  • 驱动器操作:通过文件/文件夹关键字检测
  • 搜索操作:按上下文路由到适当的搜索工具

响应处理

响应通过多个阶段进行处理:

  1. LLM生成结构化工具调用
  2. 桥接验证并路由到适当的MCP
  3. MCP执行操作并返回结果
  4. 桥接用户格式响应

扩展功能

这座桥有效地将Claude的工具功能带到了本地模型中:

  • 文件系统操作
  • 网络搜索和研究
  • 电子邮件和文档管理
  • 代码和GitHub交互
  • 图像生成
  • 持久存储器

同时完全在本地使用开源模型运行。

未来改进

  • 添加对更多MCP的支持
  • 实现并行工具执行
  • 添加流媒体响应
  • 增强错误恢复
  • 添加对话记忆
  • 支持更多Olama车型

相关项目

这座桥与更广泛的克劳德生态系统融为一体:

  • 模型上下文协议(MCP)
  • Claude桌面配置
  • Ollama项目
  • 各种MCP服务器实现

其结果是一个强大的本地AI助手,可以在完全在自己的硬件上运行的同时,与Claude的许多功能相匹配。