{"id":48156681,"url":"https://github.com/keshrath/agent-discover","last_synced_at":"2026-04-07T20:00:44.668Z","repository":{"id":348548956,"uuid":"1198446401","full_name":"keshrath/agent-discover","owner":"keshrath","description":"MCP server registry and marketplace — discover, install, activate, and manage MCP tools on demand","archived":false,"fork":false,"pushed_at":"2026-04-06T17:52:28.000Z","size":458,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-06T19:03:10.282Z","etag":null,"topics":["ai-agents","claude-code","marketplace","mcp","mcp-server","model-context-protocol","registry","sqlite","tool-discovery","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/keshrath.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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-04-01T12:39:04.000Z","updated_at":"2026-04-06T17:52:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"955208df-5acb-4fac-b253-5dc727b49456","html_url":"https://github.com/keshrath/agent-discover","commit_stats":null,"previous_names":["keshrath/agent-discover"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/keshrath/agent-discover","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keshrath%2Fagent-discover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keshrath%2Fagent-discover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keshrath%2Fagent-discover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keshrath%2Fagent-discover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keshrath","download_url":"https://codeload.github.com/keshrath/agent-discover/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keshrath%2Fagent-discover/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31526666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-agents","claude-code","marketplace","mcp","mcp-server","model-context-protocol","registry","sqlite","tool-discovery","typescript"],"created_at":"2026-04-04T17:18:29.471Z","updated_at":"2026-04-07T20:00:44.636Z","avatar_url":"https://github.com/keshrath.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# agent-discover\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D20.11-brightgreen)](https://nodejs.org/)\n[![MCP Tools](https://img.shields.io/badge/MCP%20tools-2-purple)]()\n[![REST Endpoints](https://img.shields.io/badge/REST-18%20endpoints-orange)]()\n\n**MCP server registry and marketplace.** Discover, install, activate, and manage MCP tools on demand. Acts as a dynamic proxy -- activated servers have their tools merged into the registry's own tool list, so agents can use them without restarting.\n\nBuilt for AI coding agents (Claude Code, Codex CLI, Gemini CLI, Aider) but works equally well with any MCP client, REST consumer, or WebSocket listener.\n\n---\n\n| Light Theme                                | Dark Theme                               |\n| ------------------------------------------ | ---------------------------------------- |\n| ![Light Theme](docs/screenshots/light.png) | ![Dark Theme](docs/screenshots/dark.png) |\n\n---\n\n## Why\n\nStatic MCP configs mean every server is always running, even when unused. Adding a new server requires editing config files and restarting. There is no way to browse what is available or install new tools at runtime.\n\n|                  | Without agent-discover            | With agent-discover                                        |\n| ---------------- | --------------------------------- | ---------------------------------------------------------- |\n| **Discovery**    | Must know server names in advance | Browse the official MCP registry, search by keyword        |\n| **Installation** | Edit config files, restart agent  | One tool call installs and registers                       |\n| **Activation**   | All servers always running        | Activate/deactivate on demand, tools appear/disappear live |\n| **Secrets**      | API keys in config files or env   | Per-server secret storage, auto-injected on activation     |\n| **Monitoring**   | No visibility into server health  | Health checks, per-tool metrics, error counts              |\n| **Management**   | Manual config edits               | Dashboard + REST API for config, tags                      |\n\n---\n\n## Features\n\n- **Local registry** -- register MCP servers in a SQLite database with name, command, args, env, tags\n- **Marketplace browser** -- search the official MCP registry (`registry.modelcontextprotocol.io`) and install with one tool call\n- **On-demand activation** -- activate/deactivate servers at runtime; their tools appear and disappear dynamically\n- **Tool proxying** -- activated server tools are namespaced as `serverName__toolName` and merged into the tool list\n- **Multi-transport** -- supports stdio, SSE, and streamable-http transports for connecting to child servers\n- **Secret management** -- store API keys and tokens per server, automatically injected as env vars (stdio) or HTTP headers (SSE/streamable-http) on activation\n- **Health checks** -- connect/disconnect probes for inactive servers, tool-list checks for active ones, with error count tracking\n- **Per-tool metrics** -- call counts, error counts, and average latency recorded automatically on every proxied tool call\n- **Full-text search** -- FTS5 search across server names, descriptions, and tags\n- **NPM pre-download** -- fire-and-forget `npm cache add` on registration for npx-based servers, plus a dedicated preinstall endpoint\n- **Real-time dashboard** -- web UI at http://localhost:3424 with Servers and Browse tabs, dark/light theme, WebSocket updates\n- **3 transport layers** -- MCP (stdio), REST API (HTTP), WebSocket (real-time events)\n\n---\n\n## Quick Start\n\n### Install from npm\n\n```bash\nnpm install -g agent-discover\n```\n\n### Or run directly with npx\n\n```bash\nnpx agent-discover\n```\n\n### Or clone from source\n\n```bash\ngit clone https://github.com/keshrath/agent-discover.git\ncd agent-discover\nnpm install\nnpm run build\n```\n\n### Option 1: MCP server (for AI agents)\n\nAdd to your MCP client config (Claude Code, Cline, Cursor, Windsurf, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"agent-discover\": {\n      \"command\": \"npx\",\n      \"args\": [\"agent-discover\"]\n    }\n  }\n}\n```\n\nThe dashboard auto-starts at http://localhost:3424 on the first MCP connection.\n\n### Option 2: Standalone server (for REST/WebSocket clients)\n\n```bash\nnode dist/server.js --port 3424\n```\n\n---\n\n## MCP Tools (2)\n\nBoth tools are action-based -- a single tool handles multiple operations via the `action` parameter.\n\n| Tool              | Actions                                            | Description                                                                                                        |\n| ----------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |\n| `registry`        | `list`, `install`, `uninstall`, `browse`, `status` | Registry management -- search local servers, install from registry, remove, browse marketplace, show active status |\n| `registry_server` | `activate`, `deactivate`                           | Server lifecycle -- start/stop MCP servers on demand, tools appear/disappear dynamically                           |\n\nActivated servers expose their tools through agent-discover, namespaced as `serverName__toolName`. For example, activating a server named `filesystem` that exposes `read_file` makes it available as `filesystem__read_file`.\n\n---\n\n## REST API (18 endpoints)\n\nAll endpoints return JSON. CORS enabled.\n\n```\nGET    /health                            Version, uptime\nGET    /api/servers                       List servers (?query=, ?source=, ?installed=)\nGET    /api/servers/:id                   Server details + tools\nPOST   /api/servers                       Register new server\nPUT    /api/servers/:id                   Update server config (description, command, args, env, tags)\nDELETE /api/servers/:id                   Unregister (deactivates first if active)\nPOST   /api/servers/:id/activate          Activate -- start server, discover tools, begin proxying\nPOST   /api/servers/:id/deactivate        Deactivate -- stop server, remove tools\nPOST   /api/servers/:id/preinstall        Pre-download npx package to npm cache\nGET    /api/servers/:id/secrets           List secrets (masked values)\nPUT    /api/servers/:id/secrets/:key      Set a secret (upsert)\nDELETE /api/servers/:id/secrets/:key      Delete a secret\nPOST   /api/servers/:id/health            Run health check (connect/disconnect probe)\nGET    /api/servers/:id/metrics           Per-tool metrics for a server (call count, errors, latency)\nGET    /api/metrics                       Metrics overview across all servers\nGET    /api/browse                        Proxy to official MCP registry (?query=, ?limit=, ?cursor=)\nGET    /api/npm-check                     Check if an npm package exists (?package=)\nGET    /api/status                        Active servers summary (names, tool counts, tool lists)\n```\n\n---\n\n## Dashboard\n\nThe web dashboard auto-starts at **http://localhost:3424** and provides two views:\n\n**Servers tab** -- all registered servers as cards showing health dots, error counts, active/inactive status, description, tags, tools list, and expandable Secrets/Metrics/Config sections. Action buttons for activate, deactivate, health check, and delete.\n\n**Browse tab** -- search the official MCP registry. Results show server name, version, description, packages, and an install button.\n\nReal-time updates via WebSocket with 2-second database polling. Dark and light themes with persistent preference.\n\n---\n\n## Testing\n\n```bash\nnpm test              # Run tests\nnpm run test:watch    # Watch mode\nnpm run test:coverage # Coverage report\nnpm run check         # Full CI: typecheck + lint + format + test\n```\n\n---\n\n## Environment Variables\n\n| Variable              | Default                       | Description          |\n| --------------------- | ----------------------------- | -------------------- |\n| `AGENT_DISCOVER_PORT` | `3424`                        | Dashboard HTTP port  |\n| `AGENT_DISCOVER_DB`   | `~/.claude/agent-discover.db` | SQLite database path |\n\n---\n\n## Documentation\n\n- [User Manual](docs/USER-MANUAL.md) -- comprehensive guide covering all tools, REST API, dashboard, and troubleshooting\n- [API Reference](docs/API.md) -- all MCP tools and REST endpoints\n- [Architecture](docs/ARCHITECTURE.md) -- source structure, design principles, database schema\n- [Dashboard](docs/DASHBOARD.md) -- web UI views and features\n- [Setup Guide](docs/SETUP.md) -- installation, client setup (Claude Code, Cursor, Windsurf)\n- [Changelog](CHANGELOG.md)\n\n---\n\n## License\n\nMIT -- see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeshrath%2Fagent-discover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeshrath%2Fagent-discover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeshrath%2Fagent-discover/lists"}