{"id":51555064,"url":"https://github.com/jiale-cheng-ning/mcp-hub","last_synced_at":"2026-07-29T04:00:25.292Z","repository":{"id":362247887,"uuid":"1253348207","full_name":"jiale-cheng-ning/mcp-hub","owner":"jiale-cheng-ning","description":"One TUI to manage all your MCP servers. Discover, monitor, and audit MCP server configurations across Claude Desktop, Cursor, VS Code, and more.","archived":false,"fork":false,"pushed_at":"2026-06-03T08:37:17.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-03T10:21:14.941Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jiale-cheng-ning.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-29T11:22:33.000Z","updated_at":"2026-06-03T08:37:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jiale-cheng-ning/mcp-hub","commit_stats":null,"previous_names":["jiale-cheng-ning/mcp-hub"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jiale-cheng-ning/mcp-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiale-cheng-ning%2Fmcp-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiale-cheng-ning%2Fmcp-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiale-cheng-ning%2Fmcp-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiale-cheng-ning%2Fmcp-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiale-cheng-ning","download_url":"https://codeload.github.com/jiale-cheng-ning/mcp-hub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiale-cheng-ning%2Fmcp-hub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36016154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-29T02:00:04.910Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-10T04:00:29.939Z","updated_at":"2026-07-29T04:00:25.281Z","avatar_url":"https://github.com/jiale-cheng-ning.png","language":"Rust","funding_links":[],"categories":["Utilities"],"sub_categories":["Development Tools"],"readme":"\u003cdiv align=\"center\"\u003e\n\n# mcp-hub\n\n**One TUI to manage all your MCP servers.**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Rust](https://img.shields.io/badge/Language-Rust-orange.svg)](https://www.rust-lang.org/)\n\nYou installed MCP servers in Claude Desktop, Cursor, VS Code, and Claude Code.\nThey're scattered across different config files.\nSome are broken. Some have security issues. You can't see them all at once.\n\n**mcp-hub fixes that.** One terminal dashboard. All your servers. 15 security rules. Zero dependencies.\n\n\u003cimg src=\"assets/mcp-hub-demo.svg\" alt=\"mcp-hub TUI demo\" width=\"720\"/\u003e\n\n\u003c/div\u003e\n\n---\n\n## What it does\n\n| Feature | Description |\n|---------|-------------|\n| **TUI Dashboard** | Interactive terminal UI — browse, inspect, and filter all MCP servers |\n| **Auto-Discovery** | Scans Claude Desktop, Claude Code, Cursor, Windsurf configs automatically |\n| **Security Audit** | **15 rules** — typosquatting, CVE detection, postinstall scripts, shell injection, secrets, and more |\n| **MCP Doctor** | Real MCP protocol health checks — spawns servers, validates handshake, counts tools |\n| **Benchmark** | Performance testing — spawn time, init latency, tools/list response time per server |\n| **Registry Search** | Search the official MCP Registry and install servers with one command |\n| **Export/Import** | Export configs to Git-friendly JSON, import to any client. Secrets auto-redacted. |\n| **Single Binary** | One Rust binary. No runtime. No dependencies. `cargo install` and go. |\n\n## Install\n\n### One-line install (recommended)\n\n```bash\n# Linux / macOS\ncurl -sSL https://raw.githubusercontent.com/jiale-cheng-ning/mcp-hub/main/install.sh | sh\n\n# Windows (PowerShell)\niwr -useb https://raw.githubusercontent.com/jiale-cheng-ning/mcp-hub/main/install.ps1 | iex\n```\n\n### Download from GitHub Releases\n\nPrebuilt binaries for Linux, macOS (Intel + Apple Silicon), and Windows:\n\n**[Download latest release](https://github.com/jiale-cheng-ning/mcp-hub/releases/latest)**\n\n### From source (requires Rust)\n\n```bash\ncargo install --git https://github.com/jiale-cheng-ning/mcp-hub\n```\n\n## Usage\n\n```bash\nmcp-hub              # Launch TUI dashboard\nmcp-hub scan         # List all servers in a table\nmcp-hub scan --json  # JSON output for scripting\nmcp-hub audit        # Run security audit\nmcp-hub audit --json # JSON output for CI pipelines\nmcp-hub doctor       # Check real MCP protocol connectivity\nmcp-hub doctor --json # JSON output for monitoring\nmcp-hub bench        # Benchmark server performance (3 rounds)\nmcp-hub bench --rounds 5 --server github  # Custom benchmark\nmcp-hub search postgres                  # Search the MCP Registry\nmcp-hub search postgres --install --target cursor  # Search and install\nmcp-hub export       # Export all configs to mcp-hub.json (secrets redacted)\nmcp-hub import mcp-hub.json --target cursor  # Import configs to a client\nmcp-hub preset list                  # Show available preset bundles\nmcp-hub preset install web-dev --target cursor  # Install a preset to a client\nmcp-hub sync --from claude-desktop --to cursor  # Sync configs between clients\n```\n\n### TUI keybindings\n\n**Servers tab:**\n\n| Key | Action |\n|-----|--------|\n| `j` / `↓` | Move down |\n| `k` / `↑` | Move up |\n| `Tab` | Switch to Audit tab |\n| `q` / `Esc` | Quit |\n\n**Audit tab:**\n\n| Key | Action |\n|-----|--------|\n| `j` / `↓` | Next finding |\n| `k` / `↑` | Previous finding |\n| `1` | Toggle Critical severity |\n| `2` | Toggle Warning severity |\n| `3` | Toggle Info severity |\n| `g` | Jump to first finding |\n| `G` | Jump to last finding |\n| `Tab` | Switch to Servers tab |\n| `q` / `Esc` | Quit |\n\n## Audit rules (15)\n\n### Critical\n\n| Rule | What it catches |\n|------|-----------------|\n| `TYPOSQUATTING` | Package name suspiciously similar to a known MCP server (e.g., `postgress` vs `postgres`) |\n| `POSTINSTALL_SCRIPT` | npm package may run postinstall/preinstall scripts during installation |\n| `KNOWN_CVE` | Package matches a known CVE (e.g., CVE-2025-6514 in mcp-remote) |\n| `DANGEROUS_COMMAND` | Server args contain `curl\\|bash`, `rm -rf`, `eval`, or other dangerous patterns |\n| `WORLD_READABLE_SECRET` | Config file containing secrets has overly permissive file permissions |\n\n### Warning\n\n| Rule | What it catches |\n|------|-----------------|\n| `ENV_PLAINTEXT_SECRET` | API keys / tokens stored as plaintext in config |\n| `PERM_ROOT` / `PERM_HOME` | Filesystem servers with unrestricted access |\n| `DEPRECATED_SERVER` | Using a deprecated MCP server or package |\n| `SHELL_INJECTION` | Args contain `$()`, backticks, `\u0026\u0026`, `|` — potential shell injection |\n\n### Info\n\n| Rule | What it catches |\n|------|-----------------|\n| `NO_VERSION_PIN` | npm packages without pinned versions |\n| `LATEST_VERSION` | Pinned version is 0.x — may be outdated or unstable |\n| `DUPLICATE_SERVER` | Same server configured in multiple clients |\n| `CONFIG_FILE_PERMS` | Config file permissions are not restricted to owner-only |\n| `LICENSE_RISK` | Package uses a copyleft license (AGPL/GPL) |\n\n### Example: `mcp-hub audit`\n\n```\n🔴 CRITICAL (1)\n  ├─ pg: Package '@modelcontextprotocol/server-postgress' looks like a typosquat of '@modelcontextprotocol/server-postgres'\n  │  Fix: Verify this is the intended package. Did you mean '@modelcontextprotocol/server-postgres'?\n\n🟡 WARNING (2)\n  ├─ filesystem: Server 'filesystem' has unrestricted access to root filesystem\n  │  Fix: Restrict directory scope with a specific path\n  ├─ github: Potential secret 'GITHUB_PERSONAL_ACCESS_TOKEN' stored in plaintext config\n  │  Fix: Use environment variable reference or secret manager\n\nℹ️  INFO (2)\n  ├─ filesystem: Unpinned package version: '@modelcontextprotocol/server-filesystem'\n  │  Fix: Pin to a specific version (e.g., @scope/pkg@1.2.0)\n  ├─ github: Server 'github' duplicates 'github-cursor' (same command in Claude Desktop and Cursor)\n  │  Fix: Consider using a shared configuration or removing the duplicate\n\nTotal findings: 5\n```\n\n## Preset bundles\n\n```bash\nmcp-hub preset list                           # See all presets\nmcp-hub preset install web-dev --target cursor # Install to Cursor\n```\n\n| Preset | Description | Servers |\n|--------|-------------|---------|\n| `minimal` | Starter pack | filesystem, github |\n| `web-dev` | Web development | filesystem, github, playwright, brave-search |\n| `backend` | Backend / API | filesystem, github, postgres |\n| `fullstack` | Everything | all of the above |\n\n## GitHub Action\n\nAudit MCP configs in CI — fail the build on security issues:\n\n```yaml\n# .github/workflows/mcp-audit.yml\nname: MCP Security Audit\non: [push, pull_request]\n\njobs:\n  audit:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: jiale-cheng-ning/mcp-hub@v0.1.0\n        with:\n          fail-on-critical: true\n```\n\n| Input | Default | Description |\n|-------|---------|-------------|\n| `fail-on-critical` | `true` | Fail if critical findings detected |\n| `fail-on-warning` | `false` | Fail if warnings detected |\n| `config-path` | auto | Custom config file path |\n| `version` | `latest` | mcp-hub version to use |\n\n## Supported clients\n\n| Client | Config location |\n|--------|----------------|\n| Claude Desktop | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| Claude Code | `~/.claude/settings.json` |\n| Cursor | `~/.cursor/mcp.json` |\n| Windsurf | `~/.codeium/windsurf/mcp_config.json` |\n\n## Roadmap\n\n- [x] Auto-discovery of MCP configs across 4 clients\n- [x] TUI dashboard with server list and detail panel\n- [x] Security audit with 15 rules (typosquatting, CVE, shell injection, secrets, ...)\n- [x] Health checks (process detection)\n- [x] Severity-based filtering in TUI\n- [x] JSON output for CI integration\n- [x] Export/import configurations (Git-friendly, secrets auto-redacted)\n- [x] Real MCP protocol health checks (`mcp-hub doctor`)\n- [x] MCP Registry search and one-click install (`mcp-hub search`)\n- [x] Server performance benchmarks (`mcp-hub bench`)\n- [x] Preset server bundles (`mcp-hub preset install web-dev`)\n- [x] Config sync between clients (`mcp-hub sync --from claude-desktop --to cursor`)\n- [ ] Real-time log viewer\n- [ ] Resource monitoring (CPU/memory)\n\n## Contributing\n\nContributions welcome. Open an issue first to discuss what you'd like to change.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiale-cheng-ning%2Fmcp-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiale-cheng-ning%2Fmcp-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiale-cheng-ning%2Fmcp-hub/lists"}