ferraus mcp serve
Run an MCP server exposing every command as a tool
Synopsis
ferraus mcp serve [options]
What it does
Starts a Model Context Protocol server. On stdio (the default) it is what Claude Code and other agents launch as a subprocess; with --http it serves the streamable-HTTP transport for several clients. Every read and write is confined to the --allow directories (default: the current directory) and outputs default to a ferraus-out/ folder under the first allowed directory.
Examples
Register ferraus with Claude Code
claude mcp add ferraus -- ferraus mcp serve --allow ~/music
Serve several clients over HTTP
ferraus mcp serve --http 127.0.0.1:8765 --allow ~/music
Stdio server that may read and write two folders; outputs go to ~/music/ferraus-out/
ferraus mcp serve --allow ~/music --allow ~/podcasts
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
--http | text | — | Serve streamable HTTP on this address (e.g. 127.0.0.1:8765) instead of stdio |
--allow | path | — | Directory the server may read and write (repeatable); default: current directory Repeatable. |
Global options
Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Processing failed |
| 2 | Usage or parameter error |
| 3 | Input missing or unreadable |
| 8 | Cancelled |
| 70 | Internal error (bug) |
Common mistakes
- Expecting human-readable text when scripting: add
--jsonfor a stable machine result.
For models
- MCP tool:
ferraus_mcp_serve - Schema:
ferraus schema mcp serve - Pipeline:
{ op: mcp serve, args: { ... } }(flag names with_instead of-) - fx stage: no
{"command": "mcp serve", "defaults": {}}