mcp-cli
Use MCP servers on-demand via the mcp CLI tool - discover tools, resources, and prompts without polluting context with pre-loaded MCP integrations
What this skill does
# MCP CLI: On-Demand MCP Server Usage
Use the `mcp` CLI tool to dynamically discover and invoke MCP server capabilities without pre-configuring them as permanent integrations.
## When to Use This Skill
Use this skill when you need to:
- Explore an MCP server's capabilities before deciding to use it
- Make one-off calls to an MCP server without permanent integration
- Access MCP functionality without polluting the context window
- Test or debug MCP servers
- Use MCP servers that aren't pre-configured
## Prerequisites
The `mcp` CLI must be installed at `~/.local/bin/mcp`. If not present:
```bash
# Clone and build
cd /tmp && git clone --depth 1 https://github.com/f/mcptools.git
cd mcptools && CGO_ENABLED=0 go build -o ~/.local/bin/mcp ./cmd/mcptools
```
Always ensure PATH includes the binary:
```bash
export PATH="$HOME/.local/bin:$PATH"
```
## Discovery Workflow
### Step 1: Discover Available Tools
```bash
mcp tools <server-command>
```
**Examples:**
```bash
# Filesystem server
mcp tools npx -y @modelcontextprotocol/server-filesystem /path/to/allow
# Memory/knowledge graph server
mcp tools npx -y @modelcontextprotocol/server-memory
# GitHub server (requires token)
mcp tools docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# HTTP-based server
mcp tools https://example.com/mcp
```
### Step 2: Discover Resources (if supported)
```bash
mcp resources <server-command>
```
Resources are data sources the server exposes (files, database entries, etc.).
### Step 3: Discover Prompts (if supported)
```bash
mcp prompts <server-command>
```
Prompts are pre-defined prompt templates the server provides.
### Step 4: Get Detailed Info (JSON format)
```bash
# For full schema details including parameter types
mcp tools --format json <server-command>
mcp tools --format pretty <server-command>
```
## Making Tool Calls
### Basic Syntax
```bash
mcp call <tool_name> --params '<json>' <server-command>
```
### Examples
**Read a file:**
```bash
mcp call read_file --params '{"path": "/tmp/example.txt"}' \
npx -y @modelcontextprotocol/server-filesystem /tmp
```
**Write a file:**
```bash
mcp call write_file --params '{"path": "/tmp/test.txt", "content": "Hello world"}' \
npx -y @modelcontextprotocol/server-filesystem /tmp
```
**List directory:**
```bash
mcp call list_directory --params '{"path": "/tmp"}' \
npx -y @modelcontextprotocol/server-filesystem /tmp
```
**Create entities (memory server):**
```bash
mcp call create_entities --params '{"entities": [{"name": "Project", "entityType": "Software", "observations": ["Uses TypeScript"]}]}' \
npx -y @modelcontextprotocol/server-memory
```
**Search (memory server):**
```bash
mcp call search_nodes --params '{"query": "TypeScript"}' \
npx -y @modelcontextprotocol/server-memory
```
### Complex Parameters
For nested objects and arrays, ensure valid JSON:
```bash
mcp call edit_file --params '{
"path": "/tmp/file.txt",
"edits": [
{"oldText": "foo", "newText": "bar"},
{"oldText": "baz", "newText": "qux"}
]
}' npx -y @modelcontextprotocol/server-filesystem /tmp
```
### Output Formats
```bash
# Table (default, human-readable)
mcp call <tool> --params '{}' <server>
# JSON (for parsing)
mcp call <tool> --params '{}' -f json <server>
# Pretty JSON (readable JSON)
mcp call <tool> --params '{}' -f pretty <server>
```
## Reading Resources
```bash
# List available resources
mcp resources <server-command>
# Read a specific resource
mcp read-resource <resource-uri> <server-command>
# Alternative syntax
mcp call resource:<resource-uri> <server-command>
```
## Using Prompts
```bash
# List available prompts
mcp prompts <server-command>
# Get a prompt (may require arguments)
mcp get-prompt <prompt-name> <server-command>
# With parameters
mcp get-prompt <prompt-name> --params '{"arg": "value"}' <server-command>
```
## Server Aliases (for repeated use)
If using a server frequently during a session:
```bash
# Create alias
mcp alias add fs npx -y @modelcontextprotocol/server-filesystem /home/user
# Use alias
mcp tools fs
mcp call read_file --params '{"path": "README.md"}' fs
# List aliases
mcp alias list
# Remove when done
mcp alias remove fs
```
Aliases are stored in `~/.mcpt/aliases.json`.
## Authentication
### HTTP Basic Auth
```bash
mcp tools --auth-user "username:password" https://api.example.com/mcp
```
### Bearer Token
```bash
mcp tools --auth-header "Bearer your-token-here" https://api.example.com/mcp
```
### Environment Variables (for Docker-based servers)
```bash
mcp tools docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN="$GITHUB_TOKEN" \
ghcr.io/github/github-mcp-server
```
## Transport Types
### Stdio (default for npx/node commands)
```bash
mcp tools npx -y @modelcontextprotocol/server-filesystem /tmp
```
### HTTP (auto-detected for http/https URLs)
```bash
mcp tools https://example.com/mcp
```
### SSE (Server-Sent Events)
```bash
mcp tools http://localhost:3001/sse
# Or explicitly:
mcp tools --transport sse http://localhost:3001
```
## Common MCP Servers
### Filesystem
```bash
# Allow access to specific directory
mcp tools npx -y @modelcontextprotocol/server-filesystem /path/to/allow
```
### Memory (Knowledge Graph)
```bash
mcp tools npx -y @modelcontextprotocol/server-memory
```
### GitHub
```bash
export GITHUB_PERSONAL_ACCESS_TOKEN="your-token"
mcp tools docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
```
### Brave Search
```bash
export BRAVE_API_KEY="your-key"
mcp tools npx -y @anthropic/mcp-server-brave-search
```
### Puppeteer (Browser Automation)
```bash
mcp tools npx -y @anthropic/mcp-server-puppeteer
```
## Best Practices
### 1. Always Discover First
Before calling tools, run `mcp tools` to understand what's available and the exact parameter schema.
### 2. Use JSON Format for Parsing
When you need to process results programmatically:
```bash
mcp call <tool> --params '{}' -f json <server> | jq '.field'
```
### 3. Validate Parameters
The table output shows parameter signatures. Match them exactly:
- `param:str` = string
- `param:num` = number
- `param:bool` = boolean
- `param:str[]` = array of strings
- `[param:str]` = optional parameter
### 4. Handle Errors Gracefully
Tool calls may fail. Check exit codes and stderr:
```bash
if ! result=$(mcp call tool --params '{}' server 2>&1); then
echo "Error: $result"
fi
```
### 5. Use Aliases for Multi-Step Operations
If making several calls to the same server:
```bash
mcp alias add tmp-server npx -y @modelcontextprotocol/server-filesystem /tmp
mcp call list_directory --params '{"path": "/tmp"}' tmp-server
mcp call read_file --params '{"path": "/tmp/file.txt"}' tmp-server
mcp alias remove tmp-server
```
### 6. Restrict Capabilities with Guard
For safety, limit what tools are accessible:
```bash
# Only allow read operations
mcp guard --allow 'tools:read_*,list_*' --deny 'tools:write_*,delete_*' \
npx -y @modelcontextprotocol/server-filesystem /home
```
## Debugging
### View Server Logs
```bash
mcp tools --server-logs <server-command>
```
### Check Alias Configuration
```bash
cat ~/.mcpt/aliases.json
```
### Verbose Output
Use `--format pretty` for detailed JSON output to debug parameter issues.
## Quick Reference
| Action | Command |
|--------|---------|
| List tools | `mcp tools <server>` |
| List resources | `mcp resources <server>` |
| List prompts | `mcp prompts <server>` |
| Call tool | `mcp call <tool> --params '<json>' <server>` |
| Read resource | `mcp read-resource <uri> <server>` |
| Get prompt | `mcp get-prompt <name> <server>` |
| Add alias | `mcp alias add <name> <server-command>` |
| Remove alias | `mcp alias remove <name>` |
| JSON output | Add `-f json` or `-f pretty` |
## Example: Complete Workflow
```bash
# 1. Discover what's available
mcp tools npx -y @modelcontextprotocol/server-filesystem /home/user/project
# 2. Check for resources
mcp resources npx -y @modelcontextprotocol/server-filesystem /hoRelated in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.