[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75020":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},75020,"mcp-cli","philschmid\u002Fmcp-cli","philschmid","Lighweight CLI to interact with MCP servers","",null,"TypeScript",1183,141,4,13,0,15,17,48,45,87.76,"MIT License",false,"main",[],"2026-06-12 04:01:16","# mcp-cli\n\nA lightweight, Bun-based CLI for interacting with [MCP (Model Context Protocol)](https:\u002F\u002Fmodelcontextprotocol.io\u002F) servers.\n\n## Features\n\n- 🪶 **Lightweight** - Minimal dependencies, fast startup\n- 📦 **Single Binary** - Compile to standalone executable via `bun build --compile`\n- 🔧 **Shell-Friendly** - JSON output for call, pipes with `jq`, chaining support\n- 🤖 **Agent-Optimized** - Designed for AI coding agents (Gemini CLI, Claude Code, etc.)\n- 🔌 **Universal** - Supports both stdio and HTTP MCP servers\n- ⚡ **Connection Pooling** - Lazy-spawn daemon keeps connections warm (60s idle timeout)\n- � **Tool Filtering** - Allow\u002Fdisable specific tools per server via config\n- 📋 **Server Instructions** - Display MCP server instructions in output\n- �💡 **Actionable Errors** - Structured error messages with available servers and recovery suggestions\n\n![mcp-cli](.\u002Fcomparison.jpeg)\n\n## Quick Start\n\n### 1. Installation\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fphilschmid\u002Fmcp-cli\u002Fmain\u002Finstall.sh | bash\n```\n\nor \n\n```bash\n# requires bun install\nbun install -g https:\u002F\u002Fgithub.com\u002Fphilschmid\u002Fmcp-cli\n```\n\n### 2. Create a config file\n\nCreate `mcp_servers.json` in your current directory or `~\u002F.config\u002Fmcp\u002F`:\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol\u002Fserver-filesystem\",\n        \".\"\n      ]\n    },\n    \"deepwiki\": {\n      \"url\": \"https:\u002F\u002Fmcp.deepwiki.com\u002Fmcp\"\n    }\n  }\n}\n```\n\n### 3. Discover available tools\n\n```bash\n# List all servers and tools\nmcp-cli\n\n# With descriptions\nmcp-cli -d\n```\n\n### 4. Call a tool\n\n```bash\n# View tool schema first\nmcp-cli info filesystem read_file\n\n# Call the tool\nmcp-cli call filesystem read_file '{\"path\": \".\u002FREADME.md\"}'\n```\n\n## Usage\n\n```\nmcp-cli [options]                             List all servers and tools\nmcp-cli [options] info \u003Cserver>               Show server tools and parameters\nmcp-cli [options] info \u003Cserver> \u003Ctool>        Show tool schema\nmcp-cli [options] grep \u003Cpattern>              Search tools by glob pattern\nmcp-cli [options] call \u003Cserver> \u003Ctool>        Call tool (reads JSON from stdin if no args)\nmcp-cli [options] call \u003Cserver> \u003Ctool> \u003Cjson> Call tool with JSON arguments\n```\n\n**Both formats work:** `info \u003Cserver> \u003Ctool>` or `info \u003Cserver>\u002F\u003Ctool>`\n\n> [!TIP]\n> Add `-d` to any command to include descriptions.\n\n### Options\n\n| Option | Description |\n|--------|-------------|\n| `-h, --help` | Show help message |\n| `-v, --version` | Show version number |\n| `-d, --with-descriptions` | Include tool descriptions |\n| `-c, --config \u003Cpath>` | Path to config file |\n\n### Output\n\n| Stream | Content |\n|--------|---------|\n| **stdout** | Tool results and human-readable info |\n| **stderr** | Errors and diagnostics |\n\n### Commands\n\n#### List Servers\n\n```bash\n# Basic listing\n$ mcp-cli\ngithub\n  • search_repositories\n  • get_file_contents\n  • create_or_update_file\nfilesystem\n  • read_file\n  • write_file\n  • list_directory\n\n# With descriptions\n$ mcp-cli --with-descriptions\ngithub\n  • search_repositories - Search for GitHub repositories\n  • get_file_contents - Get contents of a file or directory\nfilesystem\n  • read_file - Read the contents of a file\n  • write_file - Write content to a file\n```\n\n#### Search Tools\n\n```bash\n# Find file-related tools across all servers\n$ mcp-cli grep \"*file*\"\ngithub\u002Fget_file_contents\ngithub\u002Fcreate_or_update_file\nfilesystem\u002Fread_file\nfilesystem\u002Fwrite_file\n\n# Search with descriptions\n$ mcp-cli grep \"*search*\" -d\ngithub\u002Fsearch_repositories - Search for GitHub repositories\n```\n\n#### View Server Details\n\n```bash\n$ mcp-cli info github\nServer: github\nTransport: stdio\nCommand: npx -y @modelcontextprotocol\u002Fserver-github\n\nTools (12):\n  search_repositories\n    Search for GitHub repositories\n    Parameters:\n      • query (string, required) - Search query\n      • page (number, optional) - Page number\n  ...\n```\n\n#### View Tool Schema\n\n```bash\n# Both formats work:\n$ mcp-cli info github search_repositories\n$ mcp-cli info github\u002Fsearch_repositories\n\nTool: search_repositories\nServer: github\n\nDescription:\n  Search for GitHub repositories\n\nInput Schema:\n  {\n    \"type\": \"object\",\n    \"properties\": {\n      \"query\": { \"type\": \"string\", \"description\": \"Search query\" },\n      \"page\": { \"type\": \"number\" }\n    },\n    \"required\": [\"query\"]\n  }\n```\n\n#### Call a Tool\n\n```bash\n# With inline JSON\n$ mcp-cli call github search_repositories '{\"query\": \"mcp server\", \"per_page\": 5}'\n\n# JSON output is default for call command\n$ mcp-cli call github search_repositories '{\"query\": \"mcp\"}' | jq '.content[0].text'\n\n# Read JSON from stdin (no '-' needed!)\n$ echo '{\"path\": \".\u002FREADME.md\"}' | mcp-cli call filesystem read_file\n\n```\n\n#### Complex Commands\n\nFor JSON arguments containing single quotes, special characters, or long text, use **stdin** to avoid shell escaping issues:\n\n```bash\n# Using a heredoc (no '-' needed with call subcommand)\nmcp-cli call server tool \u003C\u003CEOF\n{\"content\": \"Text with 'single quotes' and \\\"double quotes\\\"\"}\nEOF\n\n# From a file\ncat args.json | mcp-cli call server tool\n\n# Using jq to build complex JSON\njq -n '{query: \"mcp\", filters: [\"active\", \"starred\"]}' | mcp-cli call github search\n```\n\n**Why stdin?** Shell interpretation of `{}`, quotes, and special characters requires careful escaping. Stdin bypasses shell parsing entirely.\n\n#### Advanced Chaining Examples\n\nChain multiple MCP calls together using pipes and shell tools:\n\n```bash\n# 1. Search and read: Find files matching pattern, then read the first one\nmcp-cli call filesystem search_files '{\"path\": \"src\u002F\", \"pattern\": \"*.ts\"}' \\\n  | jq -r '.content[0].text | split(\"\\n\")[0]' \\\n  | xargs -I {} mcp-cli call filesystem read_file '{\"path\": \"{}\"}'\n\n# 2. Process multiple results: Read all matching files\nmcp-cli call filesystem search_files '{\"path\": \".\", \"pattern\": \"*.md\"}' \\\n  | jq -r '.content[0].text | split(\"\\n\")[]' \\\n  | while read file; do\n      echo \"=== $file ===\"\n      mcp-cli call filesystem read_file \"{\\\"path\\\": \\\"$file\\\"}\" | jq -r '.content[0].text'\n    done\n\n# 3. Extract and transform: Get repo info, extract URLs\nmcp-cli call github search_repositories '{\"query\": \"mcp server\", \"per_page\": 5}' \\\n  | jq -r '.content[0].text | fromjson | .items[].html_url'\n\n# 4. Conditional execution: Check file exists before reading\nmcp-cli call filesystem list_directory '{\"path\": \".\"}' \\\n  | jq -e '.content[0].text | contains(\"README.md\")' \\\n  && mcp-cli call filesystem read_file '{\"path\": \".\u002FREADME.md\"}'\n\n# 5. Save output to file\nmcp-cli call github get_file_contents '{\"owner\": \"user\", \"repo\": \"project\", \"path\": \"src\u002Fmain.ts\"}' \\\n  | jq -r '.content[0].text' > main.ts\n\n# 6. Error handling in scripts\nif result=$(mcp-cli call filesystem read_file '{\"path\": \".\u002Fconfig.json\"}' 2>\u002Fdev\u002Fnull); then\n  echo \"$result\" | jq '.content[0].text | fromjson'\nelse\n  echo \"File not found, using defaults\"\nfi\n\n# 7. Aggregate results from multiple servers\n{\n  mcp-cli call github search_repositories '{\"query\": \"mcp\", \"per_page\": 3}'\n  mcp-cli call filesystem list_directory '{\"path\": \".\u002Fsrc\"}'\n} | jq -s '.'\n```\n\n**Tips for chaining:**\n- Use `jq -r` for raw output (no quotes)\n- Use `jq -e` for conditional checks (exit code 1 if false)\n- Use `2>\u002Fdev\u002Fnull` to suppress errors when testing\n- Use `| jq -s '.'` to combine multiple JSON outputs\n\n\n## Configuration\n\n### Config File Format\n\nThe CLI uses `mcp_servers.json`, compatible with Claude Desktop, Gemini or VS Code:\n\n```json\n{\n  \"mcpServers\": {\n    \"local-server\": {\n      \"command\": \"node\",\n      \"args\": [\".\u002Fserver.js\"],\n      \"env\": {\n        \"API_KEY\": \"${API_KEY}\"\n      },\n      \"cwd\": \"\u002Fpath\u002Fto\u002Fdirectory\"\n    },\n    \"remote-server\": {\n      \"url\": \"https:\u002F\u002Fmcp.example.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${TOKEN}\"\n      }\n    }\n  }\n}\n```\n\n**Environment Variable Substitution:** Use `${VAR_NAME}` syntax anywhere in the config. Values are substituted at load time. By default, missing environment variables cause an error with a clear message. Set `MCP_STRICT_ENV=false` to use empty values instead (with a warning).\n\n### Tool Filtering\n\nRestrict which tools are available from a server using `allowedTools` and `disabledTools`:\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\u002Fserver-filesystem\", \".\"],\n      \"allowedTools\": [\"read_file\", \"list_directory\"],\n      \"disabledTools\": [\"delete_file\"]\n    }\n  }\n}\n```\n\n**Rules:**\n- `allowedTools`: Only tools matching these patterns are available (supports glob: `*`, `?`)\n- `disabledTools`: Tools matching these patterns are excluded\n- **`disabledTools` takes precedence** over `allowedTools`\n- Filtering applies globally to all CLI operations (info, grep, call)\n\n**Examples:**\n```json\n\u002F\u002F Only allow read operations\n\"allowedTools\": [\"read_*\", \"list_*\", \"search_*\"]\n\n\u002F\u002F Allow all except destructive operations\n\"disabledTools\": [\"delete_*\", \"write_*\", \"create_*\"]\n\n\u002F\u002F Combine: allow file operations but disable delete\n\"allowedTools\": [\"*file*\"],\n\"disabledTools\": [\"delete_file\"]\n```\n\n### Config Resolution\n\nThe CLI searches for configuration in this order:\n\n1. `MCP_CONFIG_PATH` environment variable\n2. `-c\u002F--config` command line argument\n3. `.\u002Fmcp_servers.json` (current directory)\n4. `~\u002F.mcp_servers.json`\n5. `~\u002F.config\u002Fmcp\u002Fmcp_servers.json`\n\n### Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `MCP_CONFIG_PATH` | Path to config file | (none) |\n| `MCP_DEBUG` | Enable debug output | `false` |\n| `MCP_TIMEOUT` | Request timeout (seconds) | `1800` (30 min) |\n| `MCP_CONCURRENCY` | Servers processed in parallel (not a limit on total) | `5` |\n| `MCP_MAX_RETRIES` | Retry attempts for transient errors (0 = disable) | `3` |\n| `MCP_RETRY_DELAY` | Base retry delay (milliseconds) | `1000` |\n| `MCP_STRICT_ENV` | Error on missing `${VAR}` in config | `true` |\n| `MCP_NO_DAEMON` | Disable connection caching (force fresh connections) | `false` |\n| `MCP_DAEMON_TIMEOUT` | Idle timeout for cached connections (seconds) | `60` |\n\n## Using with AI Agents\n\n`mcp-cli` is designed to give AI coding agents access to MCP (Model Context Protocol) servers. MCP enables AI models to interact with external tools, APIs, and data sources through a standardized protocol.\n\n### Why MCP + CLI?\n\nTraditional MCP integration loads full tool schemas into the AI's context window, consuming thousands of tokens. The CLI approach:\n\n- **On-demand loading**: Only fetch schemas when needed\n- **Token efficient**: Minimal context overhead\n- **Shell composable**: Chain with `jq`, pipes, and scripts\n- **Scriptable**: AI can write shell scripts for complex workflows\n\n### Option 1: System Prompt Integration\n\nAdd this to your AI agent's system prompt for direct CLI access:\n\n````xml\n## MCP Servers\n\nYou have access to MCP servers via the `mcp-cli` CLI.\n\nCommands:\n\n```bash\nmcp-cli info                        # List all servers\nmcp-cli info \u003Cserver>               # Show server tools  \nmcp-cli info \u003Cserver> \u003Ctool>        # Get tool schema\nmcp-cli grep \"\u003Cpattern>\"            # Search tools\nmcp-cli call \u003Cserver> \u003Ctool>        # Call tool (stdin auto-detected)\nmcp-cli call \u003Cserver> \u003Ctool> '{}'   # Call with JSON args\n```\n\n**Both formats work:** `info \u003Cserver> \u003Ctool>` or `info \u003Cserver>\u002F\u003Ctool>`\n\nWorkflow:\n\n1. **Discover**: `mcp-cli info` to see available servers\n2. **Inspect**: `mcp-cli info \u003Cserver> \u003Ctool>` to get the schema\n3. **Execute**: `mcp-cli call \u003Cserver> \u003Ctool> '{}'` with arguments\n\n### Examples\n\n```bash\n# Call with inline JSON\nmcp-cli call github search_repositories '{\"query\": \"mcp server\"}'\n\n# Pipe from stdin (no '-' needed)\necho '{\"path\": \".\u002Ffile\"}' | mcp-cli call filesystem read_file\n\n# Heredoc for complex JSON\nmcp-cli call server tool \u003C\u003CEOF\n{\"content\": \"Text with 'quotes'\"}\nEOF\n```\n\n### Common Errors\n\n| Wrong | Error | Fix |\n|-------|-------|-----|\n| `mcp-cli server tool` | AMBIGUOUS | Use `call server tool` |\n| `mcp-cli run server tool` | UNKNOWN_SUBCOMMAND | Use `call` |\n| `mcp-cli list` | UNKNOWN_SUBCOMMAND | Use `info` |\n````\n\n### Option 2: Agents Skill\n\nFor Code Agents that support Agents Skills, like Gemini CLI, OpenCode or Claude Code. you can use the mcp-cli skill to interface with MCP servers. The Skill is available at [SKILL.md](.\u002FSKILL.md)\n\nCreate `mcp-cli\u002FSKILL.md` in your skills directory. \n\n## Architecture\n\n### Connection Pooling (Daemon)\n\nBy default, the CLI uses **lazy-spawn connection pooling** to avoid repeated MCP server startup latency:\n\n```\n┌────────────────────────────────────────────────────────────────────┐\n│                        First CLI Call                              │\n│   $ mcp-cli info server                                            │\n└────────────────────────────────────────────────────────────────────┘\n                               │\n                               ▼\n┌────────────────────────────────────────────────────────────────────┐\n│ Check: \u002Ftmp\u002Fmcp-cli-{uid}\u002Fserver.sock exists?                      │\n└────────────────────────────────────────────────────────────────────┘\n         │                                    │\n         │ NO                                 │ YES\n         ▼                                    ▼\n┌─────────────────────────┐      ┌───────────────────────────────────┐\n│ Fork background daemon  │      │ Connect to existing socket        │\n│ ├─ Connect to MCP server│      │ ├─ Send request via IPC           │\n│ ├─ Create Unix socket   │      │ ├─ Receive response               │\n│ └─ Start 60s idle timer │      │ └─ Daemon resets idle timer       │\n└─────────────────────────┘      └───────────────────────────────────┘\n         │                                    │\n         └────────────────┬───────────────────┘\n                          ▼\n┌────────────────────────────────────────────────────────────────────┐\n│ On idle timeout (60s): Daemon self-terminates, cleans up files    │\n└────────────────────────────────────────────────────────────────────┘\n```\n\n**Key features:**\n- **Automatic**: No manual start\u002Fstop needed\n- **Per-server**: Each MCP server gets its own daemon\n- **Stale detection**: Config changes trigger re-spawn\n- **Fast fallback**: 5s spawn timeout, then direct connection\n\n**Control via environment:**\n```bash\nMCP_NO_DAEMON=1 mcp-cli info      # Force fresh connection\nMCP_DAEMON_TIMEOUT=120 mcp-cli    # 2 minute idle timeout\nMCP_DEBUG=1 mcp-cli info          # See daemon debug output\n```\n\n### Connection Model (Direct)\n\nWhen daemon is disabled (`MCP_NO_DAEMON=1`), the CLI uses a **lazy, on-demand connection strategy**. Server connections are only established when needed and closed immediately after use.\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                         USER REQUEST                            │\n└─────────────────────────────────────────────────────────────────┘\n                                │\n              ┌─────────────────┼─────────────────┐\n              │                 │                 │\n              ▼                 ▼                 ▼\n    ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐\n    │   mcp-cli info  │ │ mcp-cli grep    │ │ mcp-cli call    │\n    │   (list all)    │ │   \"*pattern*\"   │ │  server tool {} │\n    └─────────────────┘ └─────────────────┘ └─────────────────┘\n              │                 │                 │\n              ▼                 ▼                 ▼\n    ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐\n    │  Connect to ALL │ │  Connect to ALL │ │  Connect to ONE │\n    │  servers (N)    │ │  servers (N)    │ │  server only    │\n    └─────────────────┘ └─────────────────┘ └─────────────────┘\n              │                 │                 │\n              ▼                 ▼                 ▼\n         List tools       Search tools       Execute tool\n              │                 │                 │\n              ▼                 ▼                 ▼\n    ┌─────────────────────────────────────────────────────────────┐\n    │                    CLOSE CONNECTIONS                        │\n    └─────────────────────────────────────────────────────────────┘\n```\n\n**When are servers connected?**\n\n| Command | Servers Connected |\n|---------|-------------------|\n| `mcp-cli info` | All N servers in parallel |\n| `mcp-cli grep \"*pattern*\"` | All N servers in parallel |\n| `mcp-cli info \u003Cserver>` | Only the specified server |\n| `mcp-cli info \u003Cserver> \u003Ctool>` | Only the specified server |\n| `mcp-cli call \u003Cserver> \u003Ctool> '{}'` | Only the specified server |\n\n\n### Error Handling & Retry\n\nThe CLI includes **automatic retry with exponential backoff** for transient failures.\n\n**Transient errors (auto-retried):**\n- Network: `ECONNREFUSED`, `ETIMEDOUT`, `ECONNRESET`\n- HTTP: `502`, `503`, `504`, `429`\n\n**Non-transient errors (fail immediately):**\n- Config: Invalid JSON, missing fields\n- Auth: `401`, `403`\n- Tool: Validation errors, not found\n\n\n## Development\n\n### Prerequisites\n\n- [Bun](https:\u002F\u002Fbun.sh\u002F) >= 1.0.0\n\n### Setup\n\n```bash\nbun install https:\u002F\u002Fgithub.com\u002Fphilschmid\u002Fmcp-cli\n```\n\n### Commands\n\n```bash\n# Run in development\nbun run dev\n\n# Type checking\nbun run typecheck\n\n# Linting\nbun run lint\nbun run lint:fix\n\n# Run all tests (unit + integration)\nbun test\n\n# Run only unit tests (fast)\nbun test tests\u002Fconfig.test.ts tests\u002Foutput.test.ts tests\u002Fclient.test.ts\n\n# Run integration tests (requires MCP server, ~35s)\nbun test tests\u002Fintegration\u002F\n\n# Build single executable\nbun run build\n\n# Build for all platforms\nbun run build:all\n```\n\n### Local Testing\n\nTest the CLI locally without compiling by using `bun link`:\n\n```bash\n# Link the package globally (run once)\nbun link\n\n# Now you can use 'mcp-cli' anywhere\nmcp-cli --help\nmcp-cli call filesystem read_file '{\"path\": \".\u002FREADME.md\"}'\n\n# Or run directly during development\nbun run dev --help\nbun run dev info filesystem\n```\n\nTo unlink when done:\n\n```bash\nbun unlink\n```\n\n### Releasing\n\nReleases are automated via GitHub Actions. Use the release script:\n\n```bash\n.\u002Fscripts\u002Frelease.sh 0.2.0\n```\n\n### Error Messages\n\nAll errors include actionable recovery suggestions, optimized for both humans and AI agents:\n\n```\nError [AMBIGUOUS_COMMAND]: Ambiguous command: did you mean to call a tool or view info?\n  Details: Received: mcp-cli filesystem read_file\n  Suggestion: Use 'mcp-cli call filesystem read_file' to execute, or 'mcp-cli info filesystem read_file' to view schema\n\nError [UNKNOWN_SUBCOMMAND]: Unknown subcommand: \"run\"\n  Details: Valid subcommands: info, grep, call\n  Suggestion: Did you mean 'mcp-cli call'?\n\nError [SERVER_NOT_FOUND]: Server \"github\" not found in config\n  Details: Available servers: filesystem, sqlite\n  Suggestion: Use one of: mcp-cli info filesystem, mcp-cli info sqlite\n\nError [TOOL_NOT_FOUND]: Tool \"search\" not found in server \"filesystem\"\n  Details: Available tools: read_file, write_file, list_directory (+5 more)\n  Suggestion: Run 'mcp-cli info filesystem' to see all available tools\n\nError [INVALID_JSON_ARGUMENTS]: Invalid JSON in tool arguments\n  Details: Parse error: Unexpected identifier \"test\"\n  Suggestion: Arguments must be valid JSON. Use single quotes: '{\"key\": \"value\"}'\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.","mcp-cli 是一个轻量级的命令行工具，用于与 MCP（Model Context Protocol）服务器进行交互。它基于 Bun 构建，具有最小依赖、快速启动的特点，并可编译为独立可执行文件。该工具支持 JSON 输出，便于与 `jq` 等管道工具配合使用，同时针对 AI 编码代理进行了优化，能够与 stdio 和 HTTP 两种类型的 MCP 服务器通信。通过连接池技术保持连接活跃，减少延迟。此外，mcp-cli 还提供了工具过滤和详细的错误提示功能，帮助用户更高效地管理和调用服务器上的工具。适用于需要频繁与 MCP 服务器交互的开发环境或自动化脚本中。",2,"2026-06-11 03:51:59","high_star"]