本地LLM代理服务

一个快速高效的模型上下文协议(MCP)服务器,为本地LLM(如Qwen或LLaMA)提供OpenAI兼容的API后端,支持高级任务编排和本地化推理管道。

  • by WifiLast
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 WifiLast/local_llm_mcp

使用说明

本地LLM MCP代理

一种快速高效的模型上下文协议(MCP)服务器,用作本地LLM(如Qwen或LLaMA)的代理,提供与OpenAI兼容的API后端。

通过利用这个项目,您可以将强大的MCP客户端(例如Claude Desktop、Cline)无缝连接到您的自托管LLM,使它们能够进行高级任务编排,并允许AI编码助手调用本地化的推理管道。

项目结构

  • proxy.py 核心FastMCP应用程序。它提供了一个基于HTTP的MCP服务器,其中包含允许客户端与本地LLM交互的工具。关键工具包括:

    • create_response:构造并触发提示有效载荷(具有可调参数,如 top_k, top_p, temperature等等)发送到本地生成后端。它还可以从以下位置自动附加匹配的角色 agency-agents/ 并推断默认值 temperature 如果没有提供,则从任务中删除。
    • list_models:询问上游API(/v1/models)以确定当前可用的本地托管模型。
    • health:返回静态状态和配置参数,以确保所有内容都正确连接。
    • workspace_tool:用于文件、搜索、todo和内存操作的单个MCP调度器
  • tool_expansion.py 文件IO、glob/grep风格搜索和简单JSON支持的todo存储的工作区范围实现。

  • query_engine.py 处理上游重试逻辑、轻量级JSON验证以及GET和POST请求的文件支持响应缓存。

  • memory_architecture.py 实现三层本地内存布局:

    • MEMORY.md 作为始终可用的索引
    • 主题文件位于 .proxy_state/topics/
    • 原始转录日志 .proxy_state/transcripts/ 只有在确认主题写入后,索引才会更新。
  • mcp_config.json 一个示例MCP客户端配置代码段,定义了客户端如何使用以下命令桥接到HTTP MCP代理 mcp-remote.

  • json_schema.json 一个经过严格优化、令牌高效的JSON格式模式。它用于强制本地模型的结构化输出(例如,将文本推理与离散的工具执行对象分离),显著加快解析速度并防止出现幻觉字段。

  • rules.txt 一套专门的系统指令和护栏。它规定了将主代理(如Claude)与此代理(充当辅助细化/查询检查器代理)配对时使用的架构模式,特别禁止本地LLM直接生成最终代码。

入门指南

先决条件

  • Python 3.8+
  • fastmcp 软件包:通过安装 pip install fastmcp
  • 标准库(requests, starlette)
  • 本地运行的LLM推理引擎(例如Uncloth、vLLM、llama.cpp),提供与OpenAI兼容的REST API /v1/chat/completions.

配置

您可以通过环境变量配置服务器:

  • BACKEND_BASE_URL:本地LLM的兼容OpenAI的API根URL(默认值: http://192.168.137.45:2345)
  • MCP_HOST:将代理服务器绑定到的主机。
  • MCP_PORT:运行MCP服务器的端口(默认值: 9999)
  • PROXY_TIMEOUT:上游推理请求的超时参数。
  • QUERY_MAX_RETRIES:出现故障之前的上游重试次数。

Persona路由

create_response 现在支持快速丰富 agency-agents/:

  • 如果 temperature 如果省略,代理将从检测到的任务类型中推断出一个。
  • 如果没有明确设置角色,代理将根据可用的代理文件对请求进行评分,并将最匹配的角色注入 instructions.
  • 你可以强迫一个角色 agent_personality例如:
{
  "input": "Review this feature for production readiness",
  "agent_personality": "Reality Checker"
}
  • 您可以通过以下方式禁用自动角色逻辑:
{
  "input": "Summarize this",
  "metadata": {
    "disable_auto_personality": true
  }
}

工作空间工具

附加实用功能通过一个MCP工具公开, workspace_tool,使用a action 加 params 有效载荷。

示例:

{
  "action": "read_file",
  "params": {
    "path": "Readme.md"
  }
}
{
  "action": "memory_write_topic",
  "params": {
    "topic": "repo-overview",
    "content": "# Repo Overview\n...",
    "summary": "High-level structure of the MCP proxy repository."
  }
}

支持的操作:

  • read_file
  • write_file
  • glob_search
  • grep_search
  • todo_read
  • todo_write
  • memory_index
  • memory_read_topic
  • memory_write_topic
  • memory_append_transcript
  • memory_search_transcripts

跑步

要启动代理服务器,请执行:

python proxy.py

之后,使用中提供的配置 mcp_config.json 在您选择的MCP客户端平台上桥接连接。