Skip to main content
Glama

slop-mcp

Install many MCPs without killing your context.

slop-mcp is an MCP orchestrator that lets you connect dozens of MCP servers while exposing only 8 meta-tools to your agent. No more context window bloat from loading hundreds of tool definitions upfront.

Without slop-mcp:  50 MCPs × 20 tools = 1000 tool definitions in context
With slop-mcp:     50 MCPs × 20 tools = 8 tool definitions in context

Documentation

Related MCP server: mcpcute

Event Monitoring

slop-mcp integrates with Claude Code's Monitor tool to stream events from any source — git hooks, build tools, CI pipelines, file watchers, or MCP servers.

slop-mcp monitor demo

# Start watching for events (runs until killed)
slop-mcp monitor &

# Send events from anywhere — shell scripts, git hooks, CI, cron
slop-mcp message "commit a1b2c3f: fix auth token refresh"
slop-mcp message "build failed: src/auth.ts(42): TypeError"
slop-mcp message "tests: 43 passed in 1.2s"
slop-mcp message "deploy v0.14.0 → staging (healthy)"

# Or poll MCPs with a SLOP script
slop-mcp monitor watch-deploy.slop

Use with Claude Code:

Monitor({
  command: "slop-mcp monitor",
  description: "build events",
  persistent: true
})

See the Monitoring Guide for git hook templates, build wrappers, and SLOP polling scripts.

Caveman Your MCPs

Third-party MCPs are written for everybody. They ship 400-token marketing-prose descriptions, deprecation caveats, twelve optional parameters you'll never set, and SDK history nobody asked for. Multiply across a dozen MCPs and that's your whole context budget — burned before the first user turn.

slop-mcp lets you rewrite any MCP's metadata to match what your project actually needs:

Before:  generate_image  →  420-token description, 14 params, 6 enums
After:   generate_image  →   30-token description, "use defaults" hints
Custom:  thumbnail       →   12-token description, 1 param (prompt)

Three progression levels:

  1. Caveman the descriptions — replace verbose vendor prose with terse agent-friendly text. Original tool unchanged, agent sees only your version.

  2. Document hardcoded values — for params your project never varies, the override description says "always pass X" instead of explaining the full enum.

  3. Wrap with a custom SLOP tool — define a brand-new tool with a minimal schema (e.g. just prompt) that calls the underlying MCP with all the boilerplate baked in.

Customizations live at user, project, or local scope and can be exported as portable JSON packs and committed to git — your team gets the same compressed interface on clone.

See the Customization Guide for the full image-MCP walkthrough and the customize_tools reference.

The Problem

As described in Anthropic's article Code Execution with MCP, current MCP implementations face two critical challenges:

  1. Context Window Overload: When agents connect to many tools, loading all tool definitions upfront consumes excessive tokens. With thousands of connected tools, agents must process hundreds of thousands of tokens before even reading user requests.

  2. Intermediate Result Duplication: Tool outputs repeatedly flow through the model's context. Transferring large documents between services forces the same data through the model between operations, potentially doubling token consumption.

The article proposes code execution within MCP as a solution—letting agents discover tools progressively and process data within the execution environment rather than shuttling everything through context.

How slop-mcp Addresses These Issues

slop-mcp takes a different but complementary approach: instead of code execution, it provides an orchestration layer that aggregates multiple MCP servers while maintaining context efficiency.

Progressive Tool Discovery

Rather than loading all tool definitions upfront, slop-mcp exposes just 8 meta-tools:

Tool

Purpose

search_tools

Find tools across all connected MCPs by name or description

execute_tool

Execute a specific tool on a specific MCP

get_metadata

Get full metadata (tools, prompts, resources) for connected MCPs

run_slop

Execute SLOP scripts with access to all MCPs

manage_mcps

Register/unregister MCPs at runtime

auth_mcp

Handle OAuth authentication for MCPs that require it

slop_reference

Search SLOP built-in functions by name or category

slop_help

Get full details for a specific SLOP function

This means an agent connecting to slop-mcp sees 8 tool definitions regardless of how many MCPs are connected or how many tools they expose. The agent discovers tools on-demand via search_tools and executes them via execute_tool.

Lazy Connection & Async Startup

MCP servers connect asynchronously in the background:

Server starts → Immediately ready to serve
                ↓ (background)
                MCP #1 connecting...
                MCP #2 connecting...
                MCP #N connecting...

The server doesn't block waiting for all MCPs to connect. Tools become available progressively as their MCPs come online.

In-Environment Script Execution

The run_slop tool allows executing structured scripts that can:

  • Call multiple tools across different MCPs

  • Process intermediate results without sending them back through the model

  • Chain operations efficiently

This keeps large intermediate data within the execution environment, addressing the token duplication problem.

Efficient Tool Index

Tools are indexed locally when MCPs connect:

  • Fuzzy search by name or description

  • Filter by MCP name

  • No network calls during search

  • Thread-safe concurrent access

Architecture

┌─────────────────────────────────────────────────────┐
│              slop-mcp Server                        │
│  ┌───────────────────────────────────────────────┐  │
│  │  8 Meta-Tools (constant context cost)         │  │
│  │  • search_tools    • execute_tool             │  │
│  │  • get_metadata    • run_slop                 │  │
│  │  • manage_mcps     • auth_mcp                 │  │
│  │  • slop_reference  • slop_help                │  │
│  └───────────────────────────────────────────────┘  │
│                          │                          │
│         ┌────────────────┼────────────────┐         │
│         ▼                ▼                ▼         │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐    │
│  │  Registry  │  │ Tool Index │  │   Auth     │    │
│  │  (async)   │  │  (local)   │  │  (OAuth)   │    │
│  └─────┬──────┘  └────────────┘  └────────────┘    │
└────────┼────────────────────────────────────────────┘
         │
    ┌────┼────┬─────────────┐
    ▼    ▼    ▼             ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│MCP #1│ │MCP #2│ │MCP #3│ │MCP #N│
│stdio │ │ SSE  │ │ HTTP │ │ ...  │
└──────┘ └──────┘ └──────┘ └──────┘

Configuration

slop-mcp uses KDL configuration with three-tier scoping:

Scope

File

Purpose

User

~/.config/slop-mcp/config.kdl

Cross-project defaults

Project

.slop-mcp.kdl

Git-tracked project config

Local

.slop-mcp.local.kdl

Git-ignored secrets

Example configuration:

mcp "filesystem" {
    command "npx" "-y" "@anthropic/mcp-filesystem"
    args "/path/to/allowed/dir"
}

mcp "github" {
    transport "sse"
    url "https://mcp.github.com/sse"
    // OAuth handled automatically via auth_mcp tool
}

Import existing configurations:

import "claude-desktop"  // Import from Claude Desktop config
import "claude-code"     // Import from Claude Code settings

Quick Start

npm

npx @standardbeagle/slop-mcp

PyPI

uvx slop-mcp

Or install globally:

# npm
npm install -g @standardbeagle/slop-mcp

# pip
pip install slop-mcp

From Source

go install github.com/standardbeagle/slop-mcp/cmd/slop-mcp@latest

Usage

As an MCP Server (stdio)

slop-mcp serve

With HTTP/SSE Transport

slop-mcp serve --port 8080

Claude Desktop Configuration

Add to your Claude Desktop config:

{
  "mcpServers": {
    "slop": {
      "command": "slop-mcp",
      "args": ["serve"]
    }
  }
}

Comparison with Code Execution Approach

Aspect

Code Execution (Article)

slop-mcp

Tool Discovery

Filesystem exploration

search_tools with fuzzy matching

Context Cost

Minimal (code interpreter)

Constant (8 meta-tools)

Data Processing

In-sandbox code

SLOP scripts via run_slop

Infrastructure

Secure sandbox required

Standard MCP servers

Flexibility

Full code execution

Structured tool orchestration

Both approaches solve the same core problems. Code execution offers maximum flexibility but requires sandboxing infrastructure. slop-mcp provides a simpler deployment model while still achieving significant context efficiency gains.

License

MIT

Available Tools

10 tools
agnt_watchA

Build shell command streaming agnt daemon events via agnt monitor. Returns command for Claude Code Monitor tool or any shell runner. Filters: target (errors/interactions/process/all), proxy_id, process_id, severity, format.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat: compact (default) or json
targetNoEvent filter: errors, interactions, process, or all (default: all)
proxy_idNoLimit to one agnt proxy
severityNoMinimum severity: info, warning, or error
process_idNoLimit to one process (required when target=process)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool builds a command rather than executing it, and that it returns a command string. However, it omits important behavioral details: whether it requires the agnt daemon to be running, whether the command blocks or streams indefinitely, potential side effects, and error conditions. The description does not contradict any annotations (there are none), but it is insufficient for a tool that constructs a potentially long-running streaming command.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose and then listing filters. Every word earns its place; there is no fluff or repetition. It is concise and well-structured for quick parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, no annotations, and 5 optional parameters, the description should provide a complete mental model. It explains the purpose, return value (a command), and filters. However, it lacks details about how the command is to be used (e.g., whether it must be executed immediately), any prerequisites like daemon availability, and the format of the returned command. This leaves gaps that an agent might need to infer, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already described (format, target, proxy_id, severity, process_id). The description simply lists these filters without adding new meaning beyond the schema. It does summarize the filter list, but the schema already provides equivalent information, so this is baseline level for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds a shell command that streams events from the agnt daemon, specifying the verb 'Build' and the resource (shell command). It lists all filter parameters and distinguishes itself from siblings like execute_tool by noting it returns a command rather than executing it. This makes its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context (used for streaming agnt daemon events via `agnt monitor`) and mentions it returns a command for the Claude Code Monitor tool or any shell runner, implying when it might be used. However, it does not explicitly compare to alternatives or state when not to use it, such as if a user wants direct execution or to interact with a different daemon. The guidance is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_mcpB

OAuth for MCP servers. Actions: login (start flow), logout (drop token), status (check), list (all authenticated). Returns text.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMCP name (required for login/logout/status)
actionYesAction: login, logout, status, or list

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only states 'Returns text' and lists actions, omitting side effects (e.g., token storage, destructive nature of logout), prerequisites, or stateful behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (two sentences) and front-loaded with purpose. However, it may be too terse, missing critical details that could aid an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with multiple actions and no output schema or annotations, the description lacks completeness. It does not cover error handling, OAuth flow details, or output structure beyond 'text', leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 repeats schema info (actions list, name requirement) without adding new semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's domain ('OAuth for MCP servers') and lists specific actions (login, logout, status, list) with brief explanations. It distinguishes from sibling tools which cover other areas like tool execution or metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates usage for authentication tasks but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

customize_toolsB

Override tool descriptions, define custom tools. Actions: set_override, remove_override, list_overrides, define_custom, remove_custom, list_custom, export, import.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcpNoMCP name (set_override, remove_override, list_overrides, export)
bodyNoSLOP script body (define_custom)
dataNoImport pack as JSON string
keysNoGlob patterns selecting keys to export
nameNoCustom tool name matching ^[a-z][a-z0-9_]{0,63}$ (define_custom, remove_custom)
toolNoTool name in MCP (set_override, remove_override)
scopeNoScope: user, project, local. Default: user for set/define, all for remove.
actionYesAction. Per-action args listed in slop-mcp docs.
paramsNoPer-param description overrides keyed by property name (set_override)
overwriteNoOverwrite existing keys on import (default false)
stale_onlyNoOnly entries whose SourceHash differs from upstream (list_overrides, list_custom)
descriptionNoOverride description text (set_override, define_custom)
inputSchemaNoJSON Schema draft-07 subset for tool arguments (define_custom)
include_customNoInclude custom tools in export (default true)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only lists action names and parameter cues, without explaining side effects, permissions, or impact on tool definitions. This is insufficient for a tool that modifies system behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of two sentences. The first sentence captures the core purpose, and the second lists actions. It is front-loaded and efficient, though some might desire more structure or detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters, multiple actions, nested objects, no output schema), the description is too brief. It does not explain how to use each action, what the tool returns, or provide a workflow. The schema covers parameter details, but the description lacks actionable context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already described adequately in the schema. The description adds no extra semantic value beyond listing the action enum values, which are already in the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool is for overriding tool descriptions and defining custom tools, listing the specific actions. This distinguishes it from sibling tools like manage_mcps or execute_tool, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists available actions but does not explicitly explain when to use this tool versus alternatives. It implies usage through the name and actions, but no guidance on when not to use it or which other tools to consider.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_toolA

Execute tool on MCP server. Passes parameters through. Returns underlying MCP response as-is.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_nameYesTarget MCP name
tool_nameYesTool to execute
parametersNoParameters passed to tool verbatim

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It discloses passthrough behavior and that response is returned as-is, which is helpful. However, it does not mention side effects, authentication requirements, rate limits, or error handling, leaving gaps for a mutation-capable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with the core action. Every sentence contributes value with no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic executor with moderate complexity (3 params, nested object) and no output schema, the description adequately states the basic behavior. However, it omits potential errors, prerequisites, and behavior when the target tool is missing, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description. The description adds 'passes parameters through' which reinforces the meaning but does not provide additional context beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute tool on MCP server' with specific verb+resource. It adds that parameters are passed through and response is returned as-is, distinguishing it from sibling tools like manage_mcps or search_tools which have more specific purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for executing any tool on an MCP server, but does not provide explicit guidance on when to use it versus alternatives like search_tools or get_metadata. No when-not or prerequisite information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_metadataA

Metadata for connected MCPs. Compact by default (names+descriptions). verbose=true for full schemas. mcp_name+tool_name for single-tool schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoInclude full input schemas (default: false; always included for mcp_name+tool_name queries)
mcp_nameNoLimit to one MCP
file_pathNoWrite metadata to file
tool_nameNoLimit to one tool (use with mcp_name)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It transparently describes output defaults and filtering behavior, but it does not disclose whether the operation is read-only, whether it has side effects, or any auth/error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with no filler. Key behavior is front-loaded and every sentence adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a metadata retrieval tool, the description covers the main output modes and filter combinations sufficiently. It does not describe the file_path write format or error behavior, but those are secondary and the schema supplies the parameter intent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all four parameters, and the description adds useful semantics beyond the schema: it explains that default output is names+descriptions, that verbose=true yields full schemas, and that combining mcp_name and tool_name returns a single-tool schema. This helps an agent use the parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (connected MCPs) and the function (returning metadata), and the tool name reinforces the retrieval action. It is distinguishable from siblings like manage_mcps and execute_tool, but the phrasing omits an explicit verb such as 'Retrieves'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains output modes and parameter combinations (compact default, verbose=true, mcp_name+tool_name), but it does not explicitly state when to choose this tool over related siblings such as search_tools, manage_mcps, or execute_tool. Usage is implied rather than directly specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_mcpsC

Manage MCP connections. Actions: register, unregister, reconnect, list, status, health_check, list_stale_overrides. Returns text.

ParametersJSON Schema
NameRequiredDescriptionDefault
envNoEnvironment variables
urlNoServer URL (HTTP transports)
argsNoCommand arguments
nameNoMCP name (required for register/unregister/reconnect)
typeNoTransport: command (default), sse, or streamable
scopeNoPersistence: memory (default, runtime only), user ($XDG_CONFIG_HOME/slop-mcp/config.kdl or ~/.config/slop-mcp/config.kdl), project (.slop-mcp.kdl)
actionYesAction: register, unregister, reconnect, list, status, health_check, or list_stale_overrides
commandNoExecutable for command transport
dynamicNoAlways re-fetch tool list, skip cache
headersNoHTTP headers (HTTP transports)

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must bear full burden. It only states 'Returns text' and lists actions, failing to disclose side effects (e.g., state changes from register/unregister/reconnect), authorization needs, or any behavioral nuances per action. This is dangerously vague for a management tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with purpose and action list. It is efficient but could be slightly improved by grouping actions by type or adding minimal context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite high complexity (10 parameters, multiple actions, no output schema), the description is extremely brief. It omits action-specific details, parameter dependencies, return format beyond 'text', and any operational constraints. This is far from complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions, so baseline is 3. The description adds no additional parameter context beyond the schema. It does not specify which actions require which parameters, leaving the agent to infer from schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: managing MCP connections, with a list of specific actions. This distinguishes it from siblings like auth_mcp or execute_tool. However, it could be improved by briefly describing what each action does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 versus alternatives, nor when to choose one action over another. For a multi-action tool, this omission significantly hinders correct selection and invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_slopA

Execute SLOP script with access to all registered MCPs. Inline script or file path. Returns final expression value as text.

Call MCP tools as mcp_name.tool_name(param: value). Example patterns:

Chain results between tools: data = api.fetch(id: 42) summary = ai.summarize(text: data["content"]) emit(summary)

Loop and collect: results = [] for id in [1, 2, 3]: results = results + [api.get(id: id)] emit(items: results, count: len(results))

Transform with builtins: repos = github.search(query: "mcp") names = map(repos, |r| r["name"]) emit(join(names, "\n"))

Pipe for chaining transforms (left value becomes first arg): [1, 2, 3, 4, 5] | filter(|x| x > 2) | map(|x| x * 10) data | json_stringify()

Session memory persists across run_slop calls (thread-safe): store_set("key", value) prev = store_get("key")

Persistent memory survives restarts (disk-backed): mem_save("bank", "key", value, description: "what this stores") data = mem_load("bank", "key") entries = mem_list("bank") matches = mem_search("query")

Use recipe parameter: recipe: "list" to see available templates, recipe: "" to load one. Use slop_reference to browse built-in functions (map, filter, reduce, json_parse, regex_match, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeNoEmbedded recipe: 'list' to enumerate, or recipe name to load
scriptNoInline SLOP script
file_pathNoPath to .slop file

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool executes scripts with access to all MCPs, returns the final expression value, and provides session (thread-safe) and persistent (disk-backed) memory features. It does not explicitly warn about potential side effects from calling external tools, but the examples make it clear the script can invoke any MCP tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured, with sections for chaining, loops, transforms, pipes, memory, and recipes. Every sentence serves a purpose—examples are essential for a scripting language tool. While it could be slightly tightened, the structure and front-loading of the main purpose make it effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (arbitrary script execution with MCP access) and the absence of an output schema, the description is complete: it states the return format, covers memory persistence, recipe usage, and provides syntax examples. It addresses everything an agent needs to invoke it correctly, including edge cases like recipe listing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds substantial meaning beyond the schema. It explains the recipe parameter ('list' to enumerate, name to load), illustrates inline script usage with syntax, and clarifies file_path is a path to a .slop file. The detailed examples for script and recipe usage far exceed what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Execute SLOP script with access to all registered MCPs. Inline script or file path. Returns final expression value as text.' It distinguishes itself from siblings like execute_tool (single tool execution) and slop_help/slop_reference (reference/help) by focusing on multi-step scripting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool—for executing SLOP scripts, chaining MCP calls, loops, and transforms—and gives extensive examples. It also mentions using slop_reference for built-in functions, but does not explicitly state when NOT to use it (e.g., for single tool calls, execute_tool might be preferable). This is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_toolsA

Fuzzy search tools across connected MCPs. Ranked results. Paginated (default: 20, max: 100). Use offset for next page. Response includes total and has_more.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default: 20, max: 100)
queryNoSearch query matched against tool names and descriptions
offsetNoResults to skip for pagination (default: 0)
mcp_nameNoLimit results to one MCP

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses pagination defaults (default: 20, max: 100), offset usage, and response fields (total and has_more). It also mentions ranked results, giving a clear behavioral picture for a read-only search operation. It doesn't cover every edge case but is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no waste. The purpose is front-loaded, followed by essential pagination and response details. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers pagination and response metadata (total, has_more), which is helpful given no output schema. It doesn't specify the structure of individual result items, but for a search tool the agent can infer the general shape. The absence of an output schema is partially compensated by the description's mention of response fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters. The description adds minimal value beyond the schema, mainly reaffirming pagination details already present. It doesn't introduce format or syntax specifics, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: fuzzy searching tools across connected MCPs, with ranked results. It uses a specific verb ('search') and resource ('tools across connected MCPs'), and it distinguishes itself from sibling tools like manage_mcps or execute_tool by focusing on discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for finding tools and provides pagination guidance ('Use offset for next page'), but it does not explicitly contrast with alternatives or state when not to use it. The context is clear but no exclusions or sibling references are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slop_helpC

Full details for SLOP function by name. Returns formatted text.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSLOP function name

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only indicates that the output is 'formatted text' but does not specify the format (e.g., markdown, plain text), whether the tool is read-only, error handling, or prerequisites. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with one sentence, but it sacrifices clarity by omitting important context. While front-loaded, it could be expanded slightly to improve completeness without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations or output schema, the description should provide more context about what 'full details' includes (e.g., description, parameters, examples) and the output format. Currently, it does not give enough information for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the parameter 'name' as 'SLOP function name'. The description adds 'by name', which is redundant. It does not clarify permissible values, how to find valid names, or any additional semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'Full details for SLOP function by name' and returns formatted text, which identifies the tool's purpose. However, it does not distinguish from the sibling tool 'slop_reference', which might also provide details, reducing clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like 'slop_reference', 'search_tools', or 'run_slop'. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slop_referenceB

Search SLOP built-in functions. Compact output (name+signature) by default. verbose=true for full details. list_categories=true for category counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default: 10)
queryNoMatches name, signature, description
verboseNoInclude description, example, returns (default: false, compact shows name+signature)
categoryNoFilter: math, string, list, map, random, type, json, regex, time, encoding, functional, crypto, slop
list_categoriesNoReturn category counts instead of functions

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It mentions output modes but fails to disclose side effects, rate limits, authorization needs, or that the operation is read-only. For a search tool, these are critical gaps without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that front-load the purpose and efficiently explain the key flags. Every word serves a purpose; there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 5 parameters, the description could provide more context about default behavior, pagination, or result format for compact mode. The mention of 'name+signature' helps, but the agent might lack full understanding of the expected response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description repeats information already present in the schema (e.g., verbose and list_categories effects), adding no new meaning beyond what the schema provides. No additional value is delivered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search SLOP built-in functions.' It includes specific details about output modes (compact, verbose, list_categories) that differentiate it from sibling tools like search_tools and slop_help, ensuring an agent can identify 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives, nor does it state when not to use it. While it implies usage for looking up SLOP functions, it lacks explicit context or exclusions, leaving the agent to infer applicability.

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.

  1. 4 tool updatesv0.15.0
    • Addedagnt_watch
    • Addedget_metadata
    • Addedrun_slop
    • Addedsearch_tools
  2. 4 tool updatesv0.14.5
    • Removedagnt_watch
    • Removedget_metadata
    • Removedrun_slop
    • Removedsearch_tools
  3. 1 tool updatev0.14.4
    • Changedmanage_mcps1 field changed
      • changedInput schema / properties / scope / description
        Previous value: -"Persistence: memory (default, runtime only), user (~/.config/slop-mcp/config.kdl), project (.slop-mcp.kdl)"New value: +"Persistence: memory (default, runtime only), user ($XDG_CONFIG_HOME/slop-mcp/config.kdl or ~/.config/slop-mcp/config.kdl), project (.slop-mcp.kdl)"
  4. 10 tool updatesv0.0.0
    • First observedagnt_watch
    • First observedauth_mcp
    • First observedcustomize_tools
    • First observedexecute_tool
    • First observedget_metadata
    • First observedmanage_mcps
    • First observedrun_slop
    • First observedsearch_tools
    • First observedslop_help
    • First observedslop_reference

TDQS

B3.2/5.0

Scored across 10 tools

Disambiguation3/5

Several tools have overlapping capabilities: slop_help and slop_reference both provide SLOP function details, get_metadata and search_tools both help discover MCP tools, and execute_tool and run_slop can both invoke MCP tools. The descriptions do clarify the intended context, but an agent has to read carefully to avoid picking the wrong one.

Naming Consistency3/5

Most tools follow an action-first snake_case pattern like execute_tool, manage_mcps, and search_tools. However, slop_help, slop_reference, and agnt_watch break that pattern with domain-first or object-first naming, and abbreviations like agnt and mcps add inconsistency. The names are still readable, but the convention is not uniform.

Tool Count4/5

Ten tools is a reasonable size for a server covering SLOP execution, MCP management, authentication, tool discovery, and customization. It is not bloated, though slop_help and slop_reference could plausibly be merged, and agnt_watch feels somewhat tangential. Overall the count is appropriate with only minor redundancy.

Completeness4/5

The set covers the core workflows: registering and managing MCPs, authenticating, discovering and executing tools, running SLOP scripts, and customizing tool definitions. There are no major dead ends, and even persistence is available through run_slop. Minor gaps exist, such as no explicit update endpoint for MCP configs and no cancellation mechanism for long-running scripts, but agents can generally work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A meta-server that aggregates multiple MCP servers into a single interface, reducing token usage by 98%+ through progressive tool discovery and direct code execution that processes data between tools without consuming context window space.
    16 npm
    10
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP aggregator that consolidates multiple MCP servers behind a single interface with just 3 tools (search, get details, execute), reducing context pollution for AI agents by avoiding direct exposure of numerous tool schemas.
    35 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    A universal gateway that aggregates multiple MCP servers into a single interface while providing advanced token optimization, result filtering, and automated summarization. It enables efficient management of large tool catalogs and reduces context usage by up to 95% for major AI clients.
    11 npm
    15
    MIT