Expand description
skiff — turn any MCP server, OpenAPI spec, or GraphQL endpoint into a CLI.
Library entry is run. The binary is a thin wrapper; session daemons reuse
the same binary via the hidden __session_daemon <config-path> argv form.
Inspired by https://github.com/knowsuchagency/mcp2cli (Python prior art).
Re-exports§
pub use error::Error;pub use error::Result;pub use model::CommandDef;pub use model::ParamDef;pub use model::ParamLocation;pub use model::ParamType;
Modules§
- bake
- Bake mode — named connection configs in
$SKIFF_CONFIG_DIR/baked.json. - cache
- Atomic JSON cache under
$SKIFF_CACHE_DIR. - cli
- CLI: two-pass argv split, clap globals, and mode dispatch.
- coerce
- Value coercion and naming (
to_kebab, JSON Schema → CLI values,env:/file:secrets). - error
- Error types and process exit codes.
- filter
- Command include/exclude/method filtering (bake mode).
- fsutil
- Restricted directory/file creation (
0o700dirs,0o600files on Unix). - graphql
- GraphQL introspection → CLI commands → execute.
- mcp
- MCP client transports and tool → CLI mapping.
- model
- Shared command/parameter model (OpenAPI + MCP + GraphQL).
- oauth
- OAuth 2.1 for MCP HTTP / OpenAPI / GraphQL — wraps
rmcp::transport::auth. - openapi
- OpenAPI
$refresolution, command extraction, and HTTP execution. - output
- stdout is data only; diagnostics go to stderr.
- paths
- Cache and config directory resolution (Python-compatible layout).
- session
- Named MCP session daemons over Unix-domain sockets (Unix only).
- spool
- Spill large / binary MCP payloads to
$SKIFF_CACHE_DIR/spool/for agent grep. - tools_
index - Compact tool catalog index for warm
--search/--detail names. - usage
- Local usage tracking for
--sort usage|recent.