LLM桥接工具

bach-mcp是一个在Max和LLM之间建立桥梁的工具,支持本地LLM交互和Claude Desktop集成。

  • by agustinissidoro
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 agustinissidoro/bach-mcp

使用说明

巴赫mcp

bach-mcp 桥梁 bach.roll 在Max获得法学硕士学位。

快速入门

运行首次安装说明(见下文)后,您可以通过以下步骤开始使用bach MCP:

  1. 导航到您的 bach-mcp 使用文件夹并激活您的conda环境 conda activate bach-mcp
  2. 使用以下命令启动MCP服务器 python py/main.py
  3. 使用以下命令启动llama.cpp服务器 llama-server
  4. 在Max中,打开 bach-mcp.maxpat 并击中 script start 消息
  5. 在浏览器中,导航到llama.cpp webui,网址为 https://localhost:8080 然后开始聊天

安装说明(llama.cpp)

1.安装 (Python 3.11):

git clone https://github.com/dzluke/bach-mcp.git
cd bach-mcp
conda env create -f environment.yml
conda activate bach-mcp
python -m pip install -r requirements.txt

2.设置Max --复制 max/bach-mcp 将文件夹放入Max Packages文件夹, 打开修补程序,并启动Node网桥:

  • macOS: ~/Documents/Max 9/Packages/
  • 窗户: %USERPROFILE%\Documents\Max 9\Packages\

然后打开 max/bach-mcp/patchers/bach-mcp.maxpat 然后跑 script start 在 补丁。

3.启动服务器:

服务器必须保持运行才能与之交互,请运行以下命令启动它:

python py/main.py                 # serves over HTTP at http://127.0.0.1:8000/mcp

4.启动llama服务器(llama.cpp)

安装llama.cpp后,使用以下命令运行llama.cp服务器:

llama-server

这托管了一个web UI,您可以使用它与本地LLM聊天。跑 llama-server -h 用于设置上下文窗口、缓存类型等的标志。

5.将MCP服务器添加到llama服务器web UI

打开llama服务器web UI http://localhost:8080.

  1. 点击 + 聊天栏旁边的图标,导航到“MCP服务器”->“管理MCP服务器”
  2. 在“管理服务器”下,单击“添加新服务器”
  3. 在“服务器URL”字段中,输入启动MCP服务器时打印的URL(默认为 http://127.0.0.1:8000/mcp)
  4. 单击“添加”,保存设置,然后开始与LLM聊天

安装说明(Claude Desktop)

在这里,主机为您启动流程,您也可以这样做 不 用手启动-- 您只需在主机的配置中注册它。

  1. 安装克劳德桌面: https://claude.ai/download
  2. 将Claude Desktop指向此MCP服务器。

Claude配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

示例(claude_desktop_config.json 这个仓库中有一个副本——编辑 匹配您机器的绝对路径):

{
  "mcpServers": {
    "bach-mcp": {
      "command": "/absolute/path/to/conda/envs/bach-mcp/bin/python",
      "args": ["/absolute/path/to/bach-mcp/py/main.py", "serve", "--stdio"],
      "cwd": "/absolute/path/to/bach-mcp"
    }
  }
}

这 --stdio 旗是 必需的 这里:默认传输是HTTP,所以 如果没有它,启动的进程将启动一个HTTP侦听器,主机无法通信 越过管道。

然后完全重新启动Claude Desktop。

文件映射(每个文件的用途)

根文件

  • README.md:设置和使用。
  • environment.yml:Conda-env定义(Python 3.11)。
  • requirements.in:直接依赖Python(mcp, requests).
  • requirements.txt:pip安装的固定、编译的依赖锁。
  • claude_desktop_config.json:示例Claude Desktop MCP服务器配置 标准 传输(编辑绝对路径)。
  • .gitignore / .gitattributes:忽略规则和Git文本规范化。

Python包(py/)

  • py/main.py:具有两个子命令的单个入口点-- serve (默认情况下;MCP服务器用于MCP主机应用程序,如Claude Desktop,默认情况下通过HTTP或stdio --stdio)以及 agent (针对任何OpenAI兼容提供商的自托管REPL)。两者构造相同 BachMCPServer +FastMCP应用程序。
  • py/bach_mcp/__init__.py:公共出口。
  • py/bach_mcp/server.py:高级网桥服务器(消息队列、发送/等待帮助程序、生命周期)。
  • py/bach_mcp/tcp.py:低级TCP服务器/客户端类(3001 入境, 3000 出境)。
  • py/bach_mcp/mcp_app.py:FastMCP工具注册——工具的唯一真实来源,由两个角色使用。
  • py/bach_mcp/mcp_tools.py:将MCP工具暴露给本地代理的进程中桥接(list_tools / call_tool).
  • py/bach_mcp/agent.py:与提供者无关的工具调用循环(Agent, AgentConfig).
  • py/bach_mcp/BACH_SKILL.md:系统提示/技能(会话协议、llll语法、插槽、管弦乐布局)。
  • py/bach_mcp/bach_score_schema.json:描述巴赫乐谱格式的JSON模式。
  • py/bach_mcp/llm/provider.py: LLMProvider 接口,中性类型(ToolSpec/ToolCall/AssistantTurn), ProviderConfig,以及 build_provider() 工厂。
  • py/bach_mcp/llm/openai_compat.py: OpenAICompatibleProvider --涵盖Ollama、llama.cpp、vLLM、OpenAI等。

最大包装(max/bach-mcp)

  • max/bach-mcp/patchers/bach-mcp.maxpat:修补程序包含 bach.roll, bach.portal,以及 node.script.
  • max/bach-mcp/js/bachTCP.js:Max TCP网桥的节点。
    • Max继续收听 0.0.0.0:3000 用于Python命令。
    • Max客户端连接到Python 127.0.0.1:3001 用于回复/事件。