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.2.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.2-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slop_mcp-0.14.2.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.2.tar.gz
Algorithm Hash digest
SHA256 e1cdce79c2f155d1b0ad4681dbd03f7b4ab1d75e07b12bf05731abd1b55a84cf
MD5 2b92b637cd3ec0be2b00777b3ae7f5f4
BLAKE2b-256 56d11dc240d3e4d35667440910a10c3fa9bcd2c0989fca76b933d7b96dacb721

See more details on using hashes here.

Provenance

The following attestation bundles were made for slop_mcp-0.14.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: slop_mcp-0.14.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 17da22223df1a040373d093147ccdef2c0657e3c75beb1972ba069e8d65af099
MD5 a21a1a378a7b705c2dc7fd6aec617136
BLAKE2b-256 7642df3b7128a757c5b90cb8299314d0df95aae90c1ca92fd08e09434b0510d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for slop_mcp-0.14.2-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