Skip to main content

mcpie 🥧 MCP Client for Humans

Command-line tool and REPL for MCP (Model Context Protocol) servers.

Like httpie for HTTP, but for MCP servers! 🥧

Features

  • Interactive REPL with tab completion and command history
  • Multiple output formats: JSON, pretty JSON, table, YAML, raw
  • Pipe-friendly: Clean stdout/stderr separation, stdin input, file output
  • Script-ready: Proper exit codes, quiet mode, output redirection
  • Short aliases: ls, r list, t call add 5 3, p get name
  • Rich tables and syntax-highlighted JSON output
  • Multiple transport support: STDIO, Streamable HTTP, and SSE (deprecated)
  • Smart argument parsing (JSON, key=value, or interactive prompting)

Installation

Install uv then:

uv sync
uv tool install .

From pypi:

uv tool install mcpie-cli
uvx mcpie-cli

Quick Start

Interactive Mode

# Start interactive client
mcpie "python server.py"           # STDIO transport
mcpie "http://localhost:8000"      # Streamable HTTP transport (with SSE fallback)

# Inside the REPL
mcp> discover                     # See everything available
mcp> ls                          # List resources
mcp> t call add 5 3              # Call tool with smart parsing
mcp> r read config://app         # Read resource
mcp> help                        # Show all commands

Script-Friendly Usage

# Different output formats
mcpie "python server.py" t call add 5 3 --output json    # {"content": [{"type": "text", "text": "8"}]}
mcpie "python server.py" t call add 5 3 --output raw     # 8
mcpie "python server.py" t call add 5 3 --output pretty  # Indented JSON
mcpie "python server.py" t call add 5 3 --output table   # Tabular format
mcpie "python server.py" t call add 5 3 --output yaml    # YAML format

# Save output to file
mcpie "python server.py" t call add 5 3 -o result.json --output json

# Pipe-friendly (quiet mode)
mcpie "python server.py" t call add 5 3 --output raw --quiet | wc -l

# Read from stdin
echo '{"a": 5, "b": 3}' | mcpie "python server.py" t call add --stdin
echo "5 3" | mcpie "python server.py" t call add --stdin

CLI Options

Output Control

  • --output FORMAT, -f FORMAT - Output format: json, pretty, table, yaml, raw
  • --output-file FILE, -o FILE - Save output to file instead of stdout
  • --quiet, -q - Suppress non-essential output (stderr messages)

Input Control

  • --stdin - Read command arguments from stdin (JSON or space-separated)

Transport Options

  • -H "Key:Value" - Add HTTP headers (for HTTP transport)
  • -e "KEY:value" - Set environment variables
  • --force-sse - Force SSE transport (if server doesn't support Streamable HTTP)

Output Formats

JSON (--output json)

Compact JSON output suitable for parsing:

{"content": [{"type": "text", "text": "8"}], "structuredContent": {"result": 8}}

Pretty JSON (--output pretty)

Indented JSON for human reading:

{
  "content": [
    {
      "type": "text",
      "text": "8"
    }
  ],
  "structuredContent": {
    "result": 8
  }
}

Table (--output table)

Tabular format for lists and structured data:

┌─────────┬───────────┐
│ Field   │ Value     │
├─────────┼───────────┤
│ result  │ 8         │
└─────────┴───────────┘

YAML (--output yaml)

YAML format for configuration-like output:

content:
  - type: text
    text: '8'
structuredContent:
  result: 8

Raw (--output raw)

Extract just the essential result value:

8

Exit Codes

mcpie uses proper exit codes for scripting:

  • 0 - Success
  • 1 - CLI error (invalid arguments, missing files, etc.)
  • 2 - Server error (connection failed, server returned error)
  • 3 - Invalid input (malformed JSON, invalid parameters)

Commands

Discovery:

  • discover - Show all capabilities
  • ls - List resources (alias for r list)

Resources: r list, r read <uri>, r templates

Tools: t list, t call <name> [args], t inspect <name>

Prompts: p list, p get <name> [args], p inspect <name>

Server: s info, s ping, s capabilities

Examples

Interactive Usage

# Different argument formats
t call add 5 3                        # Auto-mapped to parameters
t call add '{"a": 5, "b": 3}'         # JSON format
t call add                             # Interactive prompting

# With headers/env vars for HTTP transport
mcpie -H "Authorization:token" http://localhost:8000
mcpie -e "API_KEY:secret" "python server.py"

# Force SSE transport (if server doesn't support Streamable HTTP)
mcpie --force-sse http://localhost:8000

Scripting Examples

# Get raw result for use in scripts
RESULT=$(mcpie "python server.py" t call add 5 3 --output raw --quiet)
echo "The sum is: $RESULT"

# Save structured data to file
mcpie "python server.py" r read config://app --output yaml -o config.yaml

# Process multiple inputs
echo '{"a": 1, "b": 2}' | mcpie "python server.py" t call add --stdin --output raw
echo '{"a": 3, "b": 4}' | mcpie "python server.py" t call add --stdin --output raw

# Chain operations
mcpie "python server.py" t call add 5 3 --output raw | \
  xargs -I {} mcpie "python server.py" t call add {} 2 --output raw

# Error handling in scripts
if ! mcpie "python server.py" t call add 5 3 --quiet; then
  echo "Command failed with exit code: $?"
fi

Pipe-Friendly Features

# Clean output suitable for piping
mcpie "python server.py" t call process_text "hello world" --output raw --quiet

# Read from stdin, output to file
echo '{"text": "hello", "operation": "uppercase"}' | \
  mcpie "python server.py" t call process_text --stdin --output json -o result.json

# Combine with other tools
mcpie "python server.py" r list --output json --quiet | jq '.[] | .name'

That's it! Type help in the REPL for more details.

Metadata

Release files for mcpie-cli 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpie-cli 0.2.0
File Size Uploaded
mcpie_cli-0.2.0.tar.gz 17.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcpie-cli 0.2.0
File Interpreter ABI Platform
mcpie_cli-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / mcpie_cli-0.2.0.tar.gz

Download URL mcpie_cli-0.2.0.tar.gz
Size 17.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9d4cc487a3fc6251aa29fc36f9425af543373f5e13ee3af871c2351d4879b0f9
BLAKE2b-256 checksum
How to use checksums
5586f3c4be196b4567de2faf4caa2df08ebd69d018fa2ad649d762be1b640f6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2025.

Transparency log

Release files / mcpie_cli-0.2.0-py3-none-any.whl

Download URL mcpie_cli-0.2.0-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a45a0c1e46e0695c0c669779dd1b0d64f7337ced99baf5f8b8405f15a5810574
BLAKE2b-256 checksum
How to use checksums
d70e38d9c003ed595353c7a08b355a9a2ad538afef5f3a71e4b00f5d52d1fe09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page