Ay-Skills mcp-client
Universal MCP client for connecting to any MCP server with progressive disclosure. Wraps MCP servers as skills to avoid context window bloat from tool definitions. Use when interacting with external MCP servers (Zapier, Sequential Thinking, GitHub, filesystem, etc.), listing available tools, or executing MCP tool calls. Triggers on requests like "connect to Zapier", "use MCP server", "list MCP tools", "call Zapier action", "use sequential thinking", or any MCP server interaction.
git clone https://github.com/walidboulanouar/Ay-Skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/walidboulanouar/Ay-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/mcp-client" ~/.claude/skills/walidboulanouar-ay-skills-mcp-client && rm -rf "$T"
skills/mcp-client/SKILL.mdUniversal MCP Client
Connect to any MCP server with progressive disclosure - load tool schemas on-demand instead of dumping thousands of tokens into context upfront.
Skill Location
This skill is located at:
.claude/skills/mcp-client/
Script path:
.claude/skills/mcp-client/scripts/mcp_client.py
Configuration
The script looks for config in this order:
env var (custom path)MCP_CONFIG_PATH
(this skill's config - recommended)references/mcp-config.json
in project root.mcp.json~/.claude.json
Your config file:
.claude/skills/mcp-client/references/mcp-config.json
Edit this file to add your API keys. The example file (
example-mcp-config.json) is kept as a reference template.
Security note:
- Never commit real API keys. This repo uses a placeholder
for the AY Proposals server.${AY_PROPOSALS_API_KEY} - Option 1 (recommended): Create a private config and point the script to it:
(same structure, with your real token). Keep that file out of git.export MCP_CONFIG_PATH=~/.claude/skills/mcp-client/references/mcp-config.local.json - Option 2: Export your key in the shell:
and ensure your runtime interpolates env vars. If not, use Option 1.export AY_PROPOSALS_API_KEY=...
If the user hasn't provided their Zapier API key yet, ask them for it.
Running Commands
All commands use the script at
.claude/skills/mcp-client/scripts/mcp_client.py:
# List configured servers python .claude/skills/mcp-client/scripts/mcp_client.py servers # List tools from a server python .claude/skills/mcp-client/scripts/mcp_client.py tools <server_name> # Call a tool python .claude/skills/mcp-client/scripts/mcp_client.py call <server> <tool> '{"arg": "value"}'
Workflow
- Check config exists - Run
command. If error, createservers.mcp.json - List servers - See what MCP servers are configured
- List tools - Get tool schemas from a specific server
- Call tool - Execute a tool with arguments
Commands Reference
| Command | Description |
|---|---|
| List all configured MCP servers |
| List tools with full parameter schemas |
| Execute a tool with arguments |
Example: Zapier
# 1. List servers to confirm Zapier is configured python .claude/skills/mcp-client/scripts/mcp_client.py servers # 2. List Zapier tools python .claude/skills/mcp-client/scripts/mcp_client.py tools zapier # 3. Call a Zapier tool python .claude/skills/mcp-client/scripts/mcp_client.py call zapier <tool_name> '{"param": "value"}'
Example: Sequential Thinking
# 1. List tools python .claude/skills/mcp-client/scripts/mcp_client.py tools sequential-thinking # 2. Use sequential thinking python .claude/skills/mcp-client/scripts/mcp_client.py call sequential-thinking sequentialthinking '{"thought": "Breaking down the problem...", "thoughtNumber": 1, "totalThoughts": 5, "nextThoughtNeeded": true}'
Config Format
Config file format (
references/mcp-config.json):
{ "mcpServers": { "zapier": { "url": "https://mcp.zapier.com/api/v1/connect", "api_key": "your-api-key" }, "sequential-thinking": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"] } } }
Transport detection:
+url
→ FastMCP with Bearer auth (Zapier)api_key
+command
→ stdio (local servers like sequential-thinking)args
ending inurl
→ SSE transport/sse
ending inurl
→ Streamable HTTP/mcp
Error Handling
Errors return JSON:
{"error": "message", "type": "configuration|validation|connection"}
- Config file not found. Createconfiguration.mcp.json
- Invalid server or tool namevalidation
- Failed to connect to serverconnection
Dependencies
pip install mcp fastmcp
References
- Template config filereferences/example-mcp-config.json
- Common server configurationsreferences/mcp-servers.md
- Python SDK documentationreferences/python-mcp-sdk.md