Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 60 additions & 19 deletions skills/mcp-cli/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,71 @@
---
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.
homepage: https://github.com/philschmid/mcp-cli
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this we should use the metadata field:

Suggested change
homepage: https://github.com/philschmid/mcp-cli
metadata
homepage: https://github.com/philschmid/mcp-cli

---

# MCP-CLI

Access MCP servers through the command line. MCP enables interaction with external systems like GitHub, filesystems, databases, and APIs.

**Homepage:** https://github.com/philschmid/mcp-cli

## Prerequisites

### Installation

```bash
# Quick install (recommended)
curl -fsSL https://raw.githubusercontent.com/philschmid/mcp-cli/main/install.sh | bash

# Or install with Bun (requires Bun)
bun install -g https://github.com/philschmid/mcp-cli

# Verify installation
mcp-cli --version
```

### Configuration

Create `mcp_servers.json` in your current directory or `~/.config/mcp/`:

```json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
```

**Documentation:** https://github.com/philschmid/mcp-cli

## 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 |
| Command | Output |
| --------------------------------------- | ------------------------------- |
| `mcp-cli` | List all servers and tool names |
| `mcp-cli info <server>` | Show tools with parameters |
| `mcp-cli info <server> <tool>` | Get tool JSON schema |
| `mcp-cli call <server> <tool> '<json>'` | Call tool with arguments |
| `mcp-cli grep "<glob>"` | Search tools by name |

**Both formats work:** `info <server> <tool>` or `info <server>/<tool>`

**Add `-d` to include descriptions** (e.g., `mcp-cli filesystem -d`)
**Add `-d` to include descriptions** (e.g., `mcp-cli info 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
2. **Explore**: `mcp-cli info <server>` → see tools with parameters
3. **Inspect**: `mcp-cli info <server> <tool>` → get full JSON input schema
4. **Execute**: `mcp-cli call <server> <tool> '<json>'` → run with arguments

## Examples

Expand All @@ -33,33 +74,33 @@ Access MCP servers through the command line. MCP enables interaction with extern
mcp-cli

# See all tools with parameters
mcp-cli filesystem
mcp-cli info filesystem

# With descriptions (more verbose)
mcp-cli filesystem -d
mcp-cli info filesystem -d

# Get JSON schema for specific tool
mcp-cli filesystem/read_file
mcp-cli info filesystem read_file

# Call the tool
mcp-cli filesystem/read_file '{"path": "./README.md"}'
mcp-cli call 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
mcp-cli call filesystem read_file '{"path": "./README.md"}' -j

# Complex JSON with quotes (use heredoc or stdin)
mcp-cli server/tool <<EOF
mcp-cli call server tool <<EOF
{"content": "Text with 'quotes' inside"}
EOF

# Or pipe from a file/command
cat args.json | mcp-cli server/tool
cat args.json | mcp-cli call 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\": \"{}\"}"'
mcp-cli call filesystem search_files '{"path": "src/", "pattern": "*.ts"}' -j | jq -r '.content[0].text' | head -1 | xargs -I {} sh -c 'mcp-cli call filesystem read_file "{\"path\": \"{}\"}"'
```

## Options
Expand Down
Loading