MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Interacts with MCP servers from the command line: lists servers and tools, inspects a tool's JSON schema, and calls a tool with JSON arguments from stdin or an argument.
$ npx skills add philschmid/mcp-cli --skill mcp-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install philschmid/mcp-cli mcp-cli --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mcp-cli" agent skill from https://github.com/philschmid/mcp-cli/tree/main into .claude/skills/mcp-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp-cli", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add philschmid/mcp-cli --skill mcp-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install philschmid/mcp-cli mcp-cli --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mcp-cli" agent skill from https://github.com/philschmid/mcp-cli/tree/main into .agents/skills/mcp-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp-cli", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add philschmid/mcp-cli --skill mcp-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install philschmid/mcp-cli mcp-cli --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mcp-cli" agent skill from https://github.com/philschmid/mcp-cli/tree/main into .cursor/skills/mcp-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp-cli", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add philschmid/mcp-cli --skill mcp-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install philschmid/mcp-cli mcp-cli --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mcp-cli" agent skill from https://github.com/philschmid/mcp-cli/tree/main into .gemini/skills/mcp-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp-cli", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install philschmid/mcp-cli mcp-cliInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add philschmid/mcp-cli --skill mcp-cli -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mcp-cli" agent skill from https://github.com/philschmid/mcp-cli/tree/main into .github/skills/mcp-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp-cli", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add philschmid/mcp-cli --skill mcp-cli -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install philschmid/mcp-cli mcp-cli --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mcp-cli" agent skill from https://github.com/philschmid/mcp-cli/tree/main into .opencode/skills/mcp-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mcp-cli", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mcp-cliInteracts with MCP servers from the command line: lists servers and tools, inspects a tool's JSON schema, and calls a tool with JSON arguments from stdin or an argument.
The CLI exposes five core commands: running mcp-cli alone lists every configured server and its tools, info <server> shows a server's tools with parameters, info <server> <tool> returns the full JSON schema for one tool, grep searches tool names by pattern, and call <server> <tool> runs a tool, reading JSON arguments from stdin when none are given inline. Both a server/tool and a server tool argument order work, and call prints raw text content directly rather than JSON, so no separate parsing step is needed for plain text results.
A short workflow moves from discovering servers, to exploring a server's tools with parameters, to inspecting one tool's full schema, to executing it with arguments, and results can be chained into further shell commands, such as piping a filesystem search result into a read call. Two flags are listed, -d to include descriptions and -c to point at a specific config file, and a table of common mistakes maps wrong subcommands like run or list to their correct equivalents, call and info, along with the exit codes for client, server and network errors.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d77672a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Shell and TypeScript, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
MCP-CLI loads about 832 tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 217 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from philschmid/mcp-cli at commit d77672a, republished under its MIT licence (© philschmid). 217 words, ~832 tokens.
.claude/skills/mcp-cli/SKILL.md (or your agent's skills folder). This skill also uses 38 other files; get the full folder from GitHub.Access MCP servers through the command line. MCP enables interaction with external systems like GitHub, filesystems, databases, and APIs.
| Command | Output |
|---|---|
mcp-cli | List 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>
mcp-cli → see available serversmcp-cli info <server> → see tools with parametersmcp-cli info <server> <tool> → get full JSON schemamcp-cli call <server> <tool> '<json>' → run with arguments# 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# 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.txtNote: call outputs raw text content directly (no jq needed for text extraction)
| Flag | Purpose |
|---|---|
-d | Include descriptions |
-c <path> | Specify config file |
| Wrong Command | Error | Fix |
|---|---|---|
mcp-cli server tool | AMBIGUOUS_COMMAND | Use call server tool or info server tool |
mcp-cli run server tool | UNKNOWN_SUBCOMMAND | Use call instead of run |
mcp-cli list | UNKNOWN_SUBCOMMAND | Use info instead of list |
mcp-cli call server | MISSING_ARGUMENT | Add tool name |
mcp-cli call server tool {bad} | INVALID_JSON | Use valid JSON with quotes |
0: Success1: Client error (bad args, missing config)2: Server error (tool failed)3: Network error© philschmid, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 38 other files (scripts) in the repository root of philschmid/mcp-cli.
Open the folder on GitHubat commit d77672a
MCP-CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| MCP-CLI this skillphilschmid/mcp-cli | 1.3k | — | ~832 | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 62 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 37k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Fastmcp Client CLIPrefectHQ/fastmcp | 28k | 1 repos | ~823 | Automated safety check: Pass | Apache-2.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
PrefectHQ/fastmcp
Query and invoke tools on MCP servers using fastmcp list and fastmcp call.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
Works with
Categories
Interacts with MCP servers from the command line: lists servers and tools, inspects a tool's JSON schema, and calls a tool with JSON arguments from stdin or an argument. The CLI exposes five core commands: running mcp-cli alone lists every configured server and its tools, info <server> shows a server's tools with parameters, info <server> <tool> returns the full JSON schema for one tool, grep searches tool names by pattern, and call <server> <tool> runs a tool, reading JSON arguments from stdin when none are given inline. Both a server/tool and a server tool argument order work, and call prints raw text content directly rather than JSON, so no separate parsing step is needed for plain text results.
MCP-CLI fits situations like: listing the MCP servers and tools available in the current environment; inspecting a specific MCP tool's input schema before calling it; calling an MCP tool with JSON arguments from the command line; chaining one MCP tool's output into another command.
Run `npx skills add philschmid/mcp-cli --skill mcp-cli -a claude-code`. Or copy the skill folder (the philschmid/mcp-cli repository) into .claude/skills/mcp-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add philschmid/mcp-cli --skill mcp-cli -a codex`. Or copy the skill folder (the philschmid/mcp-cli repository) into .agents/skills/mcp-cli in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add philschmid/mcp-cli --skill mcp-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mcp-cli, .gemini/skills/mcp-cli, .github/skills/mcp-cli and .opencode/skills/mcp-cli in your project.
Going by SKILL.md and its folder, MCP-CLI needs a shell and TypeScript for the scripts in its folder. Our summary lists: The mcp-cli binary; A configured MCP servers file.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
MCP-CLI is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 832 tokens (SKILL.md is roughly 3.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with MCP-CLI: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 37k stars) and Fastmcp Client CLI (PrefectHQ/fastmcp, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
philschmid (a GitHub user) maintains it in philschmid/mcp-cli, which has 1,278 GitHub stars. The repository was last updated on February 5, 2026.
Source: philschmid/mcp-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.