---
name: MCP CLI
slug: mcp-cli
category: Automation
description: MCP CLI discovers and calls MCP server tools on demand for a single task. Use it for quick research or debugging when you do not want to mount a server permanently.
github: "https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/mcp-cli"
language: Python
stars: 164
forks: 25
install: "npx degit https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/mcp-cli ~/.claude/skills/mcp-cli"
installs_to: ~/.claude/skills/mcp-cli
source_path: plugins/cc10x/skills/mcp-cli/SKILL.md
collection_size: 21
category_size: 2226
collection_url: "https://dirskills.com/collections/romiluz13/cc10x"
added: 2026-09-08T05:35:34.673Z
last_synced: 2026-09-08T05:35:34.673Z
canonical_url: "https://dirskills.com/skills/mcp-cli"
---

# MCP CLI

MCP CLI discovers and calls MCP server tools on demand for a single task. Use it for quick research or debugging when you do not want to mount a server permanently.

**Install:**

```bash
npx degit https://github.com/romiluz13/cc10x/tree/main/plugins/cc10x/skills/mcp-cli ~/.claude/skills/mcp-cli
```

## README

# MCP CLI (Transient MCP Access)

## Overview

The `mcp` CLI (from `github.com/f/mcptools`) discovers and invokes MCP server capabilities on-demand. Use it when a task needs ONE server's tool — a doc fetch, a single query, a quick lookup — instead of permanently mounting that server as an always-loaded integration.

This keeps accelerators **transient**: spun up for the task, used, and dropped. A permanently mounted MCP server costs context on every session whether you call it or not. The CLI costs nothing until you run it.

Composes with `cc10x:research`.

## Prerequisite (install once)

Check first: `command -v mcp`. If absent, install:

```bash
git clone https://github.com/f/mcptools /tmp/mcptools
CGO_ENABLED=0 go build -o ~/.local/bin/mcp /tmp/mcptools/cmd/mcptools
# ensure ~/.local/bin is on PATH
```

If `go` is unavailable, report that the accelerator is missing and proceed with built-in tools — do NOT treat the missing binary as a task blocker (it is a fallback message, not a wall).

## Flow: discover → call → release

**1. Discover first — always.** Never call a tool whose schema you have not seen — guessed params fail silently or hit the wrong tool.

```bash
mcp tools <server-command>                 # list tools
mcp tools --format json <server-command>   # full param schema for parsing
mcp resources <server-command>             # list resources
mcp prompts <server-command>               # list prompts
```

**2. Lead read-only when exploring.** Restrict the surface before you touch an unfamiliar server:

```bash
mcp guard --allow 'tools:read_*,list_*' --deny 'tools:write_*,delete_*' <server-command>
```

Drop the guard only once you know exactly which write you intend.

**3. Call** with params matching the discovered signature exactly (`param:str`, `param:num`, `[optional]`):

```bash
mcp call <tool_name> --params '<json>' -f json <server-command>
```

Output `-f json` for parsing, `-f pretty` for reading. Check exit code and stderr on failure — a non-zero exit is a real error, not a fallback message.

**Server-command examples:**
- stdio: `npx -y @modelcontextprotocol/server-filesystem /path`
- HTTP: pass the URL (auto-detected); SSE via `--transport sse`
- auth: `--auth-header "Bearer <token>"`, `--auth-user user:pass`, or `-e ENV_VAR` for docker servers

## Aliases (only for repeated use in one task)

If you call the same server several times, alias it; remove it when the task ends so nothing lingers:

```bash
mcp alias add <name> <server-command>   # then: mcp tools <name>, mcp call ... <name>
mcp alias remove <name>                 # release when done
```

Aliases persist in `~/.mcpt/aliases.json`. Cleaning them up is part of keeping the accelerator transient.
