MCLIP
MCP Command-Line Interface Profile
A CLI conformance profile over MCP. If a service exposes an MCP server, any MCLIP-conformant client produces the same scriptable surface for it — the same command shape, the same flags, the same JSON envelope, the same exit codes.
New to MCP? It's the open standard for connecting AI applications to external tools and data — modelcontextprotocol.io.
Source: github.com/Quigleybits/mclip
MCP does not define a CLI itself. MCLIP defines a canonical CLI projection from MCP's protocol objects — a deterministic rendering layer that turns any MCP server into a uniform shell surface.
A tool's inputSchema becomes long flags. A
tools/call result becomes a JSON envelope on stdout. An MCP
error becomes a specific exit code.
The problem
The MCP-to-CLI translation space is already crowded:
mcp2cli, MCPorter, MCPShim,
FastMCP generate-cli, Apify mcpc,
IBM mcp-cli, developit/mcp-cmd,
f/mcptools. Each picks its own flag conventions, command
shapes, output formats, error structures, and resource/prompt surfaces.
Result: N MCP wrappers, N different CLI surfaces over the same MCP server. A script written against one wrapper does not run against another. Five concrete portability breakages span the eight wrappers: argument-passing style, JSON output flag + shape, invocation pattern, array encoding, and server reference.
MCLIP standardises the translation itself, so any conformant tool produces the same scriptable surface for the same MCP server. It is not a new protocol. It is not a vendor-side standard. It applies to the tools that translate MCP into CLI — telling them how to do it consistently.
Concretely — the same MCP tool, across wrappers:
# f/mcptools
mcp call create_issue --params '{"title":"Bug","body":"..."}' \
npx -y @modelcontextprotocol/server-github
# Apify mcpc
mcpc @github tools-call create_issue title:="Bug" body:="..."
# Under MCLIP, every conformant wrapper:
<binary> github tools call create_issue --title "Bug" --body "..." Different command verbs, different argument styles, different server references, different output shapes. MCLIP-Core (§1.2, §2.5, §5) pins all four.
How MCP maps to the CLI
MCLIP doesn't try to turn every MCP message into a shell command. The projection draws three lines:
| MCP element | MCLIP treatment |
|---|---|
| Tools, resources, prompts |
User-facing commands. Tool input schemas project to long flags;
results project to a JSON envelope on stdout. Resources expose
list/read/templates/watch; prompts expose list/get.
|
| Sampling, elicitation, roots | Runtime mechanics, not standalone commands. Surface as flags, interactive prompts (with non-interactive refusal per §14.12), or config — not invocations. |
| Initialize, transport, pagination, auth, progress, cancellation, diagnostics |
CLI infrastructure: hidden handshake, --transport,
--timeout,
--cursor/--limit/--no-paginate,
env-var credentials (§11), NDJSON progress on stderr
(MCLIP-Streaming), SIGINT cancellation (§6.2),
--verbose/--quiet.
|
MCP primitives become commands; MCP schemas become input contracts; MCP responses become a JSON
envelope; MCP lifecycle and interaction mechanics become
CLI runtime behaviour. The nine conformance modules in profile-v0.md §0.7 are organised around this split.
What the profile defines
MCLIP-Core plus eight independently-claimable modules. A wrapper can claim conformance on Core plus any subset of the modules its UX supports.
-
MCLIP-CoreRequired for any conformance claim -
MCLIP-ResourcesFirst-class resources surface -
MCLIP-PromptsFirst-class prompts surface -
MCLIP-HTTPStandardised HTTP transport handling -
MCLIP-StreamingResources watch as NDJSON -
MCLIP-SafetyConfirmation, dry-run, force overrides -
MCLIP-AuthToken resolution and transmission -
MCLIP-MetadataHonours optional mclip.* keys -
MCLIP-DiscoveryInherited config files
Specifications
Source of truth lives in the GitHub repository. The files below are the v0 draft set; everything is pre-publication and subject to revision.
- Profile v0
profile-v0.mdNormative specification — Core plus eight independently-claimable modules. Each rule tagged [MCLIP-§-NN] for conformance tracking.
- Security Model
security-model.mdTrust boundaries, destructive-action policy, CI-safety, credential handling, optional auditability.
- Conformance Fixtures
conformance-fixtures.md30+ executable fixtures mapping rules to invocations, expected exit codes, and output shapes.
- Adoption Guide
adoption-guide.mdFor existing wrapper maintainers — minimum surface for MCLIP-Core conformance and the per-module cost.
- SEP — Standards Track
sep-standards-mclip-profile.mdStandards Track SEP draft wrapping the profile for filing under modelcontextprotocol/seps.
- SEP — Extensions Track
sep-extensions-mclip-metadata.mdOptional mclip.* metadata keys filed per SEP-2133. Tightening-only safety semantics.
- mclio Architecture
mclio-architecture.mdImplementation spec for the production CLI that doubles as the standard's executable reference.
- Fixtures Spec
fixtures-spec.mdImplementation spec for the nine synthetic MCP servers backing the conformance fixture catalogue.
Schema namespace
The canonical MCLIP config schema is hosted under mclip.dev.
Clients and editors validating an mclip.json file should
reference the versioned URL below.
https://mclip.dev/schemas/config/v0.json
Draft 2020-12 JSON Schema. Tracks profile-v0.md §13.3. The schema URL is normatively
cited from the profile; the schema body is hand-maintained against the
spec until automated generation lands.
Current status
The specification set is written and internally consistent. The nine
synthetic MCP fixture servers and the verify harness are built (Go,
MCP SDK v1.6.0; under fixtures/).
mclio — the production CLI that doubles as the
standard's executable reference — is in active development as a
separate Go binary; not yet released. Conformance harness and a
companion consumer app follow once mclio is functional.