Skip to main content

Crate skiff_cli

Crate skiff_cli 

Source
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 (0o700 dirs, 0o600 files 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 $ref resolution, 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.

Functions§

run
Run the CLI with argv (no program name). Returns Error for exit mapping.