skills/using-mcp-tools-with-mcpc/SKILL.md
Use mcpc CLI to interact with MCP servers - call tools, read resources, get prompts. Use when working with Model Context Protocol servers, calling MCP tools, or accessing MCP resources programmatically; prefer key:=value bindings over raw JSON bodies.
npx skillsauth add aufrank/agent-skills using-mcp-tools-with-mcpcInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use mcpc to interact with MCP (Model Context Protocol) servers from the command line.
This is more efficient than function calling - generate shell commands instead.
tools-list, tools-get, resources-list/read, prompts-list/get, tools-call for read/search-only endpoints), session status checks, and commands that reuse already-created auth profiles.mcpc <server> login or trying to auto-open a browser.# List sessions and auth profiles
mcpc
# Show server info
mcpc <server>
mcpc @<session>
# Tools
mcpc <target> tools-list
mcpc <target> tools-get <tool-name>
mcpc <target> tools-call <tool-name> key:=value key2:="string value"
# Resources
mcpc <target> resources-list
mcpc <target> resources-read <uri>
# Prompts
mcpc <target> prompts-list
mcpc <target> prompts-get <prompt-name> arg1:=value1
# Sessions (persistent connections)
mcpc <server> connect @<name>
mcpc @<name> <command>
mcpc @<name> close
# Authentication
mcpc <server> login
mcpc <server> logout
mcp.example.com - Direct HTTPS connection to remote serverlocalhost:8080 or 127.0.0.1:8080 - Local HTTP server (http:// is default for localhost)@session-name - Named persistent session (faster, maintains state)config-entry - Entry from config file (with --config)Prefer key:=value bindings. Use inline JSON only when needed (e.g., first-arg object or complex arrays):
# String values
mcpc @s tools-call search query:="hello world"
# Numbers, booleans, null (auto-parsed as JSON)
mcpc @s tools-call search query:="hello" limit:=10 enabled:=true
# Complex JSON values
mcpc @s tools-call search config:='{"nested":"value"}' items:='[1,2,3]'
# Force string type with JSON quotes
mcpc @s tools-call search id:='"123"'
# Inline JSON object (if first arg starts with { or [)
mcpc @s tools-call search '{"query":"hello","limit":10}'
# From stdin (auto-detected when piped)
echo '{"query":"hello"}' | mcpc @s tools-call search
Always use --json flag for machine-readable output:
# Get tools as JSON
mcpc --json @apify tools-list
# Call tool and parse result with jq
mcpc --json @apify tools-call search query:="test" | jq '.content[0].text'
# Chain commands
mcpc --json @server1 tools-call get-data | mcpc @server2 tools-call process
Create sessions for repeated interactions:
# Create session (or reconnect if exists)
mcpc mcp.apify.com connect @apify
# Use session (faster - no reconnection overhead)
mcpc @apify tools-list
mcpc @apify tools-call search query:="test"
# Restart session (useful after server updates)
mcpc @apify restart
# Close when done
mcpc @apify close
Session states:
close and reconnectOAuth (interactive login – human-only, foreground):
mcpc <server> login opens the browser; mcpc never opens it itself. Do not background this command or it will miss the localhost callback.Python preflight to enforce “login first” in scripts (no automatic browser launches):
import json, os, sys
server = os.environ.get("MCP_SERVER", "mcp.apify.com")
profile = os.environ.get("MCP_PROFILE", "default")
profiles_path = os.path.join(os.path.expanduser("~"), ".mcpc", "profiles.json")
try:
data = json.load(open(profiles_path, "r", encoding="utf-8"))
profiles = data.get("profiles", [])
except FileNotFoundError:
profiles = []
has_profile = any(p.get("server") == server and p.get("name") == profile for p in profiles)
if not has_profile:
print(f"No mcpc auth profile '{profile}' for {server}.")
print(f"Run this yourself (foreground): mcpc {server} login --profile {profile}")
sys.exit(1)
After the preflight succeeds, scripts may call mcpc --profile <name> ... or rely on the default profile.
Bearer token:
mcpc -H "Authorization: Bearer $TOKEN" mcp.apify.com tools-list
mcpc -H "Authorization: Bearer $TOKEN" mcp.apify.com connect @myserver
Create a proxy MCP server that hides authentication tokens:
# Human creates authenticated session with proxy
mcpc mcp.apify.com connect @ai-proxy --proxy 8080
# AI agent connects to proxy (no access to original tokens)
# Note: localhost defaults to http://
mcpc localhost:8080 tools-list
mcpc 127.0.0.1:8080 connect @sandboxed
List and inspect tools:
mcpc @s tools-list
mcpc @s tools-get tool-name
Call tool and extract text result:
mcpc --json @s tools-call my-tool | jq -r '.content[0].text'
Read resource content:
mcpc @s resources-read "file:///path/to/file"
Use config file for local servers:
mcpc --config .vscode/mcp.json filesystem resources-list
0 - Success1 - Client error (invalid arguments)2 - Server error (tool failed)3 - Network error4 - Authentication error# Verbose output shows protocol details
mcpc --verbose @s tools-call my-tool
See docs/examples/company-lookup.sh for a complete example
of an AI-generated script that validates prerequisites and calls MCP tools.
tools
Build and execute modular DAG workflows for long-context processing using slice/map/reduce/recurse/compact/filter operators. Use for one-shot batch jobs, standalone map-reduce pipelines, or when the context-dag plugin is not installed. Trigger when input exceeds the model's context window, when reproducible logged pipelines are needed, or when multi-level recursive processing is required. If context-dag is installed, the plugin's bundled dag_runner.py provides the same capability with persistent artifact storage.
documentation
Write in Austin Frank's voice and style. Use this skill whenever generating text that should sound like Austin — strategy docs, charters, proposals, business cases, vision documents, staffing requests, stakeholder updates, cover letters, mission statements, org design documents, or any professional prose where the user wants Austin's distinctive voice. Also use when the user asks to review, edit, or improve a draft for voice consistency, or when they reference "my style", "my voice", "write like me", or "Austin's style".
tools
Use mcpc to interact with the Notion MCP server: connect sessions, search workspace content, fetch pages/databases, and run helper scripts for common Notion actions.
tools
Decide between a scripted workflow and an autonomous agent harness, then scaffold the chosen path. Use when scoping new agentic systems or tool integrations.