home / skills / github / awesome-copilot / mcp-cli
This skill helps you interact with MCP servers via the CLI, listing, exploring, and executing tools to fetch data and automate tasks.
npx playbooks add skill github/awesome-copilot --skill mcp-cliReview the files below or copy the command above to add this skill to your agents.
---
name: mcp-cli
description: Interface for MCP (Model Context Protocol) servers via CLI. Use when you need to interact with external tools, APIs, or data sources through MCP servers, list available MCP servers/tools, or call MCP tools from command line.
---
# MCP-CLI
Access MCP servers through the command line. MCP enables interaction with external systems like GitHub, filesystems, databases, and APIs.
## Commands
| Command | Output |
| ---------------------------------- | ------------------------------- |
| `mcp-cli` | List all servers and tool names |
| `mcp-cli <server>` | Show tools with parameters |
| `mcp-cli <server>/<tool>` | Get tool JSON schema |
| `mcp-cli <server>/<tool> '<json>'` | Call tool with arguments |
| `mcp-cli grep "<glob>"` | Search tools by name |
**Add `-d` to include descriptions** (e.g., `mcp-cli filesystem -d`)
## Workflow
1. **Discover**: `mcp-cli` → see available servers and tools
2. **Explore**: `mcp-cli <server>` → see tools with parameters
3. **Inspect**: `mcp-cli <server>/<tool>` → get full JSON input schema
4. **Execute**: `mcp-cli <server>/<tool> '<json>'` → run with arguments
## Examples
```bash
# List all servers and tool names
mcp-cli
# See all tools with parameters
mcp-cli filesystem
# With descriptions (more verbose)
mcp-cli filesystem -d
# Get JSON schema for specific tool
mcp-cli filesystem/read_file
# Call the tool
mcp-cli filesystem/read_file '{"path": "./README.md"}'
# Search for tools
mcp-cli grep "*file*"
# JSON output for parsing
mcp-cli filesystem/read_file '{"path": "./README.md"}' --json
# Complex JSON with quotes (use heredoc or stdin)
mcp-cli server/tool <<EOF
{"content": "Text with 'quotes' inside"}
EOF
# Or pipe from a file/command
cat args.json | mcp-cli server/tool
# Find all TypeScript files and read the first one
mcp-cli filesystem/search_files '{"path": "src/", "pattern": "*.ts"}' --json | jq -r '.content[0].text' | head -1 | xargs -I {} sh -c 'mcp-cli filesystem/read_file "{\"path\": \"{}\"}"'
```
## Options
| Flag | Purpose |
| ------------ | ------------------------- |
| `-j, --json` | JSON output for scripting |
| `-r, --raw` | Raw text content |
| `-d` | Include descriptions |
## Exit Codes
- `0`: Success
- `1`: Client error (bad args, missing config)
- `2`: Server error (tool failed)
- `3`: Network error
This skill provides a command-line interface to MCP (Model Context Protocol) servers so you can discover, inspect, and invoke external tools, APIs, or data sources directly from your shell. It simplifies working with remote capabilities like filesystems, GitHub, databases, and custom APIs via a consistent CLI. Use it to list servers, inspect tool schemas, run tools with JSON inputs, and integrate tool calls into scripts and pipelines.
The CLI queries configured MCP servers to enumerate available servers and tools, prints tool parameter lists, and fetches full JSON input schemas for any tool. You can invoke tools by passing a JSON string or piping JSON via stdin; flags control JSON or raw outputs and verbose descriptions. Exit codes indicate client, server, or network errors, enabling reliable automation and error handling in scripts.
How do I pass JSON that contains quotes or newlines?
Supply JSON via heredoc or pipe it through stdin to avoid shell escaping, e.g., mcp-cli server/tool <<EOF ... EOF or cat args.json | mcp-cli server/tool.
What do the exit codes mean?
0 = success; 1 = client error (bad args or missing config); 2 = server error (tool failed); 3 = network error. Check codes in scripts to determine recovery steps.