昨天讓 agent-brain
可以掛載多種 tools:
"http://127.0.0.1:9000/mcp"
:自動連線並載入遠端所有 tools"./server_stdio.py"
:啟動本地 server 並載入 toolsGetUserInfoTool()
:直接掛載自定義 tool今天要處理的,是讓 agent-brain
也能支援 Claude 所使用的 MCP server config 格式。
Claude Desktop 會透過 JSON config 註冊 MCP servers,例如:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
}
這種結構讓每個 server 都以指令的方式啟動,並由 MCP client 自動管理連線。
今天新增了對這類 config-based MCP servers 的支援,現在 tools
參數除了可以放
也能放入整份 config dict。
例如:
dc_config = {
"mcpServers": {
"discord": {
"command": "node",
"args": ["./discordmcp/build/index.js"],
"env": {
"DISCORD_TOKEN": "..."
},
}
}
}
tools: list[BaseTool | str | dict] = [
"./mcp-server/server_stdio.py", # add
"http://127.0.0.1:9000/mcp", # multiply
dc_config, # dc operation
]
agent-brain
在啟動時會自動解析這類 config,啟動對應的 MCP server 並載入其中的 tools。
這次選用 v-3/discordmcp 作為測試。
它提供兩個工具:
send-message
向指定的 Discord channel 發送訊息。
{
"channel": "general",
"message": "Hello from MCP!"
}
read-messages
讀取 Discord channel 的近期訊息。
{
"channel": "general",
"limit": 50
}
掛上 dc_config
後,agent-brain
會自動啟動 Node server 並連線。
下圖是實際互動過程,可以看到:
read-messages
send-message
發送訊息我的題目:
agent-brain
現在支援四種掛載方式:
這樣不論是自製 tool、本地調試、還是掛外部開源 MCP server,都能統一接入。