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

Uploaded Python 3

File details

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

File metadata

  • Download URL: slop_mcp-0.14.1.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.1.tar.gz
Algorithm Hash digest
SHA256 659f3b9e66ab9f1c70f829d36e59e79b5d70df4bace5d8950d8e4b359f3aeebc
MD5 26b8f075c68fedbbf0e5b8ea759d3a37
BLAKE2b-256 71102ece3ae9475165f915dff01c234f6aa7881e35e77de43b2ee54a3f9c6161

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: slop_mcp-0.14.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 138a315fbdb865fbccd55b7c30573ef442e4fb923c565160d7a314f1950d7970
MD5 090867989aeb26b20d2a9d88547ade61
BLAKE2b-256 ab8a5b7f40e9edd46854d905ebcf755b9a0ba7a8de78f545e8356f0bf6fb77a0

See more details on using hashes here.

Provenance

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