AgentSkillsCN

mcp-cli

通过 CLI 为 MCP(模型上下文协议)服务器提供交互式接口。当您需要通过 MCP 服务器与外部工具、API 或数据源进行交互时,此技能将助您事半功倍。

SKILL.md
--- frontmatter
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.

MCP-CLI

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

Commands

CommandOutput
mcp-cliList all servers and tools
mcp-cli info <server>Show server tools and parameters
mcp-cli info <server> <tool>Get tool JSON schema
mcp-cli grep "<pattern>"Search tools by name
mcp-cli call <server> <tool>Call tool (reads JSON from stdin if no args)
mcp-cli call <server> <tool> '<json>'Call tool with arguments

Both formats work: <server> <tool> or <server>/<tool>

Workflow

  1. Discover: mcp-cli → see available servers
  2. Explore: mcp-cli info <server> → see tools with parameters
  3. Inspect: mcp-cli info <server> <tool> → get full JSON schema
  4. Execute: mcp-cli call <server> <tool> '<json>' → run with arguments

Examples

bash
# List all servers
mcp-cli

# With descriptions  
mcp-cli -d

# See server tools
mcp-cli info filesystem

# Get tool schema (both formats work)
mcp-cli info filesystem read_file
mcp-cli info filesystem/read_file

# Call tool
mcp-cli call filesystem read_file '{"path": "./README.md"}'

# Pipe from stdin (no '-' needed!)
cat args.json | mcp-cli call filesystem read_file

# Search for tools
mcp-cli grep "*file*"

# Output is raw text (pipe-friendly)
mcp-cli call filesystem read_file '{"path": "./file"}' | head -10

Advanced Chaining

bash
# Chain: search files → read first match
mcp-cli call filesystem search_files '{"path": ".", "pattern": "*.md"}' \
  | head -1 \
  | xargs -I {} mcp-cli call filesystem read_file '{"path": "{}"}'

# Loop: process multiple files
mcp-cli call filesystem list_directory '{"path": "./src"}' \
  | while read f; do mcp-cli call filesystem read_file "{\"path\": \"$f\"}"; done

# Conditional: check before reading
mcp-cli call filesystem list_directory '{"path": "."}' \
  | grep -q "README" \
  && mcp-cli call filesystem read_file '{"path": "./README.md"}'

# Multi-server aggregation
{
  mcp-cli call github search_repositories '{"query": "mcp", "per_page": 3}'
  mcp-cli call filesystem list_directory '{"path": "."}'
}

# Save to file
mcp-cli call github get_file_contents '{"owner": "x", "repo": "y", "path": "z"}' > output.txt

Note: call outputs raw text content directly (no jq needed for text extraction)

Options

FlagPurpose
-dInclude descriptions
-c <path>Specify config file

Common Errors

Wrong CommandErrorFix
mcp-cli server toolAMBIGUOUS_COMMANDUse call server tool or info server tool
mcp-cli run server toolUNKNOWN_SUBCOMMANDUse call instead of run
mcp-cli listUNKNOWN_SUBCOMMANDUse info instead of list
mcp-cli call serverMISSING_ARGUMENTAdd tool name
mcp-cli call server tool {bad}INVALID_JSONUse valid JSON with quotes

Exit Codes

  • 0: Success
  • 1: Client error (bad args, missing config)
  • 2: Server error (tool failed)
  • 3: Network error