agent-discover 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +56 -36
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -3,15 +3,22 @@
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
4
4
  [![Node.js](https://img.shields.io/badge/node-%3E%3D20.11-brightgreen)](https://nodejs.org/)
5
5
  [![MCP Tools](https://img.shields.io/badge/MCP%20tools-2-purple)]()
6
- [![REST Endpoints](https://img.shields.io/badge/REST-16%20endpoints-orange)]()
6
+ [![REST Endpoints](https://img.shields.io/badge/REST-18%20endpoints-orange)]()
7
7
 
8
8
  **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.
9
9
 
10
+ Built for AI coding agents (Claude Code, Codex CLI, Gemini CLI, Aider) but works equally well with any MCP client, REST consumer, or WebSocket listener.
11
+
10
12
  ---
11
13
 
12
- | Light Theme | Dark Theme |
13
- | ---------------------------------------------- | -------------------------------------------- |
14
- | ![Light mode](docs/screenshots/light-mode.png) | ![Dark mode](docs/screenshots/dark-mode.png) |
14
+ ## Screenshots
15
+
16
+ <p align="center">
17
+ <img src="docs/screenshots/dark.png" alt="Dashboard (Dark)" width="800" />
18
+ </p>
19
+ <p align="center">
20
+ <img src="docs/screenshots/light.png" alt="Dashboard (Light)" width="800" />
21
+ </p>
15
22
 
16
23
  ---
17
24
 
@@ -28,19 +35,24 @@ Static MCP configs mean every server is always running, even when unused. Adding
28
35
  | **Monitoring** | No visibility into server health | Health checks, per-tool metrics, error counts |
29
36
  | **Management** | Manual config edits | Dashboard + REST API for config, tags |
30
37
 
31
- **agent-discover** solves this:
38
+ ---
32
39
 
33
- - **Register** MCP servers in a local SQLite database
34
- - **Browse** the official MCP registry (`registry.modelcontextprotocol.io`) and install with one tool call
35
- - **Activate/deactivate** servers on demand -- their tools appear and disappear dynamically
36
- - **Proxy** tool calls transparently -- activated server tools are namespaced as `serverName__toolName`
37
- - **Manage secrets** -- store API keys and tokens per server, automatically injected as env vars on activation
38
- - **Monitor health** -- run health checks, track health status and error counts
39
- - **Track metrics** -- per-tool call counts, error counts, and average latency recorded automatically
40
- - **Edit config** -- update server description, command, args, env, and tags via REST or dashboard
41
- - A **web dashboard** shows everything in real time at http://localhost:3424
40
+ ## Features
41
+
42
+ - **Local registry** -- register MCP servers in a SQLite database with name, command, args, env, tags
43
+ - **Marketplace browser** -- search the official MCP registry (`registry.modelcontextprotocol.io`) and install with one tool call
44
+ - **On-demand activation** -- activate/deactivate servers at runtime; their tools appear and disappear dynamically
45
+ - **Tool proxying** -- activated server tools are namespaced as `serverName__toolName` and merged into the tool list
46
+ - **Multi-transport** -- supports stdio, SSE, and streamable-http transports for connecting to child servers
47
+ - **Secret management** -- store API keys and tokens per server, automatically injected as env vars (stdio) or HTTP headers (SSE/streamable-http) on activation
48
+ - **Health checks** -- connect/disconnect probes for inactive servers, tool-list checks for active ones, with error count tracking
49
+ - **Per-tool metrics** -- call counts, error counts, and average latency recorded automatically on every proxied tool call
50
+ - **Full-text search** -- FTS5 search across server names, descriptions, and tags
51
+ - **NPM pre-download** -- fire-and-forget `npm cache add` on registration for npx-based servers, plus a dedicated preinstall endpoint
52
+ - **Real-time dashboard** -- web UI at http://localhost:3424 with Servers and Browse tabs, dark/light theme, WebSocket updates
53
+ - **3 transport layers** -- MCP (stdio), REST API (HTTP), WebSocket (real-time events)
42
54
 
43
- It works with any agent that supports [MCP](https://modelcontextprotocol.io/) (stdio transport) or can make HTTP requests (REST API).
55
+ ---
44
56
 
45
57
  ## Quick Start
46
58
 
@@ -67,7 +79,7 @@ npm run build
67
79
 
68
80
  ### Option 1: MCP server (for AI agents)
69
81
 
70
- Add to your MCP client config (Claude Code, Cline, etc.):
82
+ Add to your MCP client config (Claude Code, Cline, Cursor, Windsurf, etc.):
71
83
 
72
84
  ```json
73
85
  {
@@ -103,28 +115,30 @@ Activated servers expose their tools through agent-discover, namespaced as `serv
103
115
 
104
116
  ---
105
117
 
106
- ## REST API (16 endpoints)
118
+ ## REST API (18 endpoints)
107
119
 
108
120
  All endpoints return JSON. CORS enabled.
109
121
 
110
- | Method | Path | Description |
111
- | ------ | ------------------------------- | ----------------------------------------------------------------- |
112
- | GET | `/health` | Version, uptime |
113
- | GET | `/api/servers` | List servers (`?query=`, `?source=`, `?installed=`) |
114
- | GET | `/api/servers/:id` | Server details + tools |
115
- | POST | `/api/servers` | Register new server |
116
- | PUT | `/api/servers/:id` | Update server config (description, command, args, env, tags) |
117
- | DELETE | `/api/servers/:id` | Unregister (deactivates first if active) |
118
- | POST | `/api/servers/:id/activate` | Activate -- start server, discover tools, begin proxying |
119
- | POST | `/api/servers/:id/deactivate` | Deactivate -- stop server, remove tools |
120
- | GET | `/api/servers/:id/secrets` | List secrets (masked values) |
121
- | PUT | `/api/servers/:id/secrets/:key` | Set a secret (upsert) |
122
- | DELETE | `/api/servers/:id/secrets/:key` | Delete a secret |
123
- | POST | `/api/servers/:id/health` | Run health check (connect/disconnect probe) |
124
- | GET | `/api/servers/:id/metrics` | Per-tool metrics for a server (call count, errors, latency) |
125
- | GET | `/api/metrics` | Metrics overview across all servers |
126
- | GET | `/api/browse` | Proxy to official MCP registry (`?query=`, `?limit=`, `?cursor=`) |
127
- | GET | `/api/status` | Active servers summary (names, tool counts, tool lists) |
122
+ ```
123
+ GET /health Version, uptime
124
+ GET /api/servers List servers (?query=, ?source=, ?installed=)
125
+ GET /api/servers/:id Server details + tools
126
+ POST /api/servers Register new server
127
+ PUT /api/servers/:id Update server config (description, command, args, env, tags)
128
+ DELETE /api/servers/:id Unregister (deactivates first if active)
129
+ POST /api/servers/:id/activate Activate -- start server, discover tools, begin proxying
130
+ POST /api/servers/:id/deactivate Deactivate -- stop server, remove tools
131
+ POST /api/servers/:id/preinstall Pre-download npx package to npm cache
132
+ GET /api/servers/:id/secrets List secrets (masked values)
133
+ PUT /api/servers/:id/secrets/:key Set a secret (upsert)
134
+ DELETE /api/servers/:id/secrets/:key Delete a secret
135
+ POST /api/servers/:id/health Run health check (connect/disconnect probe)
136
+ GET /api/servers/:id/metrics Per-tool metrics for a server (call count, errors, latency)
137
+ GET /api/metrics Metrics overview across all servers
138
+ GET /api/browse Proxy to official MCP registry (?query=, ?limit=, ?cursor=)
139
+ GET /api/npm-check Check if an npm package exists (?package=)
140
+ GET /api/status Active servers summary (names, tool counts, tool lists)
141
+ ```
128
142
 
129
143
  ---
130
144
 
@@ -144,7 +158,9 @@ Real-time updates via WebSocket with 2-second database polling. Dark and light t
144
158
 
145
159
  ```bash
146
160
  npm test # Run tests
147
- npm run check # Full check (typecheck + lint + format + test)
161
+ npm run test:watch # Watch mode
162
+ npm run test:coverage # Coverage report
163
+ npm run check # Full CI: typecheck + lint + format + test
148
164
  ```
149
165
 
150
166
  ---
@@ -161,6 +177,10 @@ npm run check # Full check (typecheck + lint + format + test)
161
177
  ## Documentation
162
178
 
163
179
  - [User Manual](docs/USER-MANUAL.md) -- comprehensive guide covering all tools, REST API, dashboard, and troubleshooting
180
+ - [API Reference](docs/API.md) -- all MCP tools and REST endpoints
181
+ - [Architecture](docs/ARCHITECTURE.md) -- source structure, design principles, database schema
182
+ - [Dashboard](docs/DASHBOARD.md) -- web UI views and features
183
+ - [Setup Guide](docs/SETUP.md) -- installation, client setup (Claude Code, Cursor, Windsurf)
164
184
  - [Changelog](CHANGELOG.md)
165
185
 
166
186
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-discover",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "mcpName": "io.github.keshrath/agent-discover",
5
5
  "description": "MCP server registry and marketplace — discover, install, activate, and manage MCP tools on demand",
6
6
  "type": "module",