CLI Reference
Complete reference for the slop-mcp command-line interface.
Global Options
slop-mcp [command] [options]
Options:
--version, -v Show version
--help, -h Show help
Commands
serve
Start the SLOP MCP server (for use with Claude Code):
slop-mcp serve [options]
Options:
--config, -c Path to config file
--port, -p Port for HTTP transport (default: stdio)
mcp
Manage MCP servers.
mcp add
Add an MCP to configuration:
slop-mcp mcp add <name> <command> [args...]
Options:
-l, --local Add to local config (.slop-mcp.local.kdl)
-p, --project Add to project config (.slop-mcp.kdl) [default]
-u, --user Add to user config (~/.config/slop-mcp/config.kdl)
-s, --scope Set scope: local, project, or user
-t, --transport Transport type: stdio (default), sse, http, streamable
--url URL for HTTP transports
--env Environment variables (KEY=VALUE)
Examples:
# Add stdio MCP
slop-mcp mcp add math-mcp npx @anthropic/math-mcp
# Add HTTP MCP
slop-mcp mcp add figma -t streamable https://mcp.figma.com/mcp
# Add to user config
slop-mcp mcp add -u my-global npx my-global-mcp
# With environment variables
slop-mcp mcp add my-mcp node server.js --env API_KEY=secret
mcp add-json
Add an MCP from a JSON configuration:
slop-mcp mcp add-json <name> '<json>'
Options:
-l, --local Add to local config
-p, --project Add to project config [default]
-u, --user Add to user config
Example:
slop-mcp mcp add-json my-mcp '{"command": "npx", "args": ["my-mcp"]}'
mcp remove
Remove an MCP from configuration:
slop-mcp mcp remove <name>
Options:
-l, --local Remove from local config
-p, --project Remove from project config [default]
-u, --user Remove from user config
-a, --all Remove from all configs
mcp list
List all configured MCPs:
slop-mcp mcp list [options]
Options:
--json Output as JSON
--verbose Show full configuration
Output:
MCPs:
math-mcp (stdio) from project - connected, 8 tools
figma (streamable) from user - needs auth
my-local (stdio) from local - connected, 3 tools
mcp metadata
Show full metadata for all MCPs:
slop-mcp mcp metadata [options]
Options:
--mcp <name> Filter to specific MCP
--json Output as JSON
-o, --output Write to file
Example:
slop-mcp mcp metadata --mcp figma --json > figma-tools.json
mcp auth
Manage OAuth authentication.
mcp auth login
Authenticate with an MCP:
slop-mcp mcp auth login <name> [options]
Options:
--force Force re-authentication
--no-browser Print URL instead of opening browser
Example:
slop-mcp mcp auth login figma
# Opens browser, completes OAuth, reconnects automatically
mcp auth logout
Remove authentication:
slop-mcp mcp auth logout <name>
mcp auth status
Check authentication status:
slop-mcp mcp auth status <name>
Output:
figma authentication status:
Authenticated: Yes
Expires: 2024-01-15T10:30:00Z
Has refresh token: Yes
mcp auth list
List all authenticated MCPs:
slop-mcp mcp auth list
Output:
Authenticated MCPs:
figma - expires 2024-01-15
linear - expires 2024-01-20
dart - expires 2024-01-18
skill
Manage skills.
skill add
Create a new skill:
slop-mcp skill add <name> [options]
Options:
--mcp Target MCP
--tool Tool to invoke
--param Parameter definition (can repeat)
--description Skill description
Example:
slop-mcp skill add calculate \
--mcp math-mcp \
--tool calculate \
--param "expression:Math expression to evaluate" \
--description "Evaluate mathematical expressions"
skill list
List available skills:
slop-mcp skill list [options]
Options:
--json Output as JSON
skill remove
Remove a skill:
slop-mcp skill remove <name>
monitor
Run a SLOP script as a Claude Code Monitor event source. Each print() call in the script becomes a Monitor notification. Also watches for messages sent via slop-mcp message.
slop-mcp monitor [script.slop]
slop-mcp monitor -e '<script>'
slop-mcp monitor # Watch for messages only
Options:
-e '<script>' Execute inline script
--timeout=<secs> Stop after N seconds (default: no timeout)
Without a script, the monitor just watches for incoming messages — perfect for aggregating events from git hooks, build scripts, and CI pipelines.
Built-in functions (in addition to standard SLOP):
| Function | Description |
|---|---|
changed(key, value) | Returns true if value differs from last call with same key |
mem_save / mem_load | Persistent memory across restarts (standard SLOP) |
Examples:
# Watch for messages only
slop-mcp monitor --timeout=300 &
slop-mcp message "deploy started"
# Poll an MCP for changes
slop-mcp monitor -e '
for _ in range(999999999):
health = myapi.get_health()
if changed("health", health):
print("health: " + str(health))
sleep(30000)
'
# Use with Claude Code Monitor tool
# Monitor({ command: "slop-mcp monitor", persistent: true })
message
Send a message to a running slop-mcp monitor. The message appears as a line on the monitor's stdout, becoming a Claude Code Monitor notification.
slop-mcp message <text...>
Examples:
slop-mcp message "deploy started"
slop-mcp message "build failed: exit code 1"
# Chain with any command
make build && slop-mcp message "build ok" || slop-mcp message "build failed"
# Use in git hooks
echo 'slop-mcp message "commit $(git log -1 --format=%h): $(git log -1 --format=%s)"' \
>> .git/hooks/post-commit
run
Execute a SLOP script:
slop-mcp run <script> [params...]
Options:
--dry-run Show what would be executed
--verbose Show detailed output
Example:
slop-mcp run scripts/deploy.slop VERSION=1.2.3
version
Show version information:
slop-mcp version
Output:
slop-mcp v0.3.0
Built with OAuth support
Environment Variables
| Variable | Description |
|---|---|
SLOP_CONFIG | Path to config file |
SLOP_LOG_LEVEL | Log level (debug, info, warn, error) |
BROWSER | Browser to use for OAuth |
NO_COLOR | Disable colored output |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Configuration error |
| 3 | Authentication error |
| 4 | MCP connection error |
Configuration Files
SLOP MCP looks for configuration in this order:
.slop-mcp.local.kdl(local, gitignored).slop-mcp.kdl(project)~/.config/slop-mcp/config.kdl(user)
All configs are merged, with local taking precedence.