src/skills/builtin/mcp-client/SKILL.md
Generic MCP client bridge for skills — discover and call tools from MCP servers declared in SKILL.md frontmatter or passed as URLs
npx skillsauth add mcarcaso/phousevito mcp-clientInstall 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 this skill when another skill declares an mcp: block, or when you need to inspect/call a remote/stdIO MCP server without wiring it globally into Vito.
This is a generic MCP bridge. Individual skills should declare where to connect; this skill discovers the current tool list live via MCP tools/list, so tool schemas can evolve without stale docs.
In another skill's SKILL.md frontmatter:
---
name: tavily
description: Web research through Tavily MCP
mcp:
transport: http # http | streamable-http | stdio
url: https://mcp.example.com/mcp?apiKey=${API_KEY}
# Optional safety/config:
allowToolPrefix: tavily_ # optional; soft safety fence for calls
timeoutMs: 30000 # optional; default 30000, max 120000
maxOutputBytes: 50000 # optional; default 50000
---
For stdio servers:
mcp:
transport: stdio
command: npx
args: ["-y", "@vendor/mcp-server"]
env:
API_KEY: ${API_KEY}
Secrets are resolved from process.env first, then user/secrets.json. Never hardcode raw secrets in skill files.
node src/skills/builtin/mcp-client/mcp-client.mjs list <skill-md-or-url-or-dir>
node src/skills/builtin/mcp-client/mcp-client.mjs call <skill-md-or-url-or-dir> <tool_name> '<json_args>'
node src/skills/builtin/mcp-client/mcp-client.mjs batch <skill-md-or-url-or-dir> '<json_steps>'
node src/skills/builtin/mcp-client/mcp-client.mjs schema <skill-md-or-url-or-dir> <tool_name>
Aliases:
tools = listinvoke = callsequence = batchDiscover tools from a skill with an mcp: block:
node src/skills/builtin/mcp-client/mcp-client.mjs list user/skills/tavily/SKILL.md
Call a discovered tool:
node src/skills/builtin/mcp-client/mcp-client.mjs call user/skills/tavily/SKILL.md tavily_search '{"query":"Forrest Frank Nashville GEODIS Park tickets","max_results":5}'
Call multiple tools over one MCP connection/session — useful for browser MCP servers where state matters:
node src/skills/builtin/mcp-client/mcp-client.mjs batch user/skills/playwright/SKILL.md '[{"tool":"browser_navigate","args":{"url":"https://example.com"}},{"tool":"browser_snapshot","args":{}}]'
Use a raw remote MCP URL directly:
node src/skills/builtin/mcp-client/mcp-client.mjs list 'https://mcp.example.com/mcp?apiKey=${API_KEY}'
list returns current tool names, descriptions, and input schemas.schema returns one tool's input schema.call returns the MCP tool result content as JSON, with text/resource/image blocks preserved.batch returns an array of step results from one shared MCP connection.list before the first call unless you just listed tools in the same task.allowTools or allowToolPrefix, respect it.data-ai
Maintain and discover updates for user/profile.md — what belongs, how to edit, daily discovery sweeps, and refinement passes
tools
Browse the web, take screenshots, and extract content from web pages using Playwright MCP
data-ai
How to update user/profile.md — what's profile-worthy, where to put it, when to clean up. Read this skill any time you're about to Edit profile.md.
data-ai
Search and retrieve exact messages from the conversation database using SQL queries — timestamps, keywords, sessions, counts