Skill: maplezzk/mcps-skill (version 0.1.1)

--- name: mcps description: MCP CLI Manager - Manage MCP servers and call tools homepage: https://github.com/maplezzk/mcps metadata: {"clawdbot":{"emoji":"🔌","requires":{"bins":["mcps"]},"install":[{"id":"npm","kind":"node","package":"@maplezzk/mcps","bins":["mcps"],"label":"Install mcps"}]}} --- # mcps - MCP CLI Manager A powerful command-line tool for managing and calling MCP (Model Context Protocol) servers. ## Installation ```bash npm install -g @maplezzk/mcps ``` ## Configuration Examples ### Adding Various MCP Servers ```bash # Add fetch server (web scraping) mcps add fetch --command uvx --args mcp-server-fetch # Add PostgreSQL server mcps add postgres --command npx --args @modelcontextprotocol/server-postgres --env POSTGRES_CONNECTION_STRING="${DATABASE_URL}" # Add GitLab server mcps add gitlab --command npx --args gitlab-mcp-server # Add SSE server mcps add remote --type sse --url http://localhost:8000/sse # Add HTTP server mcps add http-server --type http --url http://localhost:8000/mcp ``` ### Config File Example (~/.mcps/mcp.json) ```json { "servers": [ { "name": "fetch", "type": "stdio", "command": "uvx", "args": ["mcp-server-fetch"] }, { "name": "postgres", "type": "stdio", "command": "npx", "args": ["@modelcontextprotocol/server-postgres"], "env": { "POSTGRES_CONNECTION_STRING": "${DATABASE_URL}" } }, { "name": "gitlab", "type": "stdio", "command": "npx", "args": ["gitlab-mcp-server"], "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "${GITLAB_TOKEN}", "GITLAB_API_URL": "https://gitlab.com/api/v4" } } ] } ``` **Note**: Use environment variables for sensitive data (`${VAR_NAME}` format). ## Quick Start ```bash # 1. Add an MCP server mcps add fetch --command uvx --args mcp-server-fetch # 2. Start the daemon mcps start # 3. Check status mcps status # 4. List available tools mcps tools fetch # 5. Call a tool mcps call fetch fetch url="https://example.com" ``` ## Command Reference ### Server Management | Command | Description | |---------|-------------| | `mcps ls` | List all configured servers | | `mcps add <name> --command <cmd> --args <args>` | Add a new server | | `mcps rm <name>` | Remove a server | | `mcps update [name]` | Update server configuration | | `mcps update <name> --disabled true` | Disable a server | ### Daemon Control | Command | Description | |---------|-------------| | `mcps start [--verbose]` | Start daemon (verbose mode for debugging) | | `mcps stop` | Stop daemon | | `mcps restart [server]` | Restart daemon or specific server | | `mcps status` | Check daemon status | ### Tool Invocation | Command | Description | |---------|-------------| | `mcps tools <server> [--simple]` | List available tools | | `mcps call <server> <tool> [args...]` | Call a tool | ## Tool Invocation: Parameter Passing ### Default Mode (Auto JSON Parsing) ```bash # String values are sent as-is mcps call fetch fetch url="https://example.com" # Numbers and booleans are auto-parsed mcps call fetch fetch max_length=5000 follow_redirects=true # Sends: { "max_length": 5000, "follow_redirects": true } # JSON objects (use single quotes outside) mcps call my-server createUser user='{"name": "Alice", "age": 30}' ``` ### --raw Mode (Keep Values as Strings) ```bash # Use --raw for SQL IDs, codes, or strings that should not be parsed mcps call my-db createOrder --raw order_id="12345" sku="ABC-001" # Sends: { "order_id": "12345", "sku": "ABC-001" } # SQL with special characters mcps call alibaba-dms createDataChangeOrder --raw \ database_id="123" \ script="DELETE FROM table WHERE id = 'xxx';" \ logic="true" ``` ### --json Mode (Complex Parameters) ```bash # From JSON string mcps call my-server createUser --json '{"name": "Alice", "age": 30}' # From file mcps call my-server createUser --json params.json ``` ## Real-World Usage Examples ### Scenario 1: Web Scraping and Search ```bash # Fetch webpage content mcps call fetch fetch url="https://example.com" max_length=5000 # Deep fetch (follow links) mcps call fetch fetch url="https://example.com" follow_redirects=true max_depth=2 # Filtered fetch mcps call fetch fetch url="https://news.example.com" include_tags='["article", "p"]' exclude_tags='["script", "style"]' ``` ### Scenario 2: Database Query ```bash # Query data (auto-parsed parameters) mcps call postgres query sql="SELECT * FROM users WHERE active = true LIMIT 10" # Keep parameters as strings (use --raw) mcps call postgres query --raw sql="SELECT * FROM orders WHERE id = '12345'" ``` ### Scenario 3: Complex Parameter Passing ```bash # JSON object parameters mcps call my-server createUser user='{"name": "Alice", "age": 30, "tags": ["admin", "user"]}' # Load JSON from file mcps call my-server createUser --json user.json # Mixed parameters (some auto-parsed, some raw) mcps call my-server update --raw id="123" data='{"name": "Updated"}' ``` ### Scenario 4: Server Management ```bash # View all server configurations mcps ls # Check active connections mcps status # Restart a single server mcps restart postgres # Restart all servers mcps restart # Disable a server (without removing config) mcps update my-server --disabled true # Remove a server mcps rm my-server ``` ### Scenario 5: Tool Filtering and Search ```bash # Show only tool names (simple mode) mcps tools postgres --simple # Filter tools by keyword mcps tools postgres --tool query --tool describe # Find tools containing "create" mcps tools postgres --tool create ``` ## Configuration - **Config file**: `~/.mcps/mcp.json` - **Environment variables**: - `MCPS_CONFIG_DIR`: Config directory - `MCPS_PORT`: Daemon port (default: 4100) - `MCPS_VERBOSE`: Verbose logging mode ## FAQ **Q: How to check server status?** ```bash mcps status # Check active connections mcps ls # Check all configurations (including disabled) ``` **Q: Server connection failed?** ```bash mcps start --verbose # View detailed logs mcps restart my-server # Restart specific server ``` **Q: How to quickly find tools?** ```bash mcps tools my-server --tool keyword # Filter by keyword mcps tools my-server --simple # Show names only ``` **Q: Special characters in parameters (e.g., SQL)?** ```bash # Use --raw to keep string format mcps call alibaba-dms createDataChangeOrder --raw \ database_id="123" \ script="DELETE FROM table WHERE id = 'xxx';" \ logic="true" ``` **Q: Daemon starts slowly?** - First start loads all servers, 10-15 seconds is normal - Subsequent starts are faster (~2 seconds) - Use `mcps ls` to check config without starting daemon


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)