Magg
MAGG functions as a meta-MCP server that aggregates and manages multiple MCP servers, enabling LLMs to dynamically extend their capabilities.
Dynamic Server Management: Add, remove, enable, and disable MCP servers.
Tool Aggregation & Proxying: Access tools, resources, and prompts from multiple MCP servers through a unified interface.
Intelligent Configuration: Configure and add servers from URLs using LLM sampling.
Health Monitoring: Check server health, handle unresponsive servers, and view statistics.
Discovery: Search for and discover new MCP servers online.
Customization: Assign prefixes to tools for organized access and reload configurations dynamically.
Authentication Support: Secure access with optional RSA-based JWT authentication.
Provides ability to discover and integrate MCP servers hosted on GitHub repositories, fetching setup instructions and configuration details directly from source.
Enables installation and management of Python-based MCP servers published on PyPI, with version tracking and dependency management.
Supports Python-based MCP servers with automatic configuration and tool proxying capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Maggsearch for weather-related MCP servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🧲 Magg - The MCP Aggregator
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.
Related MCP server: MCP-MCP
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_statusandmagg_checktools 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:
# Install Magg as a tool
uv tool install magg
# Run with stdio transport (for Claude Desktop, Cline, etc.)
magg serve
# Run with HTTP transport (for system-wide access)
magg serve --httpAlternative: Run Directly from GitHub
You can also run Magg directly from GitHub without installing:
# Run with stdio transport
uvx --from git+https://github.com/sitbon/magg.git magg
# Run with HTTP transport
uvx --from git+https://github.com/sitbon/magg.git magg serve --httpLocal Development
For development, clone the repository and install in editable mode:
# Clone the repository
git clone https://github.com/sitbon/magg.git
cd magg
# Install in development mode with dev dependencies
uv sync --dev
# Or with poetry
poetry install --with dev
# Run the CLI
magg --helpDocker
Magg is available as pre-built Docker images from GitHub Container Registry:
# 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 variable
docker 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 directory
docker run -p 8000:8000 \
-v /path/to/config:/home/magg/.magg \
ghcr.io/sitbon/magg:latestDocker Image Strategy
Magg uses a multi-stage Docker build with three target stages:
pro(Production): Minimal image with WARNING log level, suitable for production deploymentspre(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-devPython-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:
# Clone the repository
git clone https://github.com/sitbon/magg.git
cd magg
# Run production version
docker 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 configuration
docker compose up magg-dev
# Build and run with custom registry
REGISTRY=my.registry.com docker compose build
REGISTRY=my.registry.com docker compose pushSee compose.yaml and .env.example for configuration options.
Usage
Running Magg
Magg can run in three modes:
Stdio Mode (default) - For integration with Claude Desktop, Cline, Cursor, etc.:
magg serveHTTP Mode - For system-wide access or web integrations:
magg serve --http --port 8000Hybrid Mode - Both stdio and HTTP simultaneously:
magg serve --hybrid magg serve --hybrid --port 8080 # Custom portThis is particularly useful when you want to use Magg through an MCP client while also allowing HTTP access. For example:
With Claude Code:
# Configure Claude Code to use Magg in hybrid mode claude mcp add magg -- magg serve --hybrid --port 42000With mbro:
# mbro hosts Magg and connects via stdio mbro connect magg "magg serve --hybrid --port 8080" # Other mbro instances can connect via HTTP mbro 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 serversmagg_add_server- Add a new MCP servermagg_remove_server- Remove a servermagg_enable_server/magg_disable_server- Toggle server availabilitymagg_search_servers- Search for MCP servers onlinemagg_list_tools- List all available tools from all serversmagg_smart_configure- Intelligently configure a server from a URLmagg_analyze_servers- Analyze configured servers and suggest improvementsmagg_status- Get server and tool statisticsmagg_check- Health check servers with repair actions (report/remount/unmount/disable)magg_reload_config- Reload configuration from disk and apply changesmagg_load_kit- Load a kit and its servers into the configurationmagg_unload_kit- Unload a kit and optionally its servers from the configurationmagg_list_kits- List all available kits with their statusmagg_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:
# 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 perspective
mbro:local-magg> call magg_status
mbro:local-magg> call magg_list_serversMBro also supports:
Scripts: Create
.mbrofiles with commands for automationShell-style arguments: Use
key=valuesyntax instead of JSONTab completion: Rich parameter hints after connecting
See the MBro Documentation for details.
Authentication
Magg supports optional bearer token authentication to secure access:
Quick Start
Initialize authentication (creates RSA keypair):
magg auth initGenerate a JWT token for clients:
# Generate token (displays on screen) magg auth token # Export as environment variable export MAGG_JWT=$(magg auth token -q)Connect with authentication:
Using
MaggClient(auto-loads from MAGG_JWT):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:
from fastmcp import Client from 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 defaultPrivate key can be set via
MAGG_PRIVATE_KEYenvironment variableTo disable auth, remove keys or set non-existent
key_pathin.magg/auth.json
Authentication Commands
magg auth init- Initialize authentication (generates RSA keypair)magg auth status- Check authentication configurationmagg auth token- Generate JWT tokenmagg 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.jsonand reloads automatically (uses watchdog when available)SIGHUP signal: Send
kill -HUP <pid>to trigger immediate reload (Unix-like systems)MCP tool: Use
magg_reload_configtool from any MCP clientSmart 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 reloadingMAGG_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 modeMAGG_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 prefix and tool name (default: "_")
Example configuration:
{
"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:
Using the LLM (recommended):
"Add the Playwright MCP server" "Search for and add a calculator tool"Manual configuration via
magg_add_server:name: playwright url: https://github.com/microsoft/playwright-mcp command: npx @playwright/mcp@latest prefix: pwThe
magg serverCLI (see below)Direct config editing: Edit
.magg/config.jsondirectly
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.)
# List servers (human-readable, or JSON on stdout for scripting)
magg server list
magg server list --json
# Add a server
magg server add playwright https://github.com/microsoft/playwright-mcp \
--command "npx @playwright/mcp@latest" --prefix pw
# Add a server without enabling it, with transport options
magg 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 / remove
magg server enable playwright
magg server disable playwright
magg server info playwright --json
magg server remove playwrightReal-time Notifications with MaggClient
The MaggClient now supports real-time notifications from backend MCP servers:
from magg import MaggClient, MaggMessageHandler
# Using callbacks
handler = 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:
# List available kits
magg 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 kit
magg kit info web-tools
# Export the current configuration (or a loaded kit) as a kit file
magg kit export --name my-kit --output my-kit.jsonWhen 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 kitsmagg_load_kit- Load a kit and its serversmagg_unload_kit- Unload a kitmagg_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:
# Create a setup script
cat > setup.mbro <<EOF
# Connect to Magg and check status
connect magg magg serve
call magg_status
call magg_list_servers
# Add a new server if needed
call magg_add_server name=calculator source="npx -y @modelcontextprotocol/server-calculator"
EOF
# Run the script
mbro -x setup.mbroMCP 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
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
Available Tools
16 toolsmagg_add_serverC
Add a new MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (for commands) | |
| env | No | Environment variables (dict or JSON string) | |
| uri | No | URI for HTTP servers | |
| name | Yes | Unique server name | |
| notes | No | Setup notes | |
| enable | No | Whether to enable the server immediately (default: True) | |
| prefix | No | Tool prefix (defaults to conformed server name) | |
| source | Yes | URL of the server package/repository | |
| command | No | Full command to run (e.g., 'python server.py', 'npx @playwright/mcp@latest') | |
| transport | No | Transport-specific configuration (dict or JSON string) Common options for all command-based servers: - `keep_alive` (boolean): Keep the process alive between requests (default: true) Python servers (command="python"): - `python_cmd` (string): Python executable path (default: sys.executable) Node.js servers (command="node"): - `node_cmd` (string): Node executable path (default: "node") NPX servers (command="npx"): - `use_package_lock` (boolean): Use package-lock.json if present (default: true) UVX servers (command="uvx"): - `python_version` (string): Python version to use (e.g., "3.13") - `with_packages` (array): Additional packages to install - `from_package` (string): Install tool from specific package HTTP/SSE servers (uri-based): - `headers` (object): HTTP headers to include - `auth` (string): Authentication method ("oauth" or bearer token) - `sse_read_timeout` (number): Timeout for SSE reads in seconds Examples: - Python: `{"keep_alive": false, "python_cmd": "/usr/bin/python3"}` - UVX: `{"python_version": "3.11", "with_packages": ["requests", "pandas"]}` - HTTP: `{"headers": {"Authorization": "Bearer token123"}, "sse_read_timeout": 30}` |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the basic action. Without annotations, it fails to mention side effects, installation steps, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. While it is not verbose, it could benefit from slightly more detail without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a complex input schema with 10 parameters and no annotations, the description does not provide any context about the server setup process or how parameters relate. It is insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of parameters with descriptions. The description adds no additional meaning to the parameters, which is acceptable given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb and resource clearly: 'Add a new MCP server.' It distinguishes the tool from siblings like 'remove_server' and 'enable_server'. However, it is minimally descriptive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, nor any prerequisites or context for using the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_analyze_serversB
Analyze configured servers and provide insights using LLM.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read-like operation ('provide insights') but does not explicitly state if it modifies state, authentication requirements, or limitations. Important behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and no output schema, the description is too minimal. It does not explain what insights are provided, output format, or how the LLM is used. Incomplete for a tool performing analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters with 100% coverage. The description adds no param info (trivially fine). Baseline 3 with no need for extra detail; slight improvement for clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (analyze) and resource (configured servers), and mentions use of LLM. It distinguishes from siblings like magg_list_servers and magg_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like magg_search_servers or magg_smart_configure. No conditions or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_checkC
Check health of all mounted servers and handle unresponsive ones.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to take for unresponsive servers: 'report' (default), 'remount', 'unmount', or 'disable' | report |
| timeout | No | Timeout in seconds for health check per server |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden for behavioral disclosure. It states health check and handling unresponsive servers but does not explicitly warn about potential destructive side effects of 'remount', 'unmount', or 'disable' actions. The lack of caution about state changes or permissions needed is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise with no wasted words. It front-loads the core action (check health) and scope (all mounted servers). While it could benefit from additional context, the conciseness itself is a strength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a tool with output schema and potential side effects. It does not mention return value, behavior of each action, or impact on server state. The AI lacks crucial context to decide whether to use this tool or how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description adds no further meaning beyond the schema. It does, however, implicitly reinforce the action parameter's role by mentioning 'handling' unresponsive servers. Baseline 3 is appropriate as schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks health of all mounted servers and handles unresponsive ones. It uses specific language ('check health', 'handle unresponsive servers') and the resource scope is explicit. However, it does not explicitly differentiate from sibling tools like magg_status or magg_list_servers, missing a chance to clarify its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives or when to choose each action (report, remount, unmount, disable). There is no mention of prerequisites, context, or exclusions, leaving the AI to infer usage from schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_disable_serverC
Disable a server.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Server name to disable |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It only says 'Disable a server' without disclosing behavioral traits like reversibility, side effects on connections, or permission requirements. This is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, but at the cost of completeness. One sentence with no structure; it is not front-loaded with important context. Adequately concise but not optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity and presence of an output schema, the description is too brief. It lacks details on the meaning of disable, expected outcomes, and prerequisites, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The parameter description 'Server name to disable' adds little beyond the schema itself. No additional semantic context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action and resource but lacks specificity. It does not distinguish between similar actions like disable vs. remove or enable. The verb 'disable' is vague without indicating the scope or effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings such as magg_remove_server or magg_enable_server. The description provides no context about prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_enable_serverC
Enable a server.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Server name to enable |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description 'Enable a server' must stand alone. It fails to disclose behavioral traits such as whether the operation is reversible, what side effects occur, authentication requirements, or the impact on the server's state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of a single sentence that is front-loaded with the key action and resource. Every word earns its place, though it could benefit from a minor expansion for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter) and the presence of an output schema, the description is minimally adequate. However, it lacks contextual details about the enabling behavior and expected outcomes, which would help an agent use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the single parameter 'name' with a clear description 'Server name to enable'. The tool description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Enable a server' clearly states the action (enable) and the resource (server). It effectively distinguishes from sibling tools like 'disable_server' or 'add_server' by using the contrasting verb 'enable'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'magg_disable_server' or other configuration tools. There is no mention of prerequisites, typical scenarios, or when it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_kit_infoC
Get detailed information about a specific kit.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Kit name to get information about |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states a read operation with no details on side effects, permissions, or response format. The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous information. It is front-loaded with the key action and resource, but could benefit from slightly more context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, output schema present), the description is minimally complete. However, it lacks usage guidance and behavioral details, which are important for correct invocation in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the 'name' parameter. The tool description does not add any additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get detailed information' and the resource 'a specific kit', distinguishing it from sibling tools like magg_list_kits which list all kits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as magg_list_kits for listing or magg_load_kit for loading. The description does not mention prerequisites or typical workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_list_kitsA
List all available kits with their status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not explicitly state read-only nature or any other behavioral traits beyond the implied listing operation. Lacks disclosure of permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, no wasted words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described. The description covers the basic purpose. Could hint at relationship with magg_kit_info but is still fairly complete for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so description does not need to add param meaning. Baseline score 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'kits' with added detail 'with their status'. It distinguishes from siblings like magg_kit_info (focused on single kit) and magg_list_servers (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., magg_kit_info for details). Lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_list_serversA
List all configured servers.
Unlike the /servers/all resource, this tool also provides the runtime status of each server (mounted or not).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must cover behavioral traits. It indicates listing with runtime status but does not confirm read-only nature or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no wasted words, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description covers the essential distinction (runtime status). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters present, so schema coverage is 100%. The description need not add parameter details. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'list all configured servers' and distinguishes from an alternative by noting the inclusion of runtime status. This is specific and differentiates from other actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context about when to use this tool over /servers/all by highlighting the runtime status feature. No explicit exclusions or when-not instructions, but clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_load_kitB
Load a kit and its servers into the configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Kit name to load (filename without .json) |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full responsibility for behavioral disclosure. It only says 'load into the configuration' without explaining side effects (e.g., whether it overwrites existing configuration, adds servers, or requires specific permissions). This is insufficient for a state-modifying tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancies. It effectively front-loads the purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having only one parameter and an output schema, the description fails to provide context about the configuration update behavior (e.g., additive vs. replacement), error conditions, or the return value. For a tool that modifies state, more detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema's parameter description ('Kit name to load (filename without .json)'), simply restating that it loads a kit and servers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'load' and resource 'kit and its servers', clearly distinguishing it from sibling tools like magg_unload_kit or magg_add_server. It succinctly states what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as prerequisites or scenarios where loading a kit is appropriate. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_reload_configA
Reload configuration from disk and apply changes.
This will:
Re-read the configuration file
Detect changes (added/removed/modified servers)
Apply changes by mounting/unmounting servers as needed
Note: This operation may briefly interrupt service for affected servers. Config reload can also be triggered via SIGHUP signal on Unix systems.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that service may be briefly interrupted for affected servers and provides a step-by-step breakdown of operations. It could add details on prerequisites or error handling, but current coverage is good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, numbered steps, and a separate note. Every sentence adds value, and it is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and an output schema exists, the description covers the main effects and process. It lacks details on the return value (though output schema handles that) and error conditions, but is otherwise complete for a no-input tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The description does not need to add parameter explanations, but it could explicitly state that no arguments are required. Since it's implicit from schema, a score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reloads configuration from disk and applies changes, with a step-by-step breakdown. It distinguishes from sibling tools that manage individual servers (e.g., magg_add_server) by focusing on the config reload process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the process and notes alternative trigger via SIGHUP, giving context on when to use the tool. However, it does not explicitly state when not to use it or compare with other tools that might achieve similar effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_remove_serverB
Remove a server.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Server name to remove |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. While 'Remove a server' implies a destructive action, it fails to mention any side effects, such as permanent deletion, disconnection, or cleanup of associated resources. The output schema exists but is not referenced, leaving the agent unaware of what response to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with no wasted text. It is front-loaded with the verb. However, it may be overly terse, missing important context that could be added without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool performs a destructive removal operation with only one parameter and no annotations, the description is insufficient. It does not explain return values (despite an output schema existing), confirm requirements, or outline post-removal effects. The description leaves the agent underinformed for correct and safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because the single parameter 'name' is described as 'Server name to remove'. The tool description adds no additional semantic information beyond what the input schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'server', making its primary action immediately obvious. It effectively distinguishes from sibling tools like magg_add_server, magg_disable_server, and magg_enable_server, which perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not specify prerequisites, such as whether the server should be disabled before removal, or context in which removal is appropriate. This lack of usage direction may lead to incorrect invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_search_serversC
Search for MCP servers online.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return per search source | |
| query | Yes | Search query for MCP servers |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It only states 'search online' without revealing behavior such as network requirements, result format, pagination, error handling, or limits. The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one sentence that efficiently conveys the core purpose. It is front-loaded but may be too terse, lacking context for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that output schema exists, return value explanation is not needed. However, the description omits critical context about search sources, result behavior, and how this differs from sibling tools, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for MCP servers online, specifying both the action and the resource. It differentiates from 'magg_list_servers' by implying external search, but could be more specific about the search scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'magg_list_servers' (listing known servers) or 'magg_add_server'. Missing context on appropriate search scenarios or search source defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_smart_configureA
Use LLM sampling to intelligently configure and add a server from a URL.
This tool performs the complete workflow:
Collects metadata about the source URL
Uses LLM sampling (if context provided) to generate optimal configuration
Automatically adds the server to your configuration
Note: This requires an LLM context for intelligent configuration. Without LLM context, it falls back to basic metadata-based heuristics. For generating configuration prompts without sampling, use configure_server_prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | URL of the server package/repository | |
| allow_add | No | Whether to automatically add the server after configuration (default: False) | |
| server_name | No | Optional server name (auto-generated if not provided) |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description outlines the three-step workflow (metadata collection, LLM-based config generation, auto-add) and notes the fallback heuristic, but does not explicitly detail side effects beyond 'automatically adds the server.' Given no annotations, this is adequate but could be more explicit about mutability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with main purpose, and structured with steps and a note. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the workflow, fallback, and alternative tool, but slightly misstates 'automatically adds' when the default allow_add is false, causing a minor completeness gap. Output schema exists, so return values are not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra parameter details beyond the schema, thus meets the minimum but no bonus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool uses LLM sampling to intelligently configure and add a server from a URL, distinguishing it from sibling tools like configure_server_prompt (explicitly mentioned) and others in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly specifies when to use (with LLM context for intelligent config), when to avoid (fallback to heuristics without context), and suggests an alternative (configure_server_prompt for generating prompts without sampling).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_statusB
Get basic Magg server status and statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It only states the tool gets status, but does not mention any other behavioral traits such as authentication requirements or rate limits. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. It is efficient but could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and an output schema exists (though not provided), the description is reasonably complete for a simple status tool. It states the key purpose, and the output schema should cover return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema description coverage is 100% trivially. The baseline score for 0 parameters is 4, and the description adds no parameter information since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets 'basic Magg server status and statistics', which is a specific verb+resource. It is distinguishable from siblings like magg_analyze_servers or magg_list_servers, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like magg_check or magg_analyze_servers. The description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magg_unload_kitB
Unload a kit and optionally its servers from the configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Kit name to unload |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It indicates a destructive action (unloading from configuration) but does not disclose reversibility, permissions required, or what happens to the kit's servers beyond being optional. Insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 12 words, front-loaded with the main action. Every word earns its place; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple input and output schema, but the description lacks context on what unloading entails, its effects, and when to use it given many sibling tools (e.g., magg_remove_server, magg_load_kit). More context would aid agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'name' with a description, achieving 100% schema description coverage. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool unloads a kit and optionally its servers from configuration, with a clear verb and resource. It distinguishes from siblings like magg_load_kit (opposite) and magg_remove_server (different focus).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for unloading a kit, but does not explicitly state when to use this tool versus alternatives (e.g., magg_remove_server for removing servers only). No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
proxyA
Main proxy tool for dynamic access to mounted MCP servers.
This tool provides a unified interface for:
Listing available tools, resources, or prompts across servers
Getting detailed info about specific capabilities
Calling tools, reading resources, or getting prompts
Annotations are used to provide rich type information for results, which can generally be expected to ultimately include JSON-encoded EmbeddedResource results that can be interpreted by the client.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments for a 'call' action (call tool, read resource, or get prompt). Can be a dict or JSON string. | |
| path | No | Name or URI of the specific tool/resource/prompt (with FastMCP prefixing). Not allowed for 'list' and 'info' actions. | |
| type | Yes | Type of MCP capability to interact with: tool, resource, or prompt. | |
| limit | No | Maximum number of items to return (for 'list' action only). Default: 100 | |
| action | Yes | Action to perform: list, info, or call. | |
| offset | No | Number of items to skip (for 'list' action only). Default: 0 | |
| filter_server | No | Filter results by server name prefix (for 'list' action only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions that results include JSON-encoded EmbeddedResource results, without disclosing behavioral traits like read-only/destructive nature, authentication needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loading the main purpose and using bullet points for clarity, with no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a proxy tool with multiple actions and types, the description provides moderate completeness: it explains the unified interface and hints at return types. However, it lacks details on pagination, error handling, or result structure beyond JSON encoding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so baseline is 3. The description does not add significant meaning beyond what the schema provides, repeating parameter types and actions without new context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a main proxy tool for dynamic access to mounted MCP servers, listing specific actions (list, info, call) and types (tool, resource, prompt). It distinguishes from sibling tools which are for server management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a unified interface for interacting with MCP capabilities, implying usage for accessing tools/resources/prompts. It does not explicitly state when not to use or alternatives, but siblings are clearly different in purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
16 tool updates
v1.1.0- Changed
magg_add_server14 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / command / titleRemoved value: -"Command" - removed
Input schema / properties / cwd / titleRemoved value: -"Cwd" - removed
Input schema / properties / enable / titleRemoved value: -"Enable" - removed
Input schema / properties / env / titleRemoved value: -"Env" - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Input schema / properties / notes / titleRemoved value: -"Notes" - removed
Input schema / properties / prefix / titleRemoved value: -"Prefix" - removed
Input schema / properties / source / titleRemoved value: -"Source" - removed
Input schema / properties / transport / titleRemoved value: -"Transport" - removed
Input schema / properties / uri / titleRemoved value: -"Uri" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_analyze_servers1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
magg_check6 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / action / titleRemoved value: -"Action" - removed
Input schema / properties / timeout / titleRemoved value: -"Timeout" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_disable_server5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_enable_server5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_kit_info5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_list_kits4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_list_servers4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_load_kit5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_reload_config4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_remove_server5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_search_servers6 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / query / titleRemoved value: -"Query" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_smart_configure7 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / allow_add / titleRemoved value: -"Allow Add" - removed
Input schema / properties / server_name / titleRemoved value: -"Server Name" - removed
Input schema / properties / source / titleRemoved value: -"Source" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_status4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
magg_unload_kit5 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / name / titleRemoved value: -"Name" - removed
Output schema / properties / errors / titleRemoved value: -"Errors" - removed
Output schema / properties / output / titleRemoved value: -"Output" - removed
Output schema / titleRemoved value: -"MaggResponse"
- Changed
proxy8 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / action / titleRemoved value: -"Action" - removed
Input schema / properties / args / titleRemoved value: -"Args" - removed
Input schema / properties / filter_server / titleRemoved value: -"Filter Server" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / offset / titleRemoved value: -"Offset" - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / type / titleRemoved value: -"Type"
16 tool updates
v1.0.0- First observed
magg_add_server - First observed
magg_analyze_servers - First observed
magg_check - First observed
magg_disable_server - First observed
magg_enable_server - First observed
magg_kit_info - First observed
magg_list_kits - First observed
magg_list_servers - First observed
magg_load_kit - First observed
magg_reload_config - First observed
magg_remove_server - First observed
magg_search_servers - First observed
magg_smart_configure - First observed
magg_status - First observed
magg_unload_kit - First observed
proxy
TDQS
Each tool has a clearly distinct purpose, with detailed descriptions that prevent ambiguity. Even similar-sounding tools like magg_add_server and magg_smart_configure are well-differentiated by their methods.
Most tools follow a magg_verb_noun pattern (e.g., add_server, list_servers), but there are minor deviations: 'proxy' lacks the prefix, 'magg_check' is a single verb, and 'magg_status' is a noun. Overall, the naming is still predictable and readable.
16 tools cover a comprehensive range of server and kit management operations without being excessive. Each tool serves a necessary function, making the count ideal for the server's scope.
The tool set covers core CRUD operations for servers and kits, plus health checks, analysis, online search, smart configuration, and dynamic access via proxy. Minor gaps like explicit server editing tools are absent but manageable via config reload.
Maintenance
Related MCP Connectors
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA proxy server that unifies multiple MCP servers, enabling seamless tool, prompt, and resource management via the MetaMCP App.39155Apache 2.0
- AlicenseAqualityBmaintenanceA Meta-MCP Server that acts as a tool discovery service, helping AI assistants find appropriate MCP servers from a database of 800+ servers when they need capabilities that aren't currently available.123MIT
- FlicenseNot gradedqualityDmaintenanceA meta-MCP server that acts as a universal gateway, allowing users to discover and execute tools from thousands of other MCP servers through semantic search. It dynamically loads servers on demand and provides standardized functions for searching, discovering, and running tools across the entire MCP ecosystem.6-
- FlicenseAqualityDmaintenanceA meta MCP server that scales LLMs to 1000+ servers via automatic routing, without exposing all servers and tools directly.317-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sitbon/magg'
If you have feedback or need assistance with the MCP directory API, please join our Discord server