slop-mcp 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,17 @@
1
+ # Local config (not shared via git)
2
+ .slop-mcp.local.kdl
3
+
4
+ # Build artifacts
5
+ /slop-mcp
6
+ /build/
7
+ **/mock-mcp/mock-mcp
8
+
9
+ # Test output
10
+ *.test
11
+ coverage.out
12
+
13
+ # IDE
14
+ .idea/
15
+ .vscode/
16
+ *.swp
17
+ *.swo
slop_mcp-0.1.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 StandardBeagle
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,228 @@
1
+ Metadata-Version: 2.4
2
+ Name: slop-mcp
3
+ Version: 0.1.1
4
+ Summary: MCP server for orchestrating multiple MCP servers with progressive tool discovery
5
+ Project-URL: Homepage, https://github.com/standardbeagle/slop-mcp
6
+ Project-URL: Repository, https://github.com/standardbeagle/slop-mcp
7
+ Project-URL: Issues, https://github.com/standardbeagle/slop-mcp/issues
8
+ Author-email: StandardBeagle <dev@standardbeagle.com>
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai,llm,mcp,model-context-protocol,tools
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Software Development :: Libraries
24
+ Requires-Python: >=3.8
25
+ Requires-Dist: httpx>=0.24.0
26
+ Description-Content-Type: text/markdown
27
+
28
+ # slop-mcp
29
+
30
+ A Model Context Protocol (MCP) server that orchestrates multiple MCP servers, providing progressive tool discovery and efficient context management.
31
+
32
+ ## The Problem
33
+
34
+ As described in Anthropic's article [Code Execution with MCP](https://www.anthropic.com/engineering/code-execution-with-mcp), current MCP implementations face two critical challenges:
35
+
36
+ 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.
37
+
38
+ 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.
39
+
40
+ 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.
41
+
42
+ ## How slop-mcp Addresses These Issues
43
+
44
+ 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.
45
+
46
+ ### Progressive Tool Discovery
47
+
48
+ Rather than loading all tool definitions upfront, slop-mcp exposes just 5 meta-tools:
49
+
50
+ | Tool | Purpose |
51
+ |------|---------|
52
+ | `search_tools` | Find tools across all connected MCPs by name or description |
53
+ | `execute_tool` | Execute a specific tool on a specific MCP |
54
+ | `run_slop` | Execute SLOP scripts with access to all MCPs |
55
+ | `manage_mcps` | Register/unregister MCPs at runtime |
56
+ | `auth_mcp` | Handle OAuth authentication for MCPs that require it |
57
+
58
+ This means an agent connecting to slop-mcp sees **5 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`.
59
+
60
+ ### Lazy Connection & Async Startup
61
+
62
+ MCP servers connect asynchronously in the background:
63
+
64
+ ```
65
+ Server starts → Immediately ready to serve
66
+ ↓ (background)
67
+ MCP #1 connecting...
68
+ MCP #2 connecting...
69
+ MCP #N connecting...
70
+ ```
71
+
72
+ The server doesn't block waiting for all MCPs to connect. Tools become available progressively as their MCPs come online.
73
+
74
+ ### In-Environment Script Execution
75
+
76
+ The `run_slop` tool allows executing structured scripts that can:
77
+ - Call multiple tools across different MCPs
78
+ - Process intermediate results without sending them back through the model
79
+ - Chain operations efficiently
80
+
81
+ This keeps large intermediate data within the execution environment, addressing the token duplication problem.
82
+
83
+ ### Efficient Tool Index
84
+
85
+ Tools are indexed locally when MCPs connect:
86
+ - Fuzzy search by name or description
87
+ - Filter by MCP name
88
+ - No network calls during search
89
+ - Thread-safe concurrent access
90
+
91
+ ## Architecture
92
+
93
+ ```
94
+ ┌─────────────────────────────────────────────────────┐
95
+ │ slop-mcp Server │
96
+ │ ┌───────────────────────────────────────────────┐ │
97
+ │ │ 5 Meta-Tools (constant context cost) │ │
98
+ │ │ • search_tools • execute_tool │ │
99
+ │ │ • run_slop • manage_mcps │ │
100
+ │ │ • auth_mcp │ │
101
+ │ └───────────────────────────────────────────────┘ │
102
+ │ │ │
103
+ │ ┌────────────────┼────────────────┐ │
104
+ │ ▼ ▼ ▼ │
105
+ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
106
+ │ │ Registry │ │ Tool Index │ │ Auth │ │
107
+ │ │ (async) │ │ (local) │ │ (OAuth) │ │
108
+ │ └─────┬──────┘ └────────────┘ └────────────┘ │
109
+ └────────┼────────────────────────────────────────────┘
110
+
111
+ ┌────┼────┬─────────────┐
112
+ ▼ ▼ ▼ ▼
113
+ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
114
+ │MCP #1│ │MCP #2│ │MCP #3│ │MCP #N│
115
+ │stdio │ │ SSE │ │ HTTP │ │ ... │
116
+ └──────┘ └──────┘ └──────┘ └──────┘
117
+ ```
118
+
119
+ ## Configuration
120
+
121
+ slop-mcp uses KDL configuration with three-tier scoping:
122
+
123
+ | Scope | File | Purpose |
124
+ |-------|------|---------|
125
+ | User | `~/.config/slop-mcp/config.kdl` | Cross-project defaults |
126
+ | Project | `.slop-mcp.kdl` | Git-tracked project config |
127
+ | Local | `.slop-mcp.local.kdl` | Git-ignored secrets |
128
+
129
+ Example configuration:
130
+
131
+ ```kdl
132
+ mcp "filesystem" {
133
+ command "npx" "-y" "@anthropic/mcp-filesystem"
134
+ args "/path/to/allowed/dir"
135
+ }
136
+
137
+ mcp "github" {
138
+ transport "sse"
139
+ url "https://mcp.github.com/sse"
140
+ // OAuth handled automatically via auth_mcp tool
141
+ }
142
+ ```
143
+
144
+ Import existing configurations:
145
+
146
+ ```kdl
147
+ import "claude-desktop" // Import from Claude Desktop config
148
+ import "claude-code" // Import from Claude Code settings
149
+ ```
150
+
151
+ ## Quick Start
152
+
153
+ ### npm
154
+
155
+ ```bash
156
+ npx @standardbeagle/slop-mcp
157
+ ```
158
+
159
+ ### PyPI
160
+
161
+ ```bash
162
+ uvx slop-mcp
163
+ ```
164
+
165
+ Or install globally:
166
+
167
+ ```bash
168
+ # npm
169
+ npm install -g @standardbeagle/slop-mcp
170
+
171
+ # pip
172
+ pip install slop-mcp
173
+ ```
174
+
175
+ ### From Source
176
+
177
+ ```bash
178
+ go install github.com/standardbeagle/slop-mcp/cmd/slop-mcp@latest
179
+ ```
180
+
181
+ ## Usage
182
+
183
+ ### As an MCP Server (stdio)
184
+
185
+ ```bash
186
+ slop-mcp serve
187
+ ```
188
+
189
+ ### With HTTP/SSE Transport
190
+
191
+ ```bash
192
+ slop-mcp serve --transport http --port 8080
193
+ ```
194
+
195
+ ### Claude Desktop Configuration
196
+
197
+ Add to your Claude Desktop config:
198
+
199
+ ```json
200
+ {
201
+ "mcpServers": {
202
+ "slop": {
203
+ "command": "slop-mcp",
204
+ "args": ["serve"]
205
+ }
206
+ }
207
+ }
208
+ ```
209
+
210
+ ## Comparison with Code Execution Approach
211
+
212
+ | Aspect | Code Execution (Article) | slop-mcp |
213
+ |--------|-------------------------|----------|
214
+ | Tool Discovery | Filesystem exploration | `search_tools` with fuzzy matching |
215
+ | Context Cost | Minimal (code interpreter) | Constant (5 meta-tools) |
216
+ | Data Processing | In-sandbox code | SLOP scripts via `run_slop` |
217
+ | Infrastructure | Secure sandbox required | Standard MCP servers |
218
+ | Flexibility | Full code execution | Structured tool orchestration |
219
+
220
+ 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.
221
+
222
+ ## Related Projects
223
+
224
+ - [standardbeagle-tools](https://github.com/standardbeagle/standardbeagle-tools) - Claude Code plugin for slop-mcp integration
225
+
226
+ ## License
227
+
228
+ MIT
@@ -0,0 +1,201 @@
1
+ # slop-mcp
2
+
3
+ A Model Context Protocol (MCP) server that orchestrates multiple MCP servers, providing progressive tool discovery and efficient context management.
4
+
5
+ ## The Problem
6
+
7
+ As described in Anthropic's article [Code Execution with MCP](https://www.anthropic.com/engineering/code-execution-with-mcp), current MCP implementations face two critical challenges:
8
+
9
+ 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.
10
+
11
+ 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.
12
+
13
+ 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.
14
+
15
+ ## How slop-mcp Addresses These Issues
16
+
17
+ 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.
18
+
19
+ ### Progressive Tool Discovery
20
+
21
+ Rather than loading all tool definitions upfront, slop-mcp exposes just 5 meta-tools:
22
+
23
+ | Tool | Purpose |
24
+ |------|---------|
25
+ | `search_tools` | Find tools across all connected MCPs by name or description |
26
+ | `execute_tool` | Execute a specific tool on a specific MCP |
27
+ | `run_slop` | Execute SLOP scripts with access to all MCPs |
28
+ | `manage_mcps` | Register/unregister MCPs at runtime |
29
+ | `auth_mcp` | Handle OAuth authentication for MCPs that require it |
30
+
31
+ This means an agent connecting to slop-mcp sees **5 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`.
32
+
33
+ ### Lazy Connection & Async Startup
34
+
35
+ MCP servers connect asynchronously in the background:
36
+
37
+ ```
38
+ Server starts → Immediately ready to serve
39
+ ↓ (background)
40
+ MCP #1 connecting...
41
+ MCP #2 connecting...
42
+ MCP #N connecting...
43
+ ```
44
+
45
+ The server doesn't block waiting for all MCPs to connect. Tools become available progressively as their MCPs come online.
46
+
47
+ ### In-Environment Script Execution
48
+
49
+ The `run_slop` tool allows executing structured scripts that can:
50
+ - Call multiple tools across different MCPs
51
+ - Process intermediate results without sending them back through the model
52
+ - Chain operations efficiently
53
+
54
+ This keeps large intermediate data within the execution environment, addressing the token duplication problem.
55
+
56
+ ### Efficient Tool Index
57
+
58
+ Tools are indexed locally when MCPs connect:
59
+ - Fuzzy search by name or description
60
+ - Filter by MCP name
61
+ - No network calls during search
62
+ - Thread-safe concurrent access
63
+
64
+ ## Architecture
65
+
66
+ ```
67
+ ┌─────────────────────────────────────────────────────┐
68
+ │ slop-mcp Server │
69
+ │ ┌───────────────────────────────────────────────┐ │
70
+ │ │ 5 Meta-Tools (constant context cost) │ │
71
+ │ │ • search_tools • execute_tool │ │
72
+ │ │ • run_slop • manage_mcps │ │
73
+ │ │ • auth_mcp │ │
74
+ │ └───────────────────────────────────────────────┘ │
75
+ │ │ │
76
+ │ ┌────────────────┼────────────────┐ │
77
+ │ ▼ ▼ ▼ │
78
+ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
79
+ │ │ Registry │ │ Tool Index │ │ Auth │ │
80
+ │ │ (async) │ │ (local) │ │ (OAuth) │ │
81
+ │ └─────┬──────┘ └────────────┘ └────────────┘ │
82
+ └────────┼────────────────────────────────────────────┘
83
+
84
+ ┌────┼────┬─────────────┐
85
+ ▼ ▼ ▼ ▼
86
+ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
87
+ │MCP #1│ │MCP #2│ │MCP #3│ │MCP #N│
88
+ │stdio │ │ SSE │ │ HTTP │ │ ... │
89
+ └──────┘ └──────┘ └──────┘ └──────┘
90
+ ```
91
+
92
+ ## Configuration
93
+
94
+ slop-mcp uses KDL configuration with three-tier scoping:
95
+
96
+ | Scope | File | Purpose |
97
+ |-------|------|---------|
98
+ | User | `~/.config/slop-mcp/config.kdl` | Cross-project defaults |
99
+ | Project | `.slop-mcp.kdl` | Git-tracked project config |
100
+ | Local | `.slop-mcp.local.kdl` | Git-ignored secrets |
101
+
102
+ Example configuration:
103
+
104
+ ```kdl
105
+ mcp "filesystem" {
106
+ command "npx" "-y" "@anthropic/mcp-filesystem"
107
+ args "/path/to/allowed/dir"
108
+ }
109
+
110
+ mcp "github" {
111
+ transport "sse"
112
+ url "https://mcp.github.com/sse"
113
+ // OAuth handled automatically via auth_mcp tool
114
+ }
115
+ ```
116
+
117
+ Import existing configurations:
118
+
119
+ ```kdl
120
+ import "claude-desktop" // Import from Claude Desktop config
121
+ import "claude-code" // Import from Claude Code settings
122
+ ```
123
+
124
+ ## Quick Start
125
+
126
+ ### npm
127
+
128
+ ```bash
129
+ npx @standardbeagle/slop-mcp
130
+ ```
131
+
132
+ ### PyPI
133
+
134
+ ```bash
135
+ uvx slop-mcp
136
+ ```
137
+
138
+ Or install globally:
139
+
140
+ ```bash
141
+ # npm
142
+ npm install -g @standardbeagle/slop-mcp
143
+
144
+ # pip
145
+ pip install slop-mcp
146
+ ```
147
+
148
+ ### From Source
149
+
150
+ ```bash
151
+ go install github.com/standardbeagle/slop-mcp/cmd/slop-mcp@latest
152
+ ```
153
+
154
+ ## Usage
155
+
156
+ ### As an MCP Server (stdio)
157
+
158
+ ```bash
159
+ slop-mcp serve
160
+ ```
161
+
162
+ ### With HTTP/SSE Transport
163
+
164
+ ```bash
165
+ slop-mcp serve --transport http --port 8080
166
+ ```
167
+
168
+ ### Claude Desktop Configuration
169
+
170
+ Add to your Claude Desktop config:
171
+
172
+ ```json
173
+ {
174
+ "mcpServers": {
175
+ "slop": {
176
+ "command": "slop-mcp",
177
+ "args": ["serve"]
178
+ }
179
+ }
180
+ }
181
+ ```
182
+
183
+ ## Comparison with Code Execution Approach
184
+
185
+ | Aspect | Code Execution (Article) | slop-mcp |
186
+ |--------|-------------------------|----------|
187
+ | Tool Discovery | Filesystem exploration | `search_tools` with fuzzy matching |
188
+ | Context Cost | Minimal (code interpreter) | Constant (5 meta-tools) |
189
+ | Data Processing | In-sandbox code | SLOP scripts via `run_slop` |
190
+ | Infrastructure | Secure sandbox required | Standard MCP servers |
191
+ | Flexibility | Full code execution | Structured tool orchestration |
192
+
193
+ 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.
194
+
195
+ ## Related Projects
196
+
197
+ - [standardbeagle-tools](https://github.com/standardbeagle/standardbeagle-tools) - Claude Code plugin for slop-mcp integration
198
+
199
+ ## License
200
+
201
+ MIT
@@ -0,0 +1,50 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "slop-mcp"
7
+ version = "0.1.1"
8
+ description = "MCP server for orchestrating multiple MCP servers with progressive tool discovery"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.8"
12
+ authors = [
13
+ { name = "StandardBeagle", email = "dev@standardbeagle.com" }
14
+ ]
15
+ keywords = ["mcp", "model-context-protocol", "ai", "llm", "tools"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Operating System :: OS Independent",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3.8",
24
+ "Programming Language :: Python :: 3.9",
25
+ "Programming Language :: Python :: 3.10",
26
+ "Programming Language :: Python :: 3.11",
27
+ "Programming Language :: Python :: 3.12",
28
+ "Topic :: Software Development :: Libraries",
29
+ ]
30
+ dependencies = [
31
+ "httpx>=0.24.0",
32
+ ]
33
+
34
+ [project.urls]
35
+ Homepage = "https://github.com/standardbeagle/slop-mcp"
36
+ Repository = "https://github.com/standardbeagle/slop-mcp"
37
+ Issues = "https://github.com/standardbeagle/slop-mcp/issues"
38
+
39
+ [project.scripts]
40
+ slop-mcp = "slop_mcp:main"
41
+
42
+ [tool.hatch.build.targets.wheel]
43
+ packages = ["src/slop_mcp"]
44
+
45
+ [tool.hatch.build.targets.sdist]
46
+ include = [
47
+ "/src",
48
+ "/README.md",
49
+ "/LICENSE",
50
+ ]
@@ -0,0 +1,103 @@
1
+ """slop-mcp: MCP server for orchestrating multiple MCP servers."""
2
+
3
+ import os
4
+ import platform
5
+ import stat
6
+ import subprocess
7
+ import sys
8
+ from pathlib import Path
9
+
10
+ import httpx
11
+
12
+ __version__ = "0.0.0"
13
+
14
+ REPO = "standardbeagle/slop-mcp"
15
+ BINARY_NAME = "slop-mcp"
16
+
17
+
18
+ def get_platform_info() -> tuple[str, str]:
19
+ """Get the current platform and architecture."""
20
+ system = platform.system().lower()
21
+ machine = platform.machine().lower()
22
+
23
+ if system == "darwin":
24
+ goos = "darwin"
25
+ elif system == "linux":
26
+ goos = "linux"
27
+ elif system == "windows":
28
+ goos = "windows"
29
+ else:
30
+ raise RuntimeError(f"Unsupported platform: {system}")
31
+
32
+ if machine in ("x86_64", "amd64"):
33
+ goarch = "amd64"
34
+ elif machine in ("arm64", "aarch64"):
35
+ goarch = "arm64"
36
+ else:
37
+ raise RuntimeError(f"Unsupported architecture: {machine}")
38
+
39
+ return goos, goarch
40
+
41
+
42
+ def get_binary_path() -> Path:
43
+ """Get the path where the binary should be stored."""
44
+ cache_dir = Path.home() / ".cache" / "slop-mcp"
45
+ cache_dir.mkdir(parents=True, exist_ok=True)
46
+
47
+ goos, goarch = get_platform_info()
48
+ ext = ".exe" if goos == "windows" else ""
49
+
50
+ return cache_dir / f"{BINARY_NAME}-{__version__}-{goos}-{goarch}{ext}"
51
+
52
+
53
+ def get_download_url() -> str:
54
+ """Get the download URL for the current platform."""
55
+ goos, goarch = get_platform_info()
56
+ ext = ".exe" if goos == "windows" else ""
57
+
58
+ version = __version__
59
+ if not version.startswith("v"):
60
+ version = f"v{version}"
61
+
62
+ return f"https://github.com/{REPO}/releases/download/{version}/{BINARY_NAME}-{goos}-{goarch}{ext}"
63
+
64
+
65
+ def download_binary(dest: Path) -> None:
66
+ """Download the binary for the current platform."""
67
+ url = get_download_url()
68
+
69
+ with httpx.Client(follow_redirects=True, timeout=60.0) as client:
70
+ response = client.get(url)
71
+ response.raise_for_status()
72
+
73
+ dest.write_bytes(response.content)
74
+
75
+ # Make executable on Unix
76
+ if platform.system() != "Windows":
77
+ dest.chmod(dest.stat().st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
78
+
79
+
80
+ def ensure_binary() -> Path:
81
+ """Ensure the binary exists, downloading if necessary."""
82
+ binary_path = get_binary_path()
83
+
84
+ if not binary_path.exists():
85
+ download_binary(binary_path)
86
+
87
+ return binary_path
88
+
89
+
90
+ def main() -> int:
91
+ """Run the slop-mcp binary with the given arguments."""
92
+ try:
93
+ binary_path = ensure_binary()
94
+ except Exception as e:
95
+ print(f"Error downloading slop-mcp binary: {e}", file=sys.stderr)
96
+ return 1
97
+
98
+ result = subprocess.run([str(binary_path)] + sys.argv[1:])
99
+ return result.returncode
100
+
101
+
102
+ if __name__ == "__main__":
103
+ sys.exit(main())
@@ -0,0 +1,8 @@
1
+ """Entry point for python -m slop_mcp."""
2
+
3
+ import sys
4
+
5
+ from slop_mcp import main
6
+
7
+ if __name__ == "__main__":
8
+ sys.exit(main())