@mastra/mcp-registry-registry 0.0.1-alpha.2 → 0.0.1-alpha.3
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/dist/chunk-5LGQAAB5.js +278 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/stdio.js +1 -278
- package/package.json +4 -3
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
// src/registry/processors/apify.ts
|
|
2
|
+
function processApifyServers(data) {
|
|
3
|
+
const apifyData = data?.data?.items || [];
|
|
4
|
+
if (!Array.isArray(apifyData)) {
|
|
5
|
+
return [];
|
|
6
|
+
}
|
|
7
|
+
return apifyData.filter((item) => item && item.name).map((item) => {
|
|
8
|
+
const stats = item.stats || {};
|
|
9
|
+
const server = {
|
|
10
|
+
id: item.name || "unknown",
|
|
11
|
+
name: item.title,
|
|
12
|
+
description: item.description || "No description available",
|
|
13
|
+
createdAt: "",
|
|
14
|
+
// Apify doesn't provide creation date
|
|
15
|
+
updatedAt: stats.lastRunStartedAt || ""
|
|
16
|
+
};
|
|
17
|
+
return server;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/registry/processors/utils.ts
|
|
22
|
+
function createServerEntry(data) {
|
|
23
|
+
const metaDescription = typeof data.meta === "object" && data.meta !== null ? data.meta.description : void 0;
|
|
24
|
+
return {
|
|
25
|
+
id: data.id || data.name || data.slug || "unknown",
|
|
26
|
+
name: data.name || data.id || data.slug || "Unknown Server",
|
|
27
|
+
description: data.description || metaDescription || "No description available",
|
|
28
|
+
createdAt: data.createdAt || data.created_at || "",
|
|
29
|
+
updatedAt: data.updatedAt || data.updated_at || ""
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// src/registry/processors/apitracker.ts
|
|
34
|
+
function processApiTrackerServers(data) {
|
|
35
|
+
if (!data || typeof data !== "object") {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
const servers = [];
|
|
39
|
+
if (typeof data === "object" && data !== null) {
|
|
40
|
+
const dataObj = data;
|
|
41
|
+
let serversList = [];
|
|
42
|
+
if (Array.isArray(dataObj.servers)) {
|
|
43
|
+
serversList = dataObj.servers;
|
|
44
|
+
} else if (Array.isArray(dataObj.items)) {
|
|
45
|
+
serversList = dataObj.items;
|
|
46
|
+
} else if (Array.isArray(data)) {
|
|
47
|
+
serversList = data;
|
|
48
|
+
}
|
|
49
|
+
for (const item of serversList) {
|
|
50
|
+
if (typeof item === "object" && item !== null) {
|
|
51
|
+
servers.push(createServerEntry(item));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return servers;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/registry/processors/fleur.ts
|
|
59
|
+
function processFleurServers(data) {
|
|
60
|
+
if (!data || typeof data !== "object") {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const servers = [];
|
|
64
|
+
if (Array.isArray(data)) {
|
|
65
|
+
for (const item of data) {
|
|
66
|
+
if (typeof item === "object" && item !== null) {
|
|
67
|
+
const server = createServerEntry(item);
|
|
68
|
+
if (item.appId) {
|
|
69
|
+
server.id = item.appId;
|
|
70
|
+
}
|
|
71
|
+
servers.push(server);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return servers;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// src/registry/processors/mcprun.ts
|
|
79
|
+
function processMcpRunServers(data) {
|
|
80
|
+
const serversData = data;
|
|
81
|
+
if (!Array.isArray(serversData)) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
return serversData.filter((item) => item && item.slug).map((item) => {
|
|
85
|
+
const server = {
|
|
86
|
+
id: item.slug,
|
|
87
|
+
name: item.slug,
|
|
88
|
+
description: item?.meta?.description,
|
|
89
|
+
createdAt: item?.created_at,
|
|
90
|
+
updatedAt: item?.updated_at
|
|
91
|
+
};
|
|
92
|
+
return server;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// src/registry/processors/pulse.ts
|
|
97
|
+
function processPulseMcpServers(data) {
|
|
98
|
+
const serversData = data?.servers || [];
|
|
99
|
+
if (!Array.isArray(serversData)) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
return serversData.filter((item) => item && item.name).map((item) => {
|
|
103
|
+
const server = {
|
|
104
|
+
id: item.name || "unknown",
|
|
105
|
+
name: item.name || "Unknown Server",
|
|
106
|
+
description: item.short_description.slice(0, 300) || item.EXPERIMENTAL_ai_generated_description.slice(0, 300) || "No description available",
|
|
107
|
+
createdAt: "",
|
|
108
|
+
// Pulse MCP doesn't provide creation date
|
|
109
|
+
updatedAt: ""
|
|
110
|
+
// Pulse MCP doesn't provide update date
|
|
111
|
+
};
|
|
112
|
+
return server;
|
|
113
|
+
}).slice(0, 1e3);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// src/registry/registry.ts
|
|
117
|
+
var registryData = {
|
|
118
|
+
registries: [
|
|
119
|
+
{
|
|
120
|
+
id: "apitracker",
|
|
121
|
+
name: "apitracker",
|
|
122
|
+
description: "Discover the best APIs and developer resources",
|
|
123
|
+
url: "https://apitracker.com/",
|
|
124
|
+
servers_url: "https://apitracker.io/api/mcp-servers",
|
|
125
|
+
tags: ["verified"],
|
|
126
|
+
postProcessServers: processApiTrackerServers
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: "apify",
|
|
130
|
+
name: "Apify",
|
|
131
|
+
description: "Your full\u2011stack platform for web scraping",
|
|
132
|
+
url: "https://apify.com/",
|
|
133
|
+
servers_url: "https://api.apify.com/v2/store",
|
|
134
|
+
tags: ["verified"],
|
|
135
|
+
postProcessServers: processApifyServers
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: "fleur",
|
|
139
|
+
name: "Fleur",
|
|
140
|
+
description: "Fleur is the app store for Claude",
|
|
141
|
+
url: "https://www.fleurmcp.com/",
|
|
142
|
+
servers_url: "https://raw.githubusercontent.com/fleuristes/app-registry/refs/heads/main/apps.json",
|
|
143
|
+
tags: ["verified"],
|
|
144
|
+
postProcessServers: processFleurServers
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: "modelcontextprotocol-servers",
|
|
148
|
+
name: "modelcontextprotocol/servers",
|
|
149
|
+
description: "This repository is a collection of reference implementations for the Model Context Protocol (MCP).",
|
|
150
|
+
url: "https://github.com/modelcontextprotocol/servers",
|
|
151
|
+
tags: ["official"],
|
|
152
|
+
count: 307
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: "awesome-mcp-servers",
|
|
156
|
+
name: "Awesome MCP servers",
|
|
157
|
+
description: "A curated list of awesome Model Context Protocol (MCP) servers.",
|
|
158
|
+
url: "https://github.com/punkpeye/awesome-mcp-servers",
|
|
159
|
+
tags: ["open-source"],
|
|
160
|
+
count: 370
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: "cline-bot",
|
|
164
|
+
name: "Cline.bot",
|
|
165
|
+
description: "MCP servers for Cline.bot",
|
|
166
|
+
url: "https://cline.bot/mcp-marketplace",
|
|
167
|
+
tags: ["verified"]
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
id: "cursor-mcp-registry",
|
|
171
|
+
name: "Cursor MCP Registry",
|
|
172
|
+
description: "Browse MCPs or post a MCP to reach 250,000+ monthly active developers.",
|
|
173
|
+
url: "https://cursor.directory/mcp",
|
|
174
|
+
tags: ["verified"],
|
|
175
|
+
count: "1800+"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: "glama-mcp-server",
|
|
179
|
+
name: "Glama MCP Server",
|
|
180
|
+
description: "Production-ready and experimental MCP servers that extend AI capabilities.",
|
|
181
|
+
url: "https://glama.ai/mcp/servers",
|
|
182
|
+
tags: ["open-source"],
|
|
183
|
+
count: 3457
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: "gumloop",
|
|
187
|
+
name: "Gumloop",
|
|
188
|
+
description: "An exhaustive list of MCP servers.",
|
|
189
|
+
url: "https://www.gumloop.com/mcp",
|
|
190
|
+
tags: ["open-source"],
|
|
191
|
+
count: 20
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: "mcp-composio",
|
|
195
|
+
name: "MCP Composio",
|
|
196
|
+
description: "Instantly Connect to 100+ Managed MCP Servers with Built-In Auth",
|
|
197
|
+
url: "https://mcp.composio.dev/",
|
|
198
|
+
tags: ["verified"],
|
|
199
|
+
count: "100+"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: "mcp-market",
|
|
203
|
+
name: "MCP Market",
|
|
204
|
+
description: "Explore our curated collection of MCP servers to connect AI to your favorite tools.",
|
|
205
|
+
url: "https://mcpmarket.com/",
|
|
206
|
+
count: 12454
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
id: "mcp-run",
|
|
210
|
+
name: "MCP Run",
|
|
211
|
+
description: "One platform for vertical AI across your entire organization.",
|
|
212
|
+
url: "https://www.mcp.run/",
|
|
213
|
+
servers_url: "https://www.mcp.run/api/servlets",
|
|
214
|
+
tags: ["verified"],
|
|
215
|
+
postProcessServers: processMcpRunServers
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: "mcp-servers-org",
|
|
219
|
+
name: "MCP Servers",
|
|
220
|
+
description: "A collection of servers for the Model Context Protocol.",
|
|
221
|
+
url: "https://mcpservers.org/",
|
|
222
|
+
tags: ["open-source"],
|
|
223
|
+
count: 212
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
id: "mcp-get",
|
|
227
|
+
name: "MCP-Get",
|
|
228
|
+
description: "mcp-get helps you easily install protocol servers.",
|
|
229
|
+
url: "https://mcp-get.com/",
|
|
230
|
+
tags: ["open-source"],
|
|
231
|
+
count: 69
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
id: "mcp-so",
|
|
235
|
+
name: "MCP.so",
|
|
236
|
+
description: "Find Awesome MCP Servers and Clients",
|
|
237
|
+
url: "https://mcp.so/",
|
|
238
|
+
tags: ["verified"],
|
|
239
|
+
count: 7682
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: "opentools",
|
|
243
|
+
name: "OpenTools",
|
|
244
|
+
description: "This registry documents the capabilities of 400+ tools across 160+ MCP servers.",
|
|
245
|
+
url: "https://opentools.com/registry",
|
|
246
|
+
tags: ["verified"],
|
|
247
|
+
count: 171
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
id: "pulse-mcp",
|
|
251
|
+
name: "Pulse MCP",
|
|
252
|
+
description: "Browse and discover MCP use cases, servers, clients, and news.",
|
|
253
|
+
url: "https://www.pulsemcp.com/",
|
|
254
|
+
servers_url: "https://api.pulsemcp.com/v0beta/servers",
|
|
255
|
+
tags: ["verified"],
|
|
256
|
+
count: 3653,
|
|
257
|
+
postProcessServers: processPulseMcpServers
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: "smithery",
|
|
261
|
+
name: "Smithery",
|
|
262
|
+
description: "Extend your agent with 4,274 capabilities via Model Context Protocol servers.",
|
|
263
|
+
url: "https://smithery.ai/",
|
|
264
|
+
servers_url: "https://registry.smithery.ai/servers",
|
|
265
|
+
tags: ["verified"],
|
|
266
|
+
count: 4274
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: "zapier-mcp",
|
|
270
|
+
name: "Zapier MCP",
|
|
271
|
+
description: "Connect your AI to any app with Zapier MCP",
|
|
272
|
+
url: "https://zapier.com/mcp",
|
|
273
|
+
tags: ["verified"]
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
export { registryData };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { registryData } from './_tsup-dts-rollup.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { registryData } from './chunk-5LGQAAB5.js';
|
package/dist/stdio.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { registryData } from './chunk-5LGQAAB5.js';
|
|
2
3
|
import fs from 'node:fs/promises';
|
|
3
4
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
4
5
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
@@ -8,284 +9,6 @@ import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
|
8
9
|
import path from 'node:path';
|
|
9
10
|
import { fileURLToPath } from 'node:url';
|
|
10
11
|
|
|
11
|
-
// src/registry/processors/apify.ts
|
|
12
|
-
function processApifyServers(data) {
|
|
13
|
-
const apifyData = data?.data?.items || [];
|
|
14
|
-
if (!Array.isArray(apifyData)) {
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
|
-
return apifyData.filter((item) => item && item.name).map((item) => {
|
|
18
|
-
const stats = item.stats || {};
|
|
19
|
-
const server2 = {
|
|
20
|
-
id: item.name || "unknown",
|
|
21
|
-
name: item.title,
|
|
22
|
-
description: item.description || "No description available",
|
|
23
|
-
createdAt: "",
|
|
24
|
-
// Apify doesn't provide creation date
|
|
25
|
-
updatedAt: stats.lastRunStartedAt || ""
|
|
26
|
-
};
|
|
27
|
-
return server2;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// src/registry/processors/utils.ts
|
|
32
|
-
function createServerEntry(data) {
|
|
33
|
-
const metaDescription = typeof data.meta === "object" && data.meta !== null ? data.meta.description : void 0;
|
|
34
|
-
return {
|
|
35
|
-
id: data.id || data.name || data.slug || "unknown",
|
|
36
|
-
name: data.name || data.id || data.slug || "Unknown Server",
|
|
37
|
-
description: data.description || metaDescription || "No description available",
|
|
38
|
-
createdAt: data.createdAt || data.created_at || "",
|
|
39
|
-
updatedAt: data.updatedAt || data.updated_at || ""
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// src/registry/processors/apitracker.ts
|
|
44
|
-
function processApiTrackerServers(data) {
|
|
45
|
-
if (!data || typeof data !== "object") {
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
const servers = [];
|
|
49
|
-
if (typeof data === "object" && data !== null) {
|
|
50
|
-
const dataObj = data;
|
|
51
|
-
let serversList = [];
|
|
52
|
-
if (Array.isArray(dataObj.servers)) {
|
|
53
|
-
serversList = dataObj.servers;
|
|
54
|
-
} else if (Array.isArray(dataObj.items)) {
|
|
55
|
-
serversList = dataObj.items;
|
|
56
|
-
} else if (Array.isArray(data)) {
|
|
57
|
-
serversList = data;
|
|
58
|
-
}
|
|
59
|
-
for (const item of serversList) {
|
|
60
|
-
if (typeof item === "object" && item !== null) {
|
|
61
|
-
servers.push(createServerEntry(item));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return servers;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// src/registry/processors/fleur.ts
|
|
69
|
-
function processFleurServers(data) {
|
|
70
|
-
if (!data || typeof data !== "object") {
|
|
71
|
-
return [];
|
|
72
|
-
}
|
|
73
|
-
const servers = [];
|
|
74
|
-
if (Array.isArray(data)) {
|
|
75
|
-
for (const item of data) {
|
|
76
|
-
if (typeof item === "object" && item !== null) {
|
|
77
|
-
const server2 = createServerEntry(item);
|
|
78
|
-
if (item.appId) {
|
|
79
|
-
server2.id = item.appId;
|
|
80
|
-
}
|
|
81
|
-
servers.push(server2);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return servers;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// src/registry/processors/mcprun.ts
|
|
89
|
-
function processMcpRunServers(data) {
|
|
90
|
-
const serversData = data;
|
|
91
|
-
if (!Array.isArray(serversData)) {
|
|
92
|
-
return [];
|
|
93
|
-
}
|
|
94
|
-
return serversData.filter((item) => item && item.slug).map((item) => {
|
|
95
|
-
const server2 = {
|
|
96
|
-
id: item.slug,
|
|
97
|
-
name: item.slug,
|
|
98
|
-
description: item?.meta?.description,
|
|
99
|
-
createdAt: item?.created_at,
|
|
100
|
-
updatedAt: item?.updated_at
|
|
101
|
-
};
|
|
102
|
-
return server2;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// src/registry/processors/pulse.ts
|
|
107
|
-
function processPulseMcpServers(data) {
|
|
108
|
-
const serversData = data?.servers || [];
|
|
109
|
-
if (!Array.isArray(serversData)) {
|
|
110
|
-
return [];
|
|
111
|
-
}
|
|
112
|
-
return serversData.filter((item) => item && item.name).map((item) => {
|
|
113
|
-
const server2 = {
|
|
114
|
-
id: item.name || "unknown",
|
|
115
|
-
name: item.name || "Unknown Server",
|
|
116
|
-
description: item.short_description.slice(0, 300) || item.EXPERIMENTAL_ai_generated_description.slice(0, 300) || "No description available",
|
|
117
|
-
createdAt: "",
|
|
118
|
-
// Pulse MCP doesn't provide creation date
|
|
119
|
-
updatedAt: ""
|
|
120
|
-
// Pulse MCP doesn't provide update date
|
|
121
|
-
};
|
|
122
|
-
return server2;
|
|
123
|
-
}).slice(0, 1e3);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// src/registry/registry.ts
|
|
127
|
-
var registryData = {
|
|
128
|
-
registries: [
|
|
129
|
-
{
|
|
130
|
-
id: "apitracker",
|
|
131
|
-
name: "apitracker",
|
|
132
|
-
description: "Discover the best APIs and developer resources",
|
|
133
|
-
url: "https://apitracker.com/",
|
|
134
|
-
servers_url: "https://apitracker.io/api/mcp-servers",
|
|
135
|
-
tags: ["verified"],
|
|
136
|
-
postProcessServers: processApiTrackerServers
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
id: "apify",
|
|
140
|
-
name: "Apify",
|
|
141
|
-
description: "Your full\u2011stack platform for web scraping",
|
|
142
|
-
url: "https://apify.com/",
|
|
143
|
-
servers_url: "https://api.apify.com/v2/store",
|
|
144
|
-
tags: ["verified"],
|
|
145
|
-
postProcessServers: processApifyServers
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
id: "fleur",
|
|
149
|
-
name: "Fleur",
|
|
150
|
-
description: "Fleur is the app store for Claude",
|
|
151
|
-
url: "https://www.fleurmcp.com/",
|
|
152
|
-
servers_url: "https://raw.githubusercontent.com/fleuristes/app-registry/refs/heads/main/apps.json",
|
|
153
|
-
tags: ["verified"],
|
|
154
|
-
postProcessServers: processFleurServers
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
id: "modelcontextprotocol-servers",
|
|
158
|
-
name: "modelcontextprotocol/servers",
|
|
159
|
-
description: "This repository is a collection of reference implementations for the Model Context Protocol (MCP).",
|
|
160
|
-
url: "https://github.com/modelcontextprotocol/servers",
|
|
161
|
-
tags: ["official"],
|
|
162
|
-
count: 307
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
id: "awesome-mcp-servers",
|
|
166
|
-
name: "Awesome MCP servers",
|
|
167
|
-
description: "A curated list of awesome Model Context Protocol (MCP) servers.",
|
|
168
|
-
url: "https://github.com/punkpeye/awesome-mcp-servers",
|
|
169
|
-
tags: ["open-source"],
|
|
170
|
-
count: 370
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
id: "cline-bot",
|
|
174
|
-
name: "Cline.bot",
|
|
175
|
-
description: "MCP servers for Cline.bot",
|
|
176
|
-
url: "https://cline.bot/mcp-marketplace",
|
|
177
|
-
tags: ["verified"]
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
id: "cursor-mcp-registry",
|
|
181
|
-
name: "Cursor MCP Registry",
|
|
182
|
-
description: "Browse MCPs or post a MCP to reach 250,000+ monthly active developers.",
|
|
183
|
-
url: "https://cursor.directory/mcp",
|
|
184
|
-
tags: ["verified"],
|
|
185
|
-
count: "1800+"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
id: "glama-mcp-server",
|
|
189
|
-
name: "Glama MCP Server",
|
|
190
|
-
description: "Production-ready and experimental MCP servers that extend AI capabilities.",
|
|
191
|
-
url: "https://glama.ai/mcp/servers",
|
|
192
|
-
tags: ["open-source"],
|
|
193
|
-
count: 3457
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
id: "gumloop",
|
|
197
|
-
name: "Gumloop",
|
|
198
|
-
description: "An exhaustive list of MCP servers.",
|
|
199
|
-
url: "https://www.gumloop.com/mcp",
|
|
200
|
-
tags: ["open-source"],
|
|
201
|
-
count: 20
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
id: "mcp-composio",
|
|
205
|
-
name: "MCP Composio",
|
|
206
|
-
description: "Instantly Connect to 100+ Managed MCP Servers with Built-In Auth",
|
|
207
|
-
url: "https://mcp.composio.dev/",
|
|
208
|
-
tags: ["verified"],
|
|
209
|
-
count: "100+"
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
id: "mcp-market",
|
|
213
|
-
name: "MCP Market",
|
|
214
|
-
description: "Explore our curated collection of MCP servers to connect AI to your favorite tools.",
|
|
215
|
-
url: "https://mcpmarket.com/",
|
|
216
|
-
count: 12454
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
id: "mcp-run",
|
|
220
|
-
name: "MCP Run",
|
|
221
|
-
description: "One platform for vertical AI across your entire organization.",
|
|
222
|
-
url: "https://www.mcp.run/",
|
|
223
|
-
servers_url: "https://www.mcp.run/api/servlets",
|
|
224
|
-
tags: ["verified"],
|
|
225
|
-
postProcessServers: processMcpRunServers
|
|
226
|
-
},
|
|
227
|
-
{
|
|
228
|
-
id: "mcp-servers-org",
|
|
229
|
-
name: "MCP Servers",
|
|
230
|
-
description: "A collection of servers for the Model Context Protocol.",
|
|
231
|
-
url: "https://mcpservers.org/",
|
|
232
|
-
tags: ["open-source"],
|
|
233
|
-
count: 212
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
id: "mcp-get",
|
|
237
|
-
name: "MCP-Get",
|
|
238
|
-
description: "mcp-get helps you easily install protocol servers.",
|
|
239
|
-
url: "https://mcp-get.com/",
|
|
240
|
-
tags: ["open-source"],
|
|
241
|
-
count: 69
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
id: "mcp-so",
|
|
245
|
-
name: "MCP.so",
|
|
246
|
-
description: "Find Awesome MCP Servers and Clients",
|
|
247
|
-
url: "https://mcp.so/",
|
|
248
|
-
tags: ["verified"],
|
|
249
|
-
count: 7682
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
id: "opentools",
|
|
253
|
-
name: "OpenTools",
|
|
254
|
-
description: "This registry documents the capabilities of 400+ tools across 160+ MCP servers.",
|
|
255
|
-
url: "https://opentools.com/registry",
|
|
256
|
-
tags: ["verified"],
|
|
257
|
-
count: 171
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
id: "pulse-mcp",
|
|
261
|
-
name: "Pulse MCP",
|
|
262
|
-
description: "Browse and discover MCP use cases, servers, clients, and news.",
|
|
263
|
-
url: "https://www.pulsemcp.com/",
|
|
264
|
-
servers_url: "https://api.pulsemcp.com/v0beta/servers",
|
|
265
|
-
tags: ["verified"],
|
|
266
|
-
count: 3653,
|
|
267
|
-
postProcessServers: processPulseMcpServers
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
id: "smithery",
|
|
271
|
-
name: "Smithery",
|
|
272
|
-
description: "Extend your agent with 4,274 capabilities via Model Context Protocol servers.",
|
|
273
|
-
url: "https://smithery.ai/",
|
|
274
|
-
servers_url: "https://registry.smithery.ai/servers",
|
|
275
|
-
tags: ["verified"],
|
|
276
|
-
count: 4274
|
|
277
|
-
},
|
|
278
|
-
{
|
|
279
|
-
id: "zapier-mcp",
|
|
280
|
-
name: "Zapier MCP",
|
|
281
|
-
description: "Connect your AI to any app with Zapier MCP",
|
|
282
|
-
url: "https://zapier.com/mcp",
|
|
283
|
-
tags: ["verified"]
|
|
284
|
-
}
|
|
285
|
-
]
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
// src/registry/list-registries.ts
|
|
289
12
|
var RegistryEntrySchema = z.object({
|
|
290
13
|
id: z.string(),
|
|
291
14
|
name: z.string(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-registry-registry",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.3",
|
|
4
4
|
"description": "MCP server for registry registry services.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -40,10 +40,11 @@
|
|
|
40
40
|
"tsx": "^4.19.3",
|
|
41
41
|
"typescript": "^5.3.3",
|
|
42
42
|
"vitest": "^3.0.9",
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
43
|
+
"@mastra/mcp": "^0.3.10-alpha.4",
|
|
44
|
+
"@internal/lint": "0.0.2-alpha.0"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
|
+
"build": "tsup src/index.ts src/stdio.ts --format esm --experimental-dts --treeshake=smallest --splitting",
|
|
47
48
|
"build:cli": "tsup src/stdio.ts --format esm --experimental-dts --treeshake=smallest --splitting",
|
|
48
49
|
"pretest": "pnpm turbo build --filter @mastra/mcp-registry-registry",
|
|
49
50
|
"test": "vitest run",
|