MCP orchestrator — connect unlimited Model Context Protocol servers through 8 meta-tools. Progressive tool discovery keeps your AI agent's context window small.
Project description
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
- Quick Start Guide - Get running in 5 minutes
- Full Documentation - Complete guides and reference
- KDL Configuration - Configuration reference
- CLI Reference - Command-line options
The Problem
As described in Anthropic's article Code Execution with MCP, current MCP implementations face two critical challenges:
-
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.
-
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.
Related Projects
- standardbeagle-tools - Claude Code plugin for slop-mcp integration
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slop_mcp-0.12.1.tar.gz.
File metadata
- Download URL: slop_mcp-0.12.1.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16b9fbc51c5b2bd7362203d65b8a8c8979c4a93f8bb011772781905cc5c9293e
|
|
| MD5 |
52f9ca2edcceb652dfaeb31a6710de50
|
|
| BLAKE2b-256 |
71307b78983167b69bc4e91795a4ab5575e34e4fd0dea3fb4c399294472690d8
|
Provenance
The following attestation bundles were made for slop_mcp-0.12.1.tar.gz:
Publisher:
release.yml on standardbeagle/slop-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slop_mcp-0.12.1.tar.gz -
Subject digest:
16b9fbc51c5b2bd7362203d65b8a8c8979c4a93f8bb011772781905cc5c9293e - Sigstore transparency entry: 994841596
- Sigstore integration time:
-
Permalink:
standardbeagle/slop-mcp@2b82a9a90ab1c9650dc20dc77a723bf30135b4a1 -
Branch / Tag:
refs/tags/v0.12.1 - Owner: https://github.com/standardbeagle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2b82a9a90ab1c9650dc20dc77a723bf30135b4a1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file slop_mcp-0.12.1-py3-none-any.whl.
File metadata
- Download URL: slop_mcp-0.12.1-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42bbe17a125ccca6bd67786c9bef7a0e42f172acb9075abed3f9d0e19b90330d
|
|
| MD5 |
b28b5be950dc03dee5ee774b8ab4d004
|
|
| BLAKE2b-256 |
f976f015836442097a6a2d08fa6bd3e4d6725db2e2817547683a5141e15c7a53
|
Provenance
The following attestation bundles were made for slop_mcp-0.12.1-py3-none-any.whl:
Publisher:
release.yml on standardbeagle/slop-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
slop_mcp-0.12.1-py3-none-any.whl -
Subject digest:
42bbe17a125ccca6bd67786c9bef7a0e42f172acb9075abed3f9d0e19b90330d - Sigstore transparency entry: 994841649
- Sigstore integration time:
-
Permalink:
standardbeagle/slop-mcp@2b82a9a90ab1c9650dc20dc77a723bf30135b4a1 -
Branch / Tag:
refs/tags/v0.12.1 - Owner: https://github.com/standardbeagle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2b82a9a90ab1c9650dc20dc77a723bf30135b4a1 -
Trigger Event:
release
-
Statement type: