Skip to main content

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

PyPI version License: MIT

MCP orchestrator that aggregates multiple Model Context Protocol servers behind 8 meta-tools. Connect any number of MCPs without bloating your agent's context window.

Without slop-mcp:  50 MCPs x 20 tools = 1,000 tool definitions in context
With slop-mcp:     50 MCPs x 20 tools = 8 tool definitions in context

Install

uvx slop-mcp serve

Or install globally:

pip install slop-mcp

Also available via npm (npx @standardbeagle/slop-mcp), Go, and binary releases.

Configure

Add to Claude Desktop:

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

Add to Claude Code:

claude mcp add slop-mcp -- uvx slop-mcp serve

Windows users: Use cmd /c to wrap the command if path handling corrupts the args:

{
  "mcpServers": {
    "slop": {
      "command": "cmd",
      "args": ["/c", "uvx", "slop-mcp", "serve"]
    }
  }
}

Define MCP servers in .slop-mcp.kdl:

mcp "github" {
    transport "sse"
    url "https://mcp.github.com/sse"
}

mcp "jira" {
    transport "streamable"
    url "https://mcp.atlassian.com/v2/mcp"
}

mcp "lci" {
    command "lci" "mcp"
}

The 8 Meta-Tools

Tool Purpose
search_tools Fuzzy search across all connected MCP tools
execute_tool Run any tool on any connected MCP
get_metadata Inspect tool schemas and MCP capabilities
run_slop Execute multi-tool scripts without round-trips
manage_mcps Add or remove MCP servers at runtime
auth_mcp OAuth authentication for MCPs that need it
slop_reference Browse SLOP built-in functions
slop_help Get detailed help for a SLOP function

Examples

Cross-MCP orchestration with SLOP

Chain tools across multiple MCPs in a single run_slop call — intermediate results stay out of the agent's context:

# Create Jira tasks from unread emails matching a filter
emails = gmail.search_messages(query: "label:action-needed is:unread")
for email in emails {
    jira.create_issue(
        project: "OPS",
        summary: email["subject"],
        description: format("From: {}\n\n{}", email["from"], email["snippet"]),
        issue_type: "Task"
    )
    gmail.modify_message(id: email["id"], remove_labels: ["UNREAD"])
}
emit(created: len(emails))
# Agent sees only: {"created": 4}
# Index codebase structure into persistent memory for future sessions
results = lci.search(query: "public API endpoints")
endpoints = results
    | map(|r| {"path": r["file"], "name": r["symbol"], "kind": r["kind"]})
    | filter(|r| r["kind"] == "function")
mem_save("project", "api_endpoints", endpoints,
    description: "Public API endpoint inventory")
emit(indexed: len(endpoints))
# Generate a visual report from code analysis
stats = lci.search(query: "struct")
by_package = stats
    | map(|r| r["file"] | split("/") | first())
    | group_by(|pkg| pkg)
chart_data = by_package
    | items()
    | map(|pair| {"label": pair[0], "value": len(pair[1])})
    | sorted(|a, b| b["value"] - a["value"])
banana.create_chart(type: "bar", title: "Structs by Package", data: chart_data)

Features

  • Progressive discovery — agents find tools via search_tools, not by loading everything upfront
  • SLOP scripting — chain tool calls across MCPs and process results in a single run_slop call
  • Lazy connections — MCP servers connect asynchronously with tool metadata caching
  • Persistent memory — disk-backed mem_save/mem_load/mem_search across sessions
  • Three-tier config — project-local > project > user config merging with KDL
  • OAuth support — browser-based auth for MCPs like Figma, GitHub, Linear, Jira
  • All transports — stdio, SSE, and streamable HTTP

Documentation

standardbeagle.github.io/slop-mcp

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slop_mcp-0.14.3.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slop_mcp-0.14.3-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file slop_mcp-0.14.3.tar.gz.

File metadata

  • Download URL: slop_mcp-0.14.3.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for slop_mcp-0.14.3.tar.gz
Algorithm Hash digest
SHA256 d4a178e6246fd3f6225710118dbbd8b9047260305470b07351b1f1b243b906cd
MD5 ebf3309043de8a3bc6054bdab4db26f2
BLAKE2b-256 012fc3eb02a7836d669e2613a97e6596b3834031e7d822cea7946f012b2ef571

See more details on using hashes here.

Provenance

The following attestation bundles were made for slop_mcp-0.14.3.tar.gz:

Publisher: release.yml on standardbeagle/slop-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slop_mcp-0.14.3-py3-none-any.whl.

File metadata

  • Download URL: slop_mcp-0.14.3-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for slop_mcp-0.14.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1450f0f8bf2a707b394116f202472736638aeb4c2d66fede6b05c8ddbd112fb3
MD5 42cd85aee5232bdfa33306cafd1ee318
BLAKE2b-256 8d793642d347d2ea6c27916d39c5bbf52c0537c53800f2a36d9923a32a523397

See more details on using hashes here.

Provenance

The following attestation bundles were made for slop_mcp-0.14.3-py3-none-any.whl:

Publisher: release.yml on standardbeagle/slop-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page