Skip to main content

Interactive REPL for testing Model Context Protocol (MCP) servers

Project description

MCP REPL

PyPI License Python Versions

Interactive REPL for testing Model Context Protocol (MCP) servers.

Demo of repl-mcp

Features

  • List and inspect tools, prompts, and resources
  • Call tools with JSON or interactive parameter input
  • Tab autocompletion for commands and tool names
  • Command history (arrow keys)
  • Rich terminal UI with syntax highlighting

Installation

Option 1: Install from PyPI (Recommended)

# Using uv (fast, Rust-based)
uv tool install repl-mcp

# Using pipx
pipx install repl-mcp

# Using pip
pip install repl-mcp

Option 2: Run directly without installing

# Using uvx
uvx repl-mcp -c "npx mcp-remote https://mcp.atlassian.com/v1/mcp"

Option 3: Development Setup

git clone https://github.com/kkokosa/repl-mcp.git
cd repl-mcp
pip install -e .

Usage

[!NOTE] mcp-remote sidenote - Some MCP servers (like Atlassian) use OAuth for authentication and don't support direct HTTP connections. The mcp-remote MCP bridges this gap by handling OAuth flows locally and/or converting HTTP-based MCP servers to stdio transport. Beware that for OAuth-based servers, mcp-remote needs to receive the OAuth callback. If you're running in an environment without a public URL (like WSL or a remote server), you'll need a tunneling tool like ngrok to expose the callback endpoint.

Stdio Transport (command-based)

# Remote MCP server via mcp-remote
repl-mcp -c "npx mcp-remote https://mcp.atlassian.com/v1/mcp"

# Local Python MCP server
repl-mcp -c "python my_mcp_server.py"

# Using uvx
repl-mcp -c "uvx mcp-server-sqlite --db-path test.db"

HTTP Transport (URL-based)

# GitHub Copilot MCP
repl-mcp --url https://api.githubcopilot.com/mcp/ \
         --header "Authorization: Bearer YOUR_GITHUB_TOKEN"

# Notion MCP
repl-mcp -u https://mcp.notion.com/mcp

# Multiple headers
repl-mcp -u https://example.com/mcp \
         -H "Authorization: Bearer TOKEN" \
         -H "X-Custom-Header: value"

Using a config file

# If multiple servers in config, you'll be prompted to choose
repl-mcp --config sample-mcp-config.json

# Or select specific server directly
repl-mcp --config sample-mcp-config.json --server github

Config file formats

Stdio transport:

{
  "command": "npx",
  "args": ["mcp-remote", "https://mcp.atlassian.com/v1/mcp"]
}

HTTP transport:

{
  "url": "https://api.githubcopilot.com/mcp/",
  "headers": {
    "Authorization": "Bearer YOUR_TOKEN"
  }
}

Multiple servers (Cursor/Claude Desktop format):

{
  "mcpServers": {
    "atlassian": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.atlassian.com/v1/mcp"]
    },
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      }
    },
    "notion": {
      "url": "https://mcp.notion.com/mcp",
      "headers": {}
    }
  }
}

YAML format:

command: npx
args:
  - mcp-remote
  - https://mcp.atlassian.com/v1/mcp

REPL Commands

Command Description
tools List all available tools
tool <name> Show detailed info about a specific tool
prompts List all available prompts
resources List all available resources
call <tool> [args] Call a tool (interactive input if no args)
prompt <name> [args] Get a prompt with optional JSON arguments
read <uri> Read a resource by URI
info Show server info and capabilities
help Show help message
quit / exit / q Exit the REPL

Keyboard Shortcuts

Key Action
Tab Autocomplete commands and tool names
/ Navigate command history
Ctrl+C Cancel current input
Ctrl+D Exit REPL

Examples

mcp> tools
┌─────────────────────────────────────────────────────────┐
│ Available Tools (15)                                    │
├──────────────────┬───────────────────────────┬──────────┤
│ Name             │ Description               │ Params   │
├──────────────────┼───────────────────────────┼──────────┤
│ get_issue        │ Retrieves a Jira issue... │ issueKey │
│ search_issues    │ Search for issues using...│ jql      │
└──────────────────┴───────────────────────────┴──────────┘

mcp> call get_issue {"issueKey": "PROJ-123"}
┌─────────────────────────────────────────────────────────┐
│ Result                                                  │
├─────────────────────────────────────────────────────────┤
│ {                                                       │
│   "key": "PROJ-123",                                    │
│   "summary": "Example issue",                           │
│   ...                                                   │
│ }                                                       │
└─────────────────────────────────────────────────────────┘

mcp> quit
Goodbye!

Requirements

  • Python 3.10+
  • Node.js (if using npx mcp-remote)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repl_mcp-0.1.0.tar.gz (856.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repl_mcp-0.1.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file repl_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: repl_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 856.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for repl_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f84fef39346a8305d8cb8b02663b937c1a97da26919de7e12ca25e2a54631613
MD5 e1196f147672c30dc5d9ebfa13e3f80e
BLAKE2b-256 7ffdbda391dd068ebe39ccf7411d8f2e8f0ed1d09a085ddb98294375f9cda3ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for repl_mcp-0.1.0.tar.gz:

Publisher: publish.yml on kkokosa/repl-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repl_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: repl_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for repl_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51312554b935ae74550cef5fa28af524df2944ab7d8659a72ea58838bb41ce31
MD5 6260f160e59f3126502210d270100ed7
BLAKE2b-256 9d18dfb56106ab823c1896b4b3bfa8fd7076640a93756745ba2d7763b1a869ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for repl_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on kkokosa/repl-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page