Magg

io.github.sitbon由 GitHub 帳號 sitbon 發布v1.2.1更新於 Oct 24, 2026

Aggregates and proxies other MCP servers, letting LLMs discover, add, and manage tools at runtime.

已驗證STDIO僅桌面開發者工具AI 與機器學習

概覽

AI 產生的概覽

一個中繼式 MCP 伺服器,用來彙整並代理其他 MCP 伺服器,讓助理在執行時探索、新增、啟用、停用與移除工具。

可以做什麼
  • 線上搜尋 MCP 伺服器,並依網址或指令進行設定
  • 新增、移除、啟用、停用與列出已設定的後端伺服器
  • 列出所有後端的工具,並以統一前綴代理
  • 檢查伺服器健康狀態、查看統計資料,並從磁碟重新載入設定
  • 將伺服器打包成套件,並載入、卸載、列出或檢視套件資訊
適用情境
適合想用單一 MCP 連線管理多個 MCP 伺服器,或希望助理在對話過程中自行擴充工具、不必手動修改用戶端設定檔的情境。也適合依專案把相關伺服器組成套件。
執行需求
以 Python 套件(magg,可用 uvx 執行)透過 stdio 在本機執行,需要 Python 3.12 以上,建議搭配 uv。可選用 HTTP 模式與 JWT bearer 權杖驗證。它新增的後端伺服器可能需要各自的執行環境(例如 npx)與憑證。設定存放於 .magg/config.json。
安裝前請注意
它讓助理自行安裝並執行其他 MCP 伺服器,代表可能啟動任意指令與套件,新增前應先確認內容。設定變更會寫入 .magg/config.json,伺服器也可能被移除。可選驗證使用 RSA 金鑰對,私鑰可透過 MAGG_PRIVATE_KEY 或 auth private-key 指令讀取,需妥善保管。可用 MAGG_READ_ONLY 啟用唯讀模式。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Magg,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

🧲 Magg - The MCP Aggregator

[Python Version] [PyPI Version] [GitHub Release] [DeepWiki] [Downloads]

[Tests] [Docker]

A Model Context Protocol server that manages, aggregates, and proxies other MCP servers, enabling LLMs to dynamically extend their own capabilities.

What is Magg?

Magg is a meta-MCP server that acts as a central hub for managing multiple MCP servers. It provides tools that allow LLMs to:

  • Search for new MCP servers and discover setup instructions
  • Add and configure MCP servers dynamically
  • Enable/disable servers on demand
  • Aggregate tools from multiple servers under unified prefixes
  • Persist configurations across sessions

Think of Magg as a "package manager for LLM tools" - it lets AI assistants install and manage their own capabilities at runtime.

Features

  • Self-Service Tool Management: LLMs can search for and add new MCP servers without human intervention.
  • Dynamic Configuration Reloading: Automatically detects and applies config changes without restarting.
  • Automatic Tool Proxying: Tools from added servers are automatically exposed with configurable prefixes.
  • ProxyMCP Tool: A built-in tool that proxies the MCP protocol to itself, for clients that don't support notifications or dynamic tool updates (which is most of them currently).
  • Smart Configuration: Uses MCP sampling to intelligently configure servers from just a URL.
  • Persistent Configuration: Maintains server configurations in .magg/config.json.
  • Multiple Transport Support: Works with stdio, HTTP, and in-memory transports.
  • Bearer Token Authentication: Optional RSA-based JWT authentication for secure HTTP access.
  • Docker Support: Pre-built images for production, staging, and development workflows.
  • Health Monitoring: Built-in magg_status and magg_check tools for server health checks.
  • Real-time Messaging: Full support for MCP notifications and messages - receive tool/resource updates and progress notifications from backend servers.
  • Python 3.12+ Support: Fully compatible with Python 3.12 and 3.13.
  • Kit Management: Bundle related MCP servers into kits for easy loading/unloading as a group.
  • MBro CLI: Included MCP Browser for interactive exploration and management of MCP servers, with script support for automation.

Installation

Prerequisites

  • Python 3.12 or higher (3.13+ recommended)
  • uv (recommended) - Install from astral.sh/uv

Quick Install (Recommended)

The easiest way to install Magg is as a tool using uv:

bash
# Install Magg as a tooluv tool install magg
# Run with stdio transport (for Claude Desktop, Cline, etc.)magg serve
# Run with HTTP transport (for system-wide access)magg serve --http

Alternative: Run Directly from GitHub

You can also run Magg directly from GitHub without installing:

bash
# Run with stdio transportuvx --from git+https://github.com/sitbon/magg.git magg
# Run with HTTP transportuvx --from git+https://github.com/sitbon/magg.git magg serve --http

Local Development

For development, clone the repository and install in editable mode:

bash
# Clone the repositorygit clone https://github.com/sitbon/magg.gitcd magg
# Install in development mode with dev dependenciesuv sync --dev
# Or with poetrypoetry install --with dev
# Run the CLImagg --help

Docker

Magg is available as pre-built Docker images from GitHub Container Registry:

bash
# Run production image (WARNING log level)docker run -p 8000:8000 ghcr.io/sitbon/magg:latest
# Run with authentication (mount or set private key)docker run -p 8000:8000 \  -v ~/.ssh/magg:/home/magg/.ssh/magg:ro \  ghcr.io/sitbon/magg:latest
# Or with environment variabledocker run -p 8000:8000 \  -e MAGG_PRIVATE_KEY="$(cat ~/.ssh/magg/magg.key)" \  ghcr.io/sitbon/magg:latest
# Run beta image (INFO log level)docker run -p 8000:8000 ghcr.io/sitbon/magg:beta
# Run with custom config directorydocker run -p 8000:8000 \  -v /path/to/config:/home/magg/.magg \  ghcr.io/sitbon/magg:latest
Docker Image Strategy

Magg uses a multi-stage Docker build with three target stages:

  • pro (Production): Minimal image with WARNING log level, suitable for production deployments
  • pre (Pre-production): Same as production but with INFO log level for staging/testing (available but not published)
  • dev (Development): Includes development dependencies and DEBUG logging for troubleshooting

Images are automatically published to GitHub Container Registry with the following tags:

  • Version tags (from main branch): 1.2.3, 1.2, dev, 1.2-dev, 1.2-dev-py3.12, etc.
  • Branch tags (from beta branch): beta, beta-dev
  • Python-specific dev tags: beta-dev-py3.12, beta-dev-py3.13, etc.

Pull requests build and test images but do not publish them unless a maintainer adds the push-image label, which publishes ephemeral pr-NN / pr-NN-dev tags (same-repo PRs only). Ephemeral pr-* tags and untagged manifests are cleaned up weekly; version tags are kept forever, so pinned deployments are never affected.

Docker Compose

For easier management, use Docker Compose:

bash
# Clone the repositorygit clone https://github.com/sitbon/magg.gitcd magg
# Run production versiondocker compose up magg
# Run staging version (on port 8001)docker compose up magg-beta
# Run development version (on port 8008)# This uses ./.magg/config.json for configurationdocker compose up magg-dev
# Build and run with custom registryREGISTRY=my.registry.com docker compose buildREGISTRY=my.registry.com docker compose push

See compose.yaml and .env.example for configuration options.

Usage

Running Magg

Magg can run in three modes:

  1. Stdio Mode (default) - For integration with Claude Desktop, Cline, Cursor, etc.:

    bash
    magg serve
  2. HTTP Mode - For system-wide access or web integrations:

    bash
    magg serve --http --port 8000
  3. Hybrid Mode - Both stdio and HTTP simultaneously:

    bash
    magg serve --hybridmagg serve --hybrid --port 8080  # Custom port

    This is particularly useful when you want to use Magg through an MCP client while also allowing HTTP access. For example:

    With Claude Code:

    bash
    # Configure Claude Code to use Magg in hybrid modeclaude mcp add magg -- magg serve --hybrid --port 42000

    With mbro:

    bash
    # mbro hosts Magg and connects via stdiombro connect magg "magg serve --hybrid --port 8080"
    # Other mbro instances can connect via HTTPmbro connect magg http://localhost:8080

Available Tools

Once Magg is running, it exposes the following tools to LLMs:

  • magg_list_servers - List all configured MCP servers
  • magg_add_server - Add a new MCP server
  • magg_remove_server - Remove a server
  • magg_enable_server / magg_disable_server - Toggle server availability
  • magg_search_servers - Search for MCP servers online
  • magg_list_tools - List all available tools from all servers
  • magg_smart_configure - Intelligently configure a server from a URL
  • magg_analyze_servers - Analyze configured servers and suggest improvements
  • magg_status - Get server and tool statistics
  • magg_check - Health check servers with repair actions (report/remount/unmount/disable)
  • magg_reload_config - Reload configuration from disk and apply changes
  • magg_load_kit - Load a kit and its servers into the configuration
  • magg_unload_kit - Unload a kit and optionally its servers from the configuration
  • magg_list_kits - List all available kits with their status
  • magg_kit_info - Get detailed information about a specific kit

Quick Inspection with MBro

Magg includes the mbro (MCP Browser) CLI tool for interactive exploration. A unique feature is the ability to connect to Magg in stdio mode for quick inspection:

bash
# Connect mbro to a Magg instance via stdio (no HTTP server needed)mbro connect local-magg magg serve
# Now inspect your Magg setup from the MCP client perspectivembro:local-magg> call magg_statusmbro:local-magg> call magg_list_servers

MBro also supports:

  • Scripts: Create .mbro files with commands for automation
  • Shell-style arguments: Use key=value syntax instead of JSON
  • Tab completion: Rich parameter hints after connecting

See the MBro Documentation for details.

Authentication

Magg supports optional bearer token authentication to secure access:

Quick Start
  1. Initialize authentication (creates RSA keypair):

    bash
    magg auth init
  2. Generate a JWT token for clients:

    bash
    # Generate token (displays on screen)magg auth token
    # Export as environment variableexport MAGG_JWT=$(magg auth token -q)
  3. Connect with authentication:

    • Using MaggClient (auto-loads from MAGG_JWT):
      python
      from magg.client import MaggClient
      async def main():    async with MaggClient("http://localhost:8000/mcp") as client:        tools = await client.list_tools()
    • Using FastMCP with explicit token:
      python
      from fastmcp import Clientfrom fastmcp.client import BearerAuth
      jwt_token = "your-jwt-token-here"async with Client("http://localhost:8000/mcp", auth=BearerAuth(jwt_token)) as client:    tools = await client.list_tools()
Key Management
  • Keys are stored in ~/.ssh/magg/ by default
  • Private key can be set via MAGG_PRIVATE_KEY environment variable
  • To disable auth, remove keys or set non-existent key_path in .magg/auth.json
Authentication Commands
  • magg auth init - Initialize authentication (generates RSA keypair)
  • magg auth status - Check authentication configuration
  • magg auth token - Generate JWT token
  • magg auth public-key - Display public key (for verification)
  • magg auth private-key - Display private key (for backup)

See examples/authentication.py for more usage patterns.

Configuration

Magg stores its configuration in .magg/config.json in your current working directory. This allows for project-specific tool configurations.

Dynamic Configuration Reloading

Magg supports automatic configuration reloading without requiring a restart:

  • Automatic file watching: Detects changes to config.json and reloads automatically (uses watchdog when available)
  • SIGHUP signal: Send kill -HUP <pid> to trigger immediate reload (Unix-like systems)
  • MCP tool: Use magg_reload_config tool from any MCP client
  • Smart transitions: Only affected servers are restarted during reload

Configuration reload is enabled by default. You can control it with:

  • MAGG_AUTO_RELOAD=false - Disable automatic reloading
  • MAGG_RELOAD_POLL_INTERVAL=5.0 - Set polling interval in seconds (when watchdog unavailable)

See Configuration Reload Documentation for detailed information.

Environment Variables

Magg supports several environment variables for configuration:

  • MAGG_CONFIG_PATH - Path to config file (default: .magg/config.json)
  • MAGG_LOG_LEVEL - Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL (default: INFO)
  • MAGG_STDERR_SHOW=1 - Show stderr output from subprocess MCP servers (default: suppressed)
  • MAGG_AUTO_RELOAD - Enable/disable config auto-reload (default: true)
  • MAGG_RELOAD_POLL_INTERVAL - Config polling interval in seconds (default: 1.0)
  • MAGG_READ_ONLY=true - Run in read-only mode
  • MAGG_SELF_PREFIX - Prefix for Magg tools (default: "magg"). Tools will be named as {prefix}{sep}{tool} (e.g., magg_list_servers)
  • MAGG_PREFIX_SEP - Separator between Magg's prefix and its tool names (default: "_"). Backend server tools always use _
  • MAGG_BACKEND_INIT_TIMEOUT - Seconds to wait for a backend server to start before giving up on it (default: 30, 0 waits forever)

Example configuration:

json
{  "servers": {    "calculator": {      "name": "calculator",      "source": "https://github.com/executeautomation/calculator-mcp",      "command": "npx @executeautomation/calculator-mcp",      "prefix": "calc",      "enabled": true    }  }}

Adding Servers

Servers can be added in several ways:

  1. Using the LLM (recommended):

    "Add the Playwright MCP server""Search for and add a calculator tool"
  2. Manual configuration via magg_add_server:

    name: playwrighturl: https://github.com/microsoft/playwright-mcpcommand: npx @playwright/mcp@latestprefix: pw
  3. The magg server CLI (see below)

  4. Direct config editing: Edit .magg/config.json directly

Managing Servers from the CLI

Server and kit configuration can be managed entirely from the command line — no MCP client or running server required. The CLI edits .magg/config.json directly, and a running Magg instance picks up the changes automatically via config reload. (Tools that require a live server, like magg_search_servers, magg_check, and magg_smart_configure, remain available through any MCP client such as mbro.)

bash
# List servers (human-readable, or JSON on stdout for scripting)magg server listmagg server list --json
# Add a servermagg server add playwright https://github.com/microsoft/playwright-mcp \    --command "npx @playwright/mcp@latest" --prefix pw
# Add a server without enabling it, with transport optionsmagg server add web https://example.com/web --uri http://localhost:9000/mcp \    --transport '{"keep_alive": false}' --disable
# Update an existing server (pass '' to clear an optional field)magg server update playwright --prefix play --notes "Browser automation"magg server update playwright --command "npx @playwright/mcp@next"magg server update playwright --notes ""
# Enable / disable / inspect / removemagg server enable playwrightmagg server disable playwrightmagg server info playwright --jsonmagg server remove playwright

Real-time Notifications with MaggClient

The MaggClient now supports real-time notifications from backend MCP servers:

python
from magg import MaggClient, MaggMessageHandler
# Using callbackshandler = MaggMessageHandler(    on_tool_list_changed=lambda n: print("Tools changed!"),    on_progress=lambda n: print(f"Progress: {n.params.progress}"))
async with MaggClient("http://localhost:8000/mcp", message_handler=handler) as client:    # Client will receive notifications while connected    tools = await client.list_tools()

See Messaging Documentation for advanced usage including custom message handlers.

Kit Management

Magg supports organizing related MCP servers into "kits" - bundles that can be loaded and unloaded as a group:

bash
# List available kitsmagg kit list
# Load a kit (adds all its servers)magg kit load web-tools
# Unload a kit (removes servers only in that kit)magg kit unload web-tools
# Get information about a kitmagg kit info web-tools
# Export the current configuration (or a loaded kit) as a kit filemagg kit export --name my-kit --output my-kit.json

When unloading a kit, servers that belong only to that kit are removed, while servers shared with other kits are kept.

You can also manage kits programmatically through Magg's tools when connected via an MCP client:

  • magg_list_kits - List all available kits
  • magg_load_kit - Load a kit and its servers
  • magg_unload_kit - Unload a kit
  • magg_kit_info - Get detailed kit information

Kits are JSON files stored in ~/.magg/kit.d/ or .magg/kit.d/ that define a collection of related servers. See Kit Documentation for details on creating and managing kits.

MBro Scripts

Automate common workflows with MBro scripts:

bash
# Create a setup scriptcat > setup.mbro <<EOF# Connect to Magg and check statusconnect magg magg servecall magg_statuscall magg_list_servers
# Add a new server if neededcall magg_add_server name=calculator source="npx -y @modelcontextprotocol/server-calculator"EOF
# Run the scriptmbro -x setup.mbro

MCP 2026-07-28 (Stateless Spec)

The MCP 2026-07-28 spec moves the protocol to a stateless request/response core. Magg's take: something still has to own long-lived stdio subprocesses, backend connections, and tool-list caching — and that's exactly the layer an aggregator provides. See Magg and the Stateless MCP Spec for the impact analysis and migration plan, including how Magg bridges pre-2026 (stateful) backends to stateless-era clients and how hierarchical Magg deployments fit in.

Documentation

For more documentation, see docs/.

Appearances

Magg appears in multiple locations. Please feel free to submit a PR to add more appearances below in alphabetical order.

Listing, Index, and other MCP Sites

  • DeepWiki - AI-generated documentation
  • Glama.ai - MCP server listing and hosting

Magg ships a server.json manifest for the official MCP Registry (as io.github.sitbon/magg), and magg_search_servers queries the registry as a first-class discovery source alongside Glama, GitHub, and npm. See MCP Registry Documentation for publishing instructions.

mcp-name: io.github.sitbon/magg

Awesome GitHub MCP Lists

來源:readme.md,提交 dafa9c9

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.2.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分