#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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit d77672a1ce800ec3fec1f43829909badb2ffbd32

1.3kGitHub stars
2stars in 7 days
1skill in this repository
0commits in 30 days

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

Aug 1, 2026Nov 5, 20261,283

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

905 tokens

When the skill is activated

Reference documents

5,438 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Commands
  2. Workflow
  3. Examples
  4. Advanced Chaining
  5. Options
  6. Common Errors
  7. Exit Codes

Scripts executed separately

  • install.sh
  • package.json
  • scripts/generate-system-instructions.ts
  • scripts/release.sh
  • src/client.ts
  • src/commands/call.ts
  • src/commands/grep.ts
  • src/commands/info.ts
  • src/commands/list.ts
  • src/config.ts
  • src/daemon-client.ts
  • src/daemon.ts
  • src/errors.ts
  • src/index.ts
  • src/output.ts
  • src/version.ts
  • tests/cli-errors.test.ts
  • tests/client.test.ts
  • tests/config.test.ts
  • tests/errors.test.ts
  • tests/filter.test.ts
  • tests/grep.test.ts
  • tests/integration/cli.test.ts
  • tests/output.test.ts

Files

  • .github/workflows/ci.ymlasset1,098 bytes
  • .github/workflows/release.ymlasset2,568 bytes
  • .gitignoreasset392 bytes
  • CHANGELOG.mddoc2,263 bytes
  • LICENSEasset1,056 bytes
  • README.mddoc21,749 bytes
  • SKILL.mdcore3,336 bytes
  • SKILL.mdcore3,336 bytes
  • SKILL.mdcore3,336 bytes
  • biome.jsonasset710 bytes
  • bun.lockasset21,533 bytes
  • comparison.jpegasset797,577 bytes
  • install.shruns4,973 bytes
  • mcp_servers.jsonasset329 bytes
  • package.jsonruns2,060 bytes
  • scripts/generate-system-instructions.tsruns3,147 bytes
  • scripts/release.shruns2,876 bytes
  • src/client.tsruns12,911 bytes
  • src/commands/call.tsruns4,833 bytes
  • src/commands/grep.tsruns5,508 bytes
  • src/commands/info.tsruns2,732 bytes
  • src/commands/list.tsruns3,683 bytes
  • src/config.tsruns15,276 bytes
  • src/daemon-client.tsruns8,824 bytes
  • src/daemon.tsruns10,029 bytes
  • src/errors.tsruns12,266 bytes
  • src/index.tsruns13,731 bytes
  • src/output.tsruns5,992 bytes
  • src/version.tsruns136 bytes
  • tests/cli-errors.test.tsruns14,229 bytes
  • tests/client.test.tsruns7,397 bytes
  • tests/config.test.tsruns7,019 bytes
  • tests/errors.test.tsruns9,493 bytes
  • tests/filter.test.tsruns6,297 bytes
  • tests/grep.test.tsruns5,405 bytes
  • tests/integration/cli.test.tsruns11,785 bytes
  • tests/output.test.tsruns4,798 bytes
  • tsconfig.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 GitHub

Skills 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

  1. #721 on Nov 1
  2. #726 on Nov 2
  3. #729 on Nov 3
  4. #732 on Nov 4
  5. #731 on Nov 5
  6. #733 since Nov 6
38 earlier periods
  1. #512 on Aug 1
  2. #497 on Aug 6
  3. #478 on Aug 9
  4. #494 on Aug 12
  5. #500 on Aug 13
  6. #480 on Aug 15
  7. #505 on Aug 19
  8. #504 on Aug 21
  9. #486 on Aug 22
  10. #510 on Aug 23
  11. #509 on Aug 24
  12. #517 on Aug 25
  13. #509 on Aug 26
  14. #522 on Aug 28
  15. #506 on Aug 29
  16. #524 on Aug 31
  17. #521 on Sep 2
  18. #513 on Sep 4
  19. #507 on Sep 5
  20. #522 on Sep 7
  21. #541 on Sep 8
  22. #534 on Sep 10
  23. #530 on Sep 11
  24. #526 on Sep 13
  25. #546 on Sep 14
  26. #543 on Sep 17
  27. #546 on Sep 18
  28. #562 on Oct 4
  29. #583 on Oct 6
  30. #612 on Oct 8
  31. #584 on Oct 10
  32. #611 on Oct 17
  33. #633 on Oct 19
  34. #700 on Oct 25
  35. #709 on Oct 28
  36. #711 on Oct 29
  37. #714 on Oct 30
  38. #720 on Oct 31

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

  • Network accessline 1
    {   "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
  • Network accessline 2
    "$schema": "https://biomejs.dev/schemas/1.9.4/schema.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

  • Executable scriptline 1
    #!/bin/bash
  • Dangerous shell operationline 63
    rm -f package.json.bak
  • Network accessline 105
    echo "" echo "Monitor the release at:" echo "  https://github.com/philschmid/mcp-cli/actions"
  • Network accessline 107
    echo "  https://github.com/philschmid/mcp-cli/actions"

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 compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

philschmid/mcp-cli: #733 on hotskills, 1.3k stars

[![philschmid/mcp-cli on hotskills](https://hotskills.dev/badge/philschmid-mcp-cli.svg)](https://hotskills.dev/skill/philschmid-mcp-cli/)