#733 by GitHub stars
philschmid/mcp-cli
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.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
d77672a1ce80 → d77672a1ce80
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → d77672a1ce80
No earlier version was observed for comparison.
Heat
2.2- Star growth, last 7 daysAhead of 51% of tracked repositories
- Star growth, last 24 hoursAhead of 5% of tracked repositories
- Rank movement, last 7 daysAhead of 8% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- mcp-cli
/
How it works
mcp-cli
When your agent uses it
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.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
905 tokensWhen the skill is activated
Reference documents
5,438 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commands
- Workflow
- Examples
- Advanced Chaining
- Options
- Common Errors
- Exit Codes
Scripts executed separately
install.shpackage.jsonscripts/generate-system-instructions.tsscripts/release.shsrc/client.tssrc/commands/call.tssrc/commands/grep.tssrc/commands/info.tssrc/commands/list.tssrc/config.tssrc/daemon-client.tssrc/daemon.tssrc/errors.tssrc/index.tssrc/output.tssrc/version.tstests/cli-errors.test.tstests/client.test.tstests/config.test.tstests/errors.test.tstests/filter.test.tstests/grep.test.tstests/integration/cli.test.tstests/output.test.ts
Files
.github/workflows/ci.ymlasset1,098 bytes.github/workflows/release.ymlasset2,568 bytes.gitignoreasset392 bytesCHANGELOG.mddoc2,263 bytesLICENSEasset1,056 bytesREADME.mddoc21,749 bytesSKILL.mdcore3,336 bytesSKILL.mdcore3,336 bytesSKILL.mdcore3,336 bytesbiome.jsonasset710 bytesbun.lockasset21,533 bytescomparison.jpegasset797,577 bytesinstall.shruns4,973 bytesmcp_servers.jsonasset329 bytespackage.jsonruns2,060 bytesscripts/generate-system-instructions.tsruns3,147 bytesscripts/release.shruns2,876 bytessrc/client.tsruns12,911 bytessrc/commands/call.tsruns4,833 bytessrc/commands/grep.tsruns5,508 bytessrc/commands/info.tsruns2,732 bytessrc/commands/list.tsruns3,683 bytessrc/config.tsruns15,276 bytessrc/daemon-client.tsruns8,824 bytessrc/daemon.tsruns10,029 bytessrc/errors.tsruns12,266 bytessrc/index.tsruns13,731 bytessrc/output.tsruns5,992 bytessrc/version.tsruns136 bytestests/cli-errors.test.tsruns14,229 bytestests/client.test.tsruns7,397 bytestests/config.test.tsruns7,019 bytestests/errors.test.tsruns9,493 bytestests/filter.test.tsruns6,297 bytestests/grep.test.tsruns5,405 bytestests/integration/cli.test.tsruns11,785 bytestests/output.test.tsruns4,798 bytestsconfig.jsonasset555 bytes
Read SKILL.md
# 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 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 |View the complete source on GitHubSkills included
- mcp-cli
Repository facts
- License
- MIT
- Created
- Jan 8, 2026
- Last pushed
- Feb 5, 2026
- Forks
- 161
- Open issues
- 15
- Project activity
- Slowing
Rank over the last 12 weeks
Now #733 · best #480 · down 150 in 30 days
- #721 on Nov 1
- #726 on Nov 2
- #729 on Nov 3
- #732 on Nov 4
- #731 on Nov 5
- #733 since Nov 6
38 earlier periods
- #512 on Aug 1
- #497 on Aug 6
- #478 on Aug 9
- #494 on Aug 12
- #500 on Aug 13
- #480 on Aug 15
- #505 on Aug 19
- #504 on Aug 21
- #486 on Aug 22
- #510 on Aug 23
- #509 on Aug 24
- #517 on Aug 25
- #509 on Aug 26
- #522 on Aug 28
- #506 on Aug 29
- #524 on Aug 31
- #521 on Sep 2
- #513 on Sep 4
- #507 on Sep 5
- #522 on Sep 7
- #541 on Sep 8
- #534 on Sep 10
- #530 on Sep 11
- #526 on Sep 13
- #546 on Sep 14
- #543 on Sep 17
- #546 on Sep 18
- #562 on Oct 4
- #583 on Oct 6
- #612 on Oct 8
- #584 on Oct 10
- #611 on Oct 17
- #633 on Oct 19
- #700 on Oct 25
- #709 on Oct 28
- #711 on Oct 29
- #714 on Oct 30
- #720 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 2 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 9 dangerous shell commandsin 4 files: install.sh:3 README.md:24 scripts/release.sh:63 and 1 more
- 71 network referencesin 10 files: tests/config.test.ts:71 README.md:3 install.sh:2 and 7 more
- No hidden or obfuscated text
- No instruction overrides
- 24 executable scriptsin 24 files: install.sh:1 package.json:1 scripts/generate-system-instructions.ts:1 and 21 more
- 5 references to secretsin 3 files: tests/config.test.ts:65 .gitignore:22 README.md:288
- No requests to vote in Hot
Show all 109 signals by file
.gitignore
- Access to secretsline 22
[Credential-related source omitted]
README.md
- Network accessline 3
A lightweight, Bun-based CLI for interacting with [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) servers. - Dangerous shell operationline 24
curl -fsSL https://raw.githubusercontent.com/philschmid/mcp-cli/main/install.sh | bash - Network accessline 24
curl -fsSL https://raw.githubusercontent.com/philschmid/mcp-cli/main/install.sh | bash - Network accessline 30
# requires bun install bun install -g https://github.com/philschmid/mcp-cli - Network accessline 31
bun install -g https://github.com/philschmid/mcp-cli - Network accessline 48
}, "deepwiki": { "url": "https://mcp.deepwiki.com/mcp" - Network accessline 49
"deepwiki": { "url": "https://mcp.deepwiki.com/mcp" } - Network accessline 50
"url": "https://mcp.deepwiki.com/mcp" - Access to secretsline 288
[Credential-related source omitted] - Network accessline 291
}, "remote-server": { "url": "https://mcp.example.com", - Network accessline 292
"remote-server": { "url": "https://mcp.example.com", "headers": { - Network accessline 293
"url": "https://mcp.example.com", - Network accessline 542
- [Bun](https://bun.sh/) >= 1.0.0 - Network accessline 547
bun install https://github.com/philschmid/mcp-cli
biome.json
install.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 2
# Install script for mcp-cli # Usage: curl -fsSL https://raw.githubusercontent.com/philschmid/mcp-cli/main/install.sh | bash - Dangerous shell operationline 3
# Usage: curl -fsSL https://raw.githubusercontent.com/philschmid/mcp-cli/main/install.sh | bash - Network accessline 3
# Usage: curl -fsSL https://raw.githubusercontent.com/philschmid/mcp-cli/main/install.sh | bash - Dangerous shell operationline 20
rm -f "$TMP_FILE" - Dangerous shell operationline 23
rm -f "$TMP_CHECKSUM" - Dangerous shell operationline 53
# Installation directory - prefer ~/.local/bin (no sudo needed) - Network accessline 81
DOWNLOAD_URL="https://github.com/$GITHUB_REPO/releases/latest/download/$BINARY" - Network accessline 82
CHECKSUM_URL="https://github.com/$GITHUB_REPO/releases/latest/download/checksums.txt" - Network accessline 85
echo -e "${BLUE}Downloading...${NC}" TMP_FILE=$(mktemp) if ! curl -fsSL "$DOWNLOAD_URL" -o "$TMP_FILE"; then - Network accessline 86
TMP_FILE=$(mktemp) if ! curl -fsSL "$DOWNLOAD_URL" -o "$TMP_FILE"; then echo -e "${RED}Failed to download binary. Check if releases exist at:${NC}" - Network accessline 87
if ! curl -fsSL "$DOWNLOAD_URL" -o "$TMP_FILE"; then - Network accessline 88
echo -e "${RED}Failed to download binary. Check if releases exist at:${NC}" echo " https://github.com/$GITHUB_REPO/releases" exit 1 - Network accessline 89
echo " https://github.com/$GITHUB_REPO/releases" - Network accessline 94
TMP_CHECKSUM=$(mktemp) if curl -fsSL "$CHECKSUM_URL" -o "$TMP_CHECKSUM" 2>/dev/null; then - Network accessline 95
if curl -fsSL "$CHECKSUM_URL" -o "$TMP_CHECKSUM" 2>/dev/null; then - Dangerous shell operationline 136
echo -e "${YELLOW}Requires sudo to install to $INSTALL_DIR${NC}" - Dangerous shell operationline 137
sudo mv "$TMP_FILE" "$INSTALL_DIR/mcp-cli"
mcp_servers.json
- Network accessline 9
], "env": { "npm_config_registry": "https://registry.npmjs.org" - Network accessline 10
"env": { "npm_config_registry": "https://registry.npmjs.org" } - Network accessline 11
"npm_config_registry": "https://registry.npmjs.org" - Network accessline 13
}, "deepwiki": { "url": "https://mcp.deepwiki.com/mcp" - Network accessline 14
"deepwiki": { "url": "https://mcp.deepwiki.com/mcp" } - Network accessline 15
"url": "https://mcp.deepwiki.com/mcp"
package.json
- Executable scriptline 1
Executable file - Network accessline 44
"repository": { "type": "git", "url": "https://github.com/philschmid/mcp-cli" - Network accessline 45
"type": "git", "url": "https://github.com/philschmid/mcp-cli" }, - Network accessline 46
"url": "https://github.com/philschmid/mcp-cli" - Network accessline 47
}, "bugs": { "url": "https://github.com/philschmid/mcp-cli/issues" - Network accessline 48
"bugs": { "url": "https://github.com/philschmid/mcp-cli/issues" }, - Network accessline 49
"url": "https://github.com/philschmid/mcp-cli/issues" - Network accessline 50
}, "homepage": "https://github.com/philschmid/mcp-cli#readme", "engines": { - Network accessline 51
"homepage": "https://github.com/philschmid/mcp-cli#readme",
scripts/generate-system-instructions.ts
- Executable scriptline 1
#!/usr/bin/env bun
scripts/release.sh
src/client.ts
- Executable scriptline 1
Executable file
src/commands/call.ts
- Executable scriptline 1
Executable file
src/commands/grep.ts
- Executable scriptline 1
Executable file
src/commands/info.ts
- Executable scriptline 1
Executable file
src/commands/list.ts
- Executable scriptline 1
Executable file
src/config.ts
- Executable scriptline 1
Executable file - Network accessline 478
message: `Server "${serverName}" missing required field`, details: `Must have either "command" (for stdio) or "url" (for HTTP)`, suggestion: `Add "command": "npx ..." for local servers or "url": "https://..." for remote - Network accessline 479
details: `Must have either "command" (for stdio) or "url" (for HTTP)`, suggestion: `Add "command": "npx ..." for local servers or "url": "https://..." for remote servers`, }), - Network accessline 480
suggestion: `Add "command": "npx ..." for local servers or "url": "https://..." for remote servers`,
src/daemon-client.ts
- Executable scriptline 1
Executable file
src/daemon.ts
- Executable scriptline 1
Executable file
src/errors.ts
- Executable scriptline 1
Executable file
src/index.ts
- Executable scriptline 1
#!/usr/bin/env bun
src/output.ts
- Executable scriptline 1
Executable file
src/version.ts
- Executable scriptline 1
Executable file
tests/cli-errors.test.ts
- Executable scriptline 1
Executable file
tests/client.test.ts
- Executable scriptline 1
Executable file - Network accessline 22
test('identifies HTTP server configs', () => { const httpConfig: HttpServerConfig = { url: 'https://mcp.example.com', - Network accessline 23
[Credential-related source omitted] - Network accessline 24
url: 'https://mcp.example.com', - Network accessline 43
test('handles minimal HTTP config', () => { const minimalHttp: HttpServerConfig = { url: 'https://example.com', - Network accessline 44
const minimalHttp: HttpServerConfig = { url: 'https://example.com', }; - Network accessline 45
url: 'https://example.com',
tests/config.test.ts
- Executable scriptline 1
Executable file - Dangerous shell operationline 6
import { mkdtemp, writeFile, rm } from 'node:fs/promises'; - Access to secretsline 65
[Credential-related source omitted] - Network accessline 71
mcpServers: { test: { url: 'https://example.com', - Network accessline 72
[Credential-related source omitted] - Network accessline 73
url: 'https://example.com', - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 151
mixed: { command: 'echo', url: 'https://example.com', - Network accessline 152
command: 'echo', url: 'https://example.com', }, - Network accessline 153
url: 'https://example.com', - Network accessline 216
alpha: { command: 'a' }, beta: { command: 'b' }, gamma: { url: 'https://example.com' }, - Network accessline 217
beta: { command: 'b' }, gamma: { url: 'https://example.com' }, }, - Network accessline 218
gamma: { url: 'https://example.com' }, - Network accessline 232
describe('type guards', () => { test('isHttpServer identifies HTTP config', () => { expect(isHttpServer({ url: 'https://example.com' })).toBe(true); - Network accessline 233
test('isHttpServer identifies HTTP config', () => { expect(isHttpServer({ url: 'https://example.com' })).toBe(true); expect(isHttpServer({ command: 'echo' })).toBe(false); - Network accessline 234
expect(isHttpServer({ url: 'https://example.com' })).toBe(true); - Network accessline 238
test('isStdioServer identifies stdio config', () => { expect(isStdioServer({ command: 'echo' })).toBe(true); expect(isStdioServer({ url: 'https://example.com' })).toBe(false); - Network accessline 239
expect(isStdioServer({ command: 'echo' })).toBe(true); expect(isStdioServer({ url: 'https://example.com' })).toBe(false); }); - Network accessline 240
expect(isStdioServer({ url: 'https://example.com' })).toBe(false);
tests/errors.test.ts
- Executable scriptline 1
Executable file
tests/filter.test.ts
- Executable scriptline 1
Executable file
tests/grep.test.ts
- Executable scriptline 1
Executable file
tests/integration/cli.test.ts
- Executable scriptline 1
Executable file - Network accessline 41
args: ['-y', '@modelcontextprotocol/server-filesystem', tempDir], env: { npm_config_registry: 'https://registry.npmjs.org', - Network accessline 42
env: { npm_config_registry: 'https://registry.npmjs.org', }, - Network accessline 43
npm_config_registry: 'https://registry.npmjs.org', - Network accessline 307
mcpServers: { deepwiki: { url: 'https://mcp.deepwiki.com/mcp', - Network accessline 308
deepwiki: { url: 'https://mcp.deepwiki.com/mcp', }, - Network accessline 309
url: 'https://mcp.deepwiki.com/mcp',
tests/output.test.ts
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 4 facts
- Dangerous shell operation in code of documentationREADME.md:24Low confidence
- Network access in code of documentationREADME.md:24Low confidence
- Network access in code of documentationREADME.md:31Low confidence
- Network access in code of documentationREADME.md:547Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/philschmid-mcp-cli/)