add-mcp 1.13.2 → 1.14.0

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.
package/README.md CHANGED
@@ -36,13 +36,13 @@ You can add env variables and arguments (stdio) and headers (remote) to the serv
36
36
 
37
37
  ## Find MCP Servers
38
38
 
39
- Find and install MCP servers from the integrations.sh MCP registry:
39
+ Find and install MCP servers from the [add-mcp registry](https://add-mcp.com/registry):
40
40
 
41
41
  ```bash
42
42
  npx add-mcp find vercel
43
43
  ```
44
44
 
45
- The first `find`/`search` run automatically saves the integrations.sh registry to `~/.config/add-mcp/config.json` (or `$XDG_CONFIG_HOME/add-mcp/config.json`). You can edit that file to replace the default registry, add the official Anthropic registry, or point at any registry-compatible server.
45
+ The first `find`/`search` run automatically saves the add-mcp registry to `~/.config/add-mcp/config.json` (or `$XDG_CONFIG_HOME/add-mcp/config.json`). You can edit that file to replace the default registry, add the official Anthropic registry, or point at any registry-compatible server.
46
46
 
47
47
  ## Supported Agents
48
48
 
@@ -284,14 +284,16 @@ If a selected remote server defines URL variables or header inputs:
284
284
 
285
285
  ### Configuring Registries for Find / Search
286
286
 
287
- The first time you run `find` or `search`, the CLI automatically saves the integrations.sh MCP registry to `~/.config/add-mcp/config.json` (respects `XDG_CONFIG_HOME`) and reuses that registry on every subsequent search.
287
+ The first time you run `find` or `search`, the CLI automatically saves the add-mcp registry to `~/.config/add-mcp/config.json` (respects `XDG_CONFIG_HOME`) and reuses that registry on every subsequent search.
288
288
 
289
289
  ### Built-in Registries
290
290
 
291
- | Registry | Base URL | Description |
292
- | -------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
293
- | **integrations.sh MCP registry** | `https://mcp.agent-tooling.dev/api/v1/servers` | MCP servers discovered by integrations.sh and exposed through an MCP registry-compatible API, using add-mcp's checked-in `registry.json` as the source of truth. |
294
- | **Official Anthropic registry** | `https://registry.modelcontextprotocol.io/v0.1/servers` | The community-driven MCP server registry maintained by Anthropic. Contains the broadest catalog of MCP servers. |
291
+ | Registry | Base URL | Description |
292
+ | ------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
293
+ | **add-mcp registry** | `https://add-mcp.com/registry/api/v1/servers` | MCP servers discovered by integrations.sh and exposed through an MCP registry-compatible API, using add-mcp's checked-in `registry.json` as the source of truth. |
294
+ | **Official Anthropic registry** | `https://registry.modelcontextprotocol.io/v0.1/servers` | The community-driven MCP server registry maintained by Anthropic. Contains the broadest catalog of MCP servers. |
295
+
296
+ > The add-mcp registry previously lived at `https://mcp.agent-tooling.dev/api/v1/servers`. That URL keeps working, and saved configs referencing it are migrated to the add-mcp.com address automatically on the next `find`/`search` run.
295
297
 
296
298
  ### Missing A Server in integrations.sh?
297
299
 
@@ -308,15 +310,15 @@ bun run registry:verify
308
310
 
309
311
  Registry selections are stored in `~/.config/add-mcp/config.json` under the `findRegistries` key. You can edit this file directly to replace, add, remove, or reorder registries.
310
312
 
311
- Default integrations.sh registry:
313
+ Default add-mcp registry:
312
314
 
313
315
  ```json
314
316
  {
315
317
  "version": 1,
316
318
  "findRegistries": [
317
319
  {
318
- "url": "https://mcp.agent-tooling.dev/api/v1/servers",
319
- "label": "integrations.sh MCP registry"
320
+ "url": "https://add-mcp.com/registry/api/v1/servers",
321
+ "label": "add-mcp registry"
320
322
  }
321
323
  ]
322
324
  }
@@ -336,15 +338,15 @@ Replace the default with the official Anthropic registry:
336
338
  }
337
339
  ```
338
340
 
339
- Search both integrations.sh and the official Anthropic registry:
341
+ Search both the add-mcp registry and the official Anthropic registry:
340
342
 
341
343
  ```json
342
344
  {
343
345
  "version": 1,
344
346
  "findRegistries": [
345
347
  {
346
- "url": "https://mcp.agent-tooling.dev/api/v1/servers",
347
- "label": "integrations.sh MCP registry"
348
+ "url": "https://add-mcp.com/registry/api/v1/servers",
349
+ "label": "add-mcp registry"
348
350
  },
349
351
  {
350
352
  "url": "https://registry.modelcontextprotocol.io/v0.1/servers",
@@ -354,7 +356,7 @@ Search both integrations.sh and the official Anthropic registry:
354
356
  }
355
357
  ```
356
358
 
357
- To reset to the default integrations.sh registry, remove the `findRegistries` key or delete the config file.
359
+ To reset to the default add-mcp registry, remove the `findRegistries` key or delete the config file.
358
360
 
359
361
  ### Adding a Custom Registry
360
362
 
@@ -7,6 +7,17 @@ var CONFIG_FILE = "config.json";
7
7
  var CURRENT_VERSION = 1;
8
8
  var LEGACY_AGENTS_DIR = ".agents";
9
9
  var LEGACY_LOCK_FILE = ".mcp-lock.json";
10
+ var DEFAULT_FIND_REGISTRY_URL = "https://add-mcp.com/registry/api/v1/servers";
11
+ var DEFAULT_FIND_REGISTRY_LABEL = "add-mcp registry";
12
+ var LEGACY_FIND_REGISTRY_URL = "https://mcp.agent-tooling.dev/api/v1/servers";
13
+ var LEGACY_FIND_REGISTRY_LABEL = "integrations.sh MCP registry";
14
+ function migrateFindRegistryEntry(entry) {
15
+ if (entry.url !== LEGACY_FIND_REGISTRY_URL) {
16
+ return entry;
17
+ }
18
+ const label = !entry.label || entry.label === LEGACY_FIND_REGISTRY_LABEL ? DEFAULT_FIND_REGISTRY_LABEL : entry.label;
19
+ return { url: DEFAULT_FIND_REGISTRY_URL, label };
20
+ }
10
21
  function getXdgConfigHome() {
11
22
  return process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
12
23
  }
@@ -69,7 +80,25 @@ async function saveSelectedAgents(agents2) {
69
80
  async function getFindRegistries() {
70
81
  const config = await readConfig();
71
82
  if (!config.findRegistries) return [];
72
- return config.findRegistries.map(normalizeFindRegistryEntry);
83
+ const normalized = config.findRegistries.map(normalizeFindRegistryEntry);
84
+ const migrated = [];
85
+ const seen = /* @__PURE__ */ new Set();
86
+ for (const entry of normalized.map(migrateFindRegistryEntry)) {
87
+ if (seen.has(entry.url)) continue;
88
+ seen.add(entry.url);
89
+ migrated.push(entry);
90
+ }
91
+ const changed = migrated.length !== normalized.length || migrated.some(
92
+ (entry, i) => entry.url !== normalized[i]?.url || entry.label !== normalized[i]?.label
93
+ );
94
+ if (changed) {
95
+ try {
96
+ config.findRegistries = migrated;
97
+ await writeConfig(config);
98
+ } catch {
99
+ }
100
+ }
101
+ return migrated;
73
102
  }
74
103
  function normalizeFindRegistryEntry(raw) {
75
104
  const legacy = raw;
@@ -1587,6 +1616,8 @@ function findMatchingServers(agentServersList, query) {
1587
1616
  }
1588
1617
 
1589
1618
  export {
1619
+ DEFAULT_FIND_REGISTRY_URL,
1620
+ DEFAULT_FIND_REGISTRY_LABEL,
1590
1621
  getConfigPath,
1591
1622
  getLastSelectedAgents,
1592
1623
  getFindRegistries,
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ DEFAULT_FIND_REGISTRY_LABEL,
4
+ DEFAULT_FIND_REGISTRY_URL,
3
5
  agents,
4
6
  buildAgentSelectionChoices,
5
7
  buildServerConfig,
@@ -24,7 +26,7 @@ import {
24
26
  selectAgentsInteractive,
25
27
  supportsProjectConfig,
26
28
  updateGitignoreWithPaths
27
- } from "./chunk-3ZFFEEQJ.js";
29
+ } from "./chunk-4EL5LX2K.js";
28
30
 
29
31
  // src/index.ts
30
32
  import { program } from "commander";
@@ -353,12 +355,11 @@ var OFFICIAL_REGISTRY_BASE_URL = "https://registry.modelcontextprotocol.io";
353
355
  function resolveOfficialRegistryServersUrl() {
354
356
  return `${OFFICIAL_REGISTRY_BASE_URL}/v0.1/servers`;
355
357
  }
356
- var VERIFIED_ESSENTIALS_DEFAULT_SERVERS_URL = "https://mcp.agent-tooling.dev/api/v1/servers";
357
358
  function getDefaultFindRegistries() {
358
359
  return [
359
360
  {
360
- url: VERIFIED_ESSENTIALS_DEFAULT_SERVERS_URL,
361
- label: "integrations.sh MCP registry"
361
+ url: DEFAULT_FIND_REGISTRY_URL,
362
+ label: DEFAULT_FIND_REGISTRY_LABEL
362
363
  },
363
364
  {
364
365
  url: resolveOfficialRegistryServersUrl(),
@@ -472,9 +473,22 @@ function transportLabel(entry) {
472
473
  if (entry.remotes && entry.remotes.length > 0) parts.push("remote");
473
474
  return parts.length > 0 ? parts.join(", ") : "unknown";
474
475
  }
476
+ function formatRemoteTarget(url) {
477
+ return url.replace(/^[a-z][a-z0-9+.-]*:\/\//i, "").replace(/\/$/, "");
478
+ }
479
+ function formatFindResultTarget(entry) {
480
+ const remote = pickRemote(entry);
481
+ if (remote) {
482
+ return formatRemoteTarget(remote.url);
483
+ }
484
+ if (entry.package) {
485
+ return formatPackageTarget(entry.package);
486
+ }
487
+ return entry.name;
488
+ }
475
489
  function formatFindResultRow(entry) {
476
490
  const display = entry.title ?? entry.name;
477
- return `${display} (${entry.name}) [${transportLabel(entry)}]`;
491
+ return `${display} (${formatFindResultTarget(entry)}) [${transportLabel(entry)}]`;
478
492
  }
479
493
  async function promptValue(field) {
480
494
  return p.text({
@@ -784,7 +798,7 @@ async function runFind(query, options) {
784
798
  // package.json
785
799
  var package_default = {
786
800
  name: "add-mcp",
787
- version: "1.13.2",
801
+ version: "1.14.0",
788
802
  description: "Add MCP servers to your favorite coding agents with a single command.",
789
803
  author: "Andre Landgraf <andre@neon.tech>",
790
804
  license: "Apache-2.0",
package/dist/lib.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  listInstalledServers,
11
11
  readConfig,
12
12
  removeServerFromConfig
13
- } from "./chunk-3ZFFEEQJ.js";
13
+ } from "./chunk-4EL5LX2K.js";
14
14
 
15
15
  // src/lib.ts
16
16
  import { existsSync } from "fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "add-mcp",
3
- "version": "1.13.2",
3
+ "version": "1.14.0",
4
4
  "description": "Add MCP servers to your favorite coding agents with a single command.",
5
5
  "author": "Andre Landgraf <andre@neon.tech>",
6
6
  "license": "Apache-2.0",