@mastra/mcp-registry-registry 0.0.0-switch-to-core-20250424015131 → 0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745

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 (47) hide show
  1. package/LICENSE.md +11 -42
  2. package/dist/{chunk-P64PLYDJ.js → chunk-SNTSCAS2.js} +59 -2
  3. package/dist/chunk-SNTSCAS2.js.map +1 -0
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +3 -1
  7. package/dist/index.js.map +1 -0
  8. package/dist/registry/fetch-servers.d.ts +20 -0
  9. package/dist/registry/fetch-servers.d.ts.map +1 -0
  10. package/dist/registry/index.d.ts +3 -0
  11. package/dist/registry/index.d.ts.map +1 -0
  12. package/dist/registry/list-registries.d.ts +28 -0
  13. package/dist/registry/list-registries.d.ts.map +1 -0
  14. package/dist/registry/processors/apify.d.ts +7 -0
  15. package/dist/registry/processors/apify.d.ts.map +1 -0
  16. package/dist/registry/processors/apitracker.d.ts +7 -0
  17. package/dist/registry/processors/apitracker.d.ts.map +1 -0
  18. package/dist/registry/processors/default.d.ts +7 -0
  19. package/dist/registry/processors/default.d.ts.map +1 -0
  20. package/dist/registry/processors/docker.d.ts +7 -0
  21. package/dist/registry/processors/docker.d.ts.map +1 -0
  22. package/dist/registry/processors/fleur.d.ts +7 -0
  23. package/dist/registry/processors/fleur.d.ts.map +1 -0
  24. package/dist/registry/processors/mcprun.d.ts +3 -0
  25. package/dist/registry/processors/mcprun.d.ts.map +1 -0
  26. package/dist/registry/processors/pulse.d.ts +7 -0
  27. package/dist/registry/processors/pulse.d.ts.map +1 -0
  28. package/dist/registry/processors/utils.d.ts +3 -0
  29. package/dist/registry/processors/utils.d.ts.map +1 -0
  30. package/dist/registry/registry.d.ts +3 -0
  31. package/dist/registry/registry.d.ts.map +1 -0
  32. package/dist/registry/types.d.ts +35 -0
  33. package/dist/registry/types.d.ts.map +1 -0
  34. package/dist/server.d.ts +27 -0
  35. package/dist/server.d.ts.map +1 -0
  36. package/dist/stdio.d.ts +2 -0
  37. package/dist/stdio.d.ts.map +1 -0
  38. package/dist/stdio.js +6 -4
  39. package/dist/stdio.js.map +1 -0
  40. package/dist/tools/list.d.ts +36 -0
  41. package/dist/tools/list.d.ts.map +1 -0
  42. package/dist/tools/servers.d.ts +33 -0
  43. package/dist/tools/servers.d.ts.map +1 -0
  44. package/dist/utils.d.ts +2 -0
  45. package/dist/utils.d.ts.map +1 -0
  46. package/package.json +23 -19
  47. package/dist/_tsup-dts-rollup.d.ts +0 -243
package/LICENSE.md CHANGED
@@ -1,46 +1,15 @@
1
- # Elastic License 2.0 (ELv2)
1
+ # Apache License 2.0
2
2
 
3
- Copyright (c) 2025 Mastra AI, Inc.
3
+ Copyright (c) 2025 Kepler Software, Inc.
4
4
 
5
- **Acceptance**
6
- By using the software, you agree to all of the terms and conditions below.
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
7
8
 
8
- **Copyright License**
9
- The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations and conditions below
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
10
 
11
- **Limitations**
12
- You may not provide the software to third parties as a hosted or managed service, where the service provides users with access to any substantial set of the features or functionality of the software.
13
-
14
- You may not move, change, disable, or circumvent the license key functionality in the software, and you may not remove or obscure any functionality in the software that is protected by the license key.
15
-
16
- You may not alter, remove, or obscure any licensing, copyright, or other notices of the licensor in the software. Any use of the licensor’s trademarks is subject to applicable law.
17
-
18
- **Patents**
19
- The licensor grants you a license, under any patent claims the licensor can license, or becomes able to license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case subject to the limitations and conditions in this license. This license does not cover any patent claims that you cause to be infringed by modifications or additions to the software. If you or your company make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
20
-
21
- **Notices**
22
- You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms.
23
-
24
- If you modify the software, you must include in any modified copies of the software prominent notices stating that you have modified the software.
25
-
26
- **No Other Rights**
27
- These terms do not imply any licenses other than those expressly granted in these terms.
28
-
29
- **Termination**
30
- If you use the software in violation of these terms, such use is not licensed, and your licenses will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your licenses will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your licenses to terminate automatically and permanently.
31
-
32
- **No Liability**
33
- As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.
34
-
35
- **Definitions**
36
- The _licensor_ is the entity offering these terms, and the _software_ is the software the licensor makes available under these terms, including any portion of it.
37
-
38
- _you_ refers to the individual or entity agreeing to these terms.
39
-
40
- _your company_ is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. _control_ means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
41
-
42
- _your licenses_ are all the licenses granted to you for the software under these terms.
43
-
44
- _use_ means anything you do with the software requiring one of your licenses.
45
-
46
- _trademark_ means trademarks, service marks, and similar rights.
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
@@ -55,6 +55,35 @@ function processApiTrackerServers(data) {
55
55
  return servers;
56
56
  }
57
57
 
58
+ // src/registry/processors/docker.ts
59
+ function processDockerServers(data) {
60
+ if (!data || typeof data !== "object") {
61
+ return [];
62
+ }
63
+ const servers = [];
64
+ const results = data?.results || [];
65
+ if (!Array.isArray(results)) {
66
+ return [];
67
+ }
68
+ for (const item of results) {
69
+ if (typeof item === "object" && item !== null) {
70
+ const server = createServerEntry(item);
71
+ if (item.name) {
72
+ server.id = item.name;
73
+ server.name = item.name;
74
+ }
75
+ if (Array.isArray(item.images) && item.images[0]?.description) {
76
+ server.description = item.images[0].description;
77
+ }
78
+ if (item.last_updated) {
79
+ server.updatedAt = item.last_updated;
80
+ }
81
+ servers.push(server);
82
+ }
83
+ }
84
+ return servers;
85
+ }
86
+
58
87
  // src/registry/processors/fleur.ts
59
88
  function processFleurServers(data) {
60
89
  if (!data || typeof data !== "object") {
@@ -125,13 +154,24 @@ var registryData = {
125
154
  tags: ["verified"],
126
155
  postProcessServers: processApiTrackerServers
127
156
  },
157
+ {
158
+ id: "docker-mcp-catalog",
159
+ name: "Docker MCP Catalog",
160
+ description: "A collection of secure, high quality MCP servers as docker images",
161
+ url: "https://hub.docker.com/catalogs/mcp",
162
+ servers_url: "https://hub.docker.com/v2/repositories/mcp/",
163
+ tags: ["verified"],
164
+ count: 102,
165
+ postProcessServers: processDockerServers
166
+ },
128
167
  {
129
168
  id: "apify",
130
169
  name: "Apify",
131
- description: "Your full\u2011stack platform for web scraping",
132
- url: "https://apify.com/",
170
+ description: "A MCP marketplace enabling AI agents to use 5,000+ ready-made servers and Actors.",
171
+ url: "https://apify.com/store",
133
172
  servers_url: "https://api.apify.com/v2/store",
134
173
  tags: ["verified"],
174
+ count: "5000+",
135
175
  postProcessServers: processApifyServers
136
176
  },
137
177
  {
@@ -189,6 +229,13 @@ var registryData = {
189
229
  tags: ["open-source"],
190
230
  count: 20
191
231
  },
232
+ {
233
+ id: "klavisai",
234
+ name: "Klavis AI",
235
+ description: "Klavis AI is open source MCP integrations for AI Applications",
236
+ url: "https://github.com/Klavis-AI/klavis",
237
+ tags: ["open-source"]
238
+ },
192
239
  {
193
240
  id: "make",
194
241
  name: "Make MCP",
@@ -204,6 +251,14 @@ var registryData = {
204
251
  tags: ["verified"],
205
252
  count: "100+"
206
253
  },
254
+ {
255
+ id: "mcpbar",
256
+ name: "MCP Bar",
257
+ description: "Open Registry & Package Manager for MCP Servers",
258
+ url: "https://www.mcp.bar/",
259
+ tags: ["open-source"],
260
+ count: 4429
261
+ },
207
262
  {
208
263
  id: "mcpget",
209
264
  name: "MCP-Get",
@@ -325,3 +380,5 @@ var registryData = {
325
380
  };
326
381
 
327
382
  export { registryData };
383
+ //# sourceMappingURL=chunk-SNTSCAS2.js.map
384
+ //# sourceMappingURL=chunk-SNTSCAS2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/registry/processors/apify.ts","../src/registry/processors/utils.ts","../src/registry/processors/apitracker.ts","../src/registry/processors/docker.ts","../src/registry/processors/fleur.ts","../src/registry/processors/mcprun.ts","../src/registry/processors/pulse.ts","../src/registry/registry.ts"],"names":[],"mappings":"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","file":"chunk-SNTSCAS2.js","sourcesContent":["import type { ServerEntry } from '../types';\n\n/**\n * Post-processor for Apify registry\n * Handles the specific format of Apify's store data\n */\nexport function processApifyServers(data: any): ServerEntry[] {\n // Get the data array from the response\n const apifyData = data?.data?.items || [];\n\n if (!Array.isArray(apifyData)) {\n return [];\n }\n\n // Map the data to server entries\n return apifyData\n .filter((item: any) => item && item.name)\n .map((item: any) => {\n // Extract stats for the updated date\n const stats = item.stats || {};\n\n const server = {\n id: item.name || 'unknown',\n name: item.title,\n description: item.description || 'No description available',\n createdAt: '', // Apify doesn't provide creation date\n updatedAt: stats.lastRunStartedAt || '',\n };\n\n return server;\n });\n}\n","import type { ServerEntry } from '../types';\n\n// Helper function to create a basic server entry from partial data\nexport function createServerEntry(data: Record<string, unknown>): ServerEntry {\n // Safely access nested properties\n const metaDescription =\n typeof data.meta === 'object' && data.meta !== null\n ? ((data.meta as Record<string, unknown>).description as string)\n : undefined;\n\n return {\n id: (data.id as string) || (data.name as string) || (data.slug as string) || 'unknown',\n name: (data.name as string) || (data.id as string) || (data.slug as string) || 'Unknown Server',\n description: (data.description as string) || metaDescription || 'No description available',\n createdAt: (data.createdAt as string) || (data.created_at as string) || '',\n updatedAt: (data.updatedAt as string) || (data.updated_at as string) || '',\n };\n}\n","import type { ServerEntry } from '../types';\nimport { createServerEntry } from './utils';\n\n/**\n * Post-processor for APITracker registry\n * Handles the specific format of APITracker's server data\n */\nexport function processApiTrackerServers(data: unknown): ServerEntry[] {\n if (!data || typeof data !== 'object') {\n return [];\n }\n\n const servers: ServerEntry[] = [];\n\n // APITracker might return an object with a servers array\n if (typeof data === 'object' && data !== null) {\n const dataObj = data as Record<string, unknown>;\n\n let serversList: unknown[] = [];\n\n if (Array.isArray(dataObj.servers)) {\n serversList = dataObj.servers;\n } else if (Array.isArray(dataObj.items)) {\n serversList = dataObj.items;\n } else if (Array.isArray(data)) {\n serversList = data as unknown[];\n }\n\n for (const item of serversList) {\n if (typeof item === 'object' && item !== null) {\n servers.push(createServerEntry(item as Record<string, unknown>));\n }\n }\n }\n\n return servers;\n}\n","import type { ServerEntry } from '../types';\nimport { createServerEntry } from './utils';\n\n/**\n * Post-processor for Docker MCP Hub registry\n * Transforms Docker Hub API response into standardized ServerEntry format\n */\nexport function processDockerServers(data: unknown): ServerEntry[] {\n if (!data || typeof data !== 'object') {\n return [];\n }\n\n const servers: ServerEntry[] = [];\n const results = (data as any)?.results || [];\n\n if (!Array.isArray(results)) {\n return [];\n }\n\n for (const item of results) {\n if (typeof item === 'object' && item !== null) {\n const server = createServerEntry(item as Record<string, unknown>);\n\n // Map Docker Hub specific fields\n if (item.name) {\n server.id = item.name;\n server.name = item.name;\n }\n\n // Use the first image's description if available\n if (Array.isArray(item.images) && item.images[0]?.description) {\n server.description = item.images[0].description;\n }\n\n // Use last_updated as updatedAt\n if (item.last_updated) {\n server.updatedAt = item.last_updated;\n }\n\n servers.push(server);\n }\n }\n\n return servers;\n}\n","import type { ServerEntry } from '../types';\nimport { createServerEntry } from './utils';\n\n/**\n * Post-processor for Fleur registry\n * Handles the specific format of Fleur's app data\n */\nexport function processFleurServers(data: unknown): ServerEntry[] {\n if (!data || typeof data !== 'object') {\n return [];\n }\n\n const servers: ServerEntry[] = [];\n\n // Fleur returns an array of app objects\n if (Array.isArray(data)) {\n for (const item of data) {\n if (typeof item === 'object' && item !== null) {\n const server = createServerEntry(item as Record<string, unknown>);\n\n // Handle Fleur specific fields\n if ((item as any).appId) {\n server.id = (item as any).appId;\n }\n\n servers.push(server);\n }\n }\n }\n\n return servers;\n}\n","import type { ServerEntry } from '../types';\n\n// Post-processor for MCP Run registry\nexport function processMcpRunServers(data: any): ServerEntry[] {\n const serversData = data;\n\n if (!Array.isArray(serversData)) {\n return [];\n }\n\n return serversData\n .filter((item: any) => item && item.slug)\n .map((item: any) => {\n const server = {\n id: item.slug,\n name: item.slug,\n description: item?.meta?.description,\n createdAt: item?.created_at,\n updatedAt: item?.updated_at,\n };\n\n return server;\n });\n}\n","import type { ServerEntry } from '../types';\n\n/**\n * Post-processor for Pulse MCP registry\n * Handles the specific format of Pulse MCP's server data\n */\nexport function processPulseMcpServers(data: any): ServerEntry[] {\n // Get the servers array from the response\n const serversData = data?.servers || [];\n\n if (!Array.isArray(serversData)) {\n return [];\n }\n\n // Map the data to server entries\n return serversData\n .filter((item: any) => item && item.name)\n .map((item: any) => {\n const server = {\n id: item.name || 'unknown',\n name: item.name || 'Unknown Server',\n description:\n item.short_description.slice(0, 300) ||\n item.EXPERIMENTAL_ai_generated_description.slice(0, 300) ||\n 'No description available',\n createdAt: '', // Pulse MCP doesn't provide creation date\n updatedAt: '', // Pulse MCP doesn't provide update date\n };\n\n return server;\n })\n .slice(0, 1000);\n}\n","import { processApifyServers } from './processors/apify';\nimport { processApiTrackerServers } from './processors/apitracker';\nimport { processDockerServers } from './processors/docker';\nimport { processFleurServers } from './processors/fleur';\nimport { processMcpRunServers } from './processors/mcprun';\nimport { processPulseMcpServers } from './processors/pulse';\nimport type { RegistryFile } from './types';\n\n// Registry data with post-processing functions\nexport const registryData: RegistryFile = {\n registries: [\n {\n id: 'apitracker',\n name: 'API Tracker',\n description: 'Discover the best APIs and developer resources',\n url: 'https://apitracker.com/',\n servers_url: 'https://apitracker.io/api/mcp-servers',\n tags: ['verified'],\n postProcessServers: processApiTrackerServers,\n },\n {\n id: 'docker-mcp-catalog',\n name: 'Docker MCP Catalog',\n description: 'A collection of secure, high quality MCP servers as docker images',\n url: 'https://hub.docker.com/catalogs/mcp',\n servers_url: 'https://hub.docker.com/v2/repositories/mcp/',\n tags: ['verified'],\n count: 102,\n postProcessServers: processDockerServers,\n },\n {\n id: 'apify',\n name: 'Apify',\n description: 'A MCP marketplace enabling AI agents to use 5,000+ ready-made servers and Actors.',\n url: 'https://apify.com/store',\n servers_url: 'https://api.apify.com/v2/store',\n tags: ['verified'],\n count: '5000+',\n postProcessServers: processApifyServers,\n },\n {\n id: 'awesome-mcp-servers',\n name: 'Awesome MCP servers',\n description: 'A curated list of awesome Model Context Protocol (MCP) servers.',\n url: 'https://github.com/punkpeye/awesome-mcp-servers',\n tags: ['open-source'],\n count: 370,\n },\n {\n id: 'cline',\n name: 'Cline.bot',\n description: 'MCP servers for Cline.bot',\n url: 'https://cline.bot/mcp-marketplace',\n tags: ['verified'],\n },\n {\n id: 'cursor',\n name: 'Cursor MCP Registry',\n description: 'Browse MCPs or post a MCP to reach 250,000+ monthly active developers.',\n url: 'https://cursor.directory/mcp',\n tags: ['verified'],\n count: '1800+',\n },\n {\n id: 'dextermcp',\n name: 'Dexter MCP',\n description: 'Enhance your AI with specialized MCP servers for various tasks',\n url: 'https://www.dextermcp.net/',\n tags: ['verified'],\n },\n {\n id: 'fleur',\n name: 'Fleur',\n description: 'Fleur is the app store for Claude',\n url: 'https://www.fleurmcp.com/',\n servers_url: 'https://raw.githubusercontent.com/fleuristes/app-registry/refs/heads/main/apps.json',\n tags: ['verified'],\n postProcessServers: processFleurServers,\n },\n {\n id: 'glama',\n name: 'Glama MCP Server',\n description: 'Production-ready and experimental MCP servers that extend AI capabilities.',\n url: 'https://glama.ai/mcp/servers',\n tags: ['open-source'],\n count: 3457,\n },\n {\n id: 'gumloop',\n name: 'Gumloop',\n description: 'An exhaustive list of MCP servers.',\n url: 'https://www.gumloop.com/mcp',\n tags: ['open-source'],\n count: 20,\n },\n {\n id: 'klavisai',\n name: 'Klavis AI',\n description: 'Klavis AI is open source MCP integrations for AI Applications',\n url: 'https://github.com/Klavis-AI/klavis',\n tags: ['open-source'],\n },\n {\n id: 'make',\n name: 'Make MCP',\n description: 'Connect AI models to 1000+ apps with Make automation platform',\n url: 'https://developers.make.com/mcp-server',\n tags: ['verified'],\n },\n {\n id: 'composio',\n name: 'MCP Composio',\n description: 'Instantly Connect to 100+ Managed MCP Servers with Built-In Auth',\n url: 'https://mcp.composio.dev/',\n tags: ['verified'],\n count: '100+',\n },\n {\n id: 'mcpbar',\n name: 'MCP Bar',\n description: 'Open Registry & Package Manager for MCP Servers',\n url: 'https://www.mcp.bar/',\n tags: ['open-source'],\n count: 4429,\n },\n {\n id: 'mcpget',\n name: 'MCP-Get',\n description: 'mcp-get helps you easily install protocol servers.',\n url: 'https://mcp-get.com/',\n tags: ['open-source'],\n count: 69,\n },\n {\n id: 'mcpmarket',\n name: 'MCP Market',\n description: 'Explore our curated collection of MCP servers to connect AI to your favorite tools.',\n url: 'https://mcpmarket.com/',\n count: 12454,\n },\n {\n id: 'mcprepository',\n name: 'MCP Repository',\n description: 'Discover the ultimate resource for Model Context Protocol at MCP Repository',\n url: 'https://mcprepository.com',\n tags: ['verified'],\n },\n {\n id: 'mcpresolver',\n name: 'MCP Resolver',\n description: 'Find and connect to the right MCP servers for your AI applications',\n url: 'https://mcpresolver.com/',\n tags: ['verified'],\n },\n {\n id: 'mcprun',\n name: 'MCP Run',\n description: 'One platform for vertical AI across your entire organization.',\n url: 'https://www.mcp.run/',\n servers_url: 'https://www.mcp.run/api/servlets',\n tags: ['verified'],\n postProcessServers: processMcpRunServers,\n },\n {\n id: 'mcpserversorg',\n name: 'MCP Servers',\n description: 'A collection of servers for the Model Context Protocol.',\n url: 'https://mcpservers.org/',\n tags: ['open-source'],\n count: 212,\n },\n {\n id: 'mcpso',\n name: 'MCP.so',\n description: 'Find Awesome MCP Servers and Clients',\n url: 'https://mcp.so/',\n tags: ['verified'],\n count: 7682,\n },\n {\n id: 'mcpstore',\n name: 'MCP Store',\n description: 'Discover and use a variety of MCP servers for your AI applications',\n url: 'http://mcpstore.co/',\n tags: ['open-source'],\n },\n {\n id: 'modelcontextprotocol-servers',\n name: 'modelcontextprotocol/servers',\n description: 'This repository is a collection of reference implementations for the Model Context Protocol (MCP).',\n url: 'https://github.com/modelcontextprotocol/servers',\n tags: ['official'],\n count: 307,\n },\n {\n id: 'opentools',\n name: 'OpenTools',\n description: 'This registry documents the capabilities of 400+ tools across 160+ MCP servers.',\n url: 'https://opentools.com/registry',\n tags: ['verified'],\n count: 171,\n },\n {\n id: 'pipedream',\n name: 'Pipedream MCP',\n description: 'The AI developer toolkit for integrations',\n url: 'https://mcp.pipedream.com/',\n tags: ['verified'],\n },\n {\n id: 'pulse',\n name: 'Pulse MCP',\n description: 'Browse and discover MCP use cases, servers, clients, and news.',\n url: 'https://www.pulsemcp.com/',\n servers_url: 'https://api.pulsemcp.com/v0beta/servers',\n tags: ['verified'],\n count: 3653,\n postProcessServers: processPulseMcpServers,\n },\n {\n id: 'smithery',\n name: 'Smithery',\n description: 'Extend your agent with 4,274 capabilities via Model Context Protocol servers.',\n url: 'https://smithery.ai/',\n servers_url: 'https://registry.smithery.ai/servers',\n tags: ['verified'],\n count: 4274,\n },\n {\n id: 'supermachine',\n name: 'SuperMachine',\n description: 'AI-powered tools and MCP servers for developers and businesses',\n url: 'https://supermachine.ai/',\n tags: ['verified'],\n },\n {\n id: 'zapier',\n name: 'Zapier MCP',\n description: 'Connect your AI to any app with Zapier MCP',\n url: 'https://zapier.com/mcp',\n tags: ['verified'],\n },\n ],\n};\n"]}
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { registryData } from './_tsup-dts-rollup.js';
1
+ export * from './registry/registry.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1,3 @@
1
- export { registryData } from './chunk-P64PLYDJ.js';
1
+ export { registryData } from './chunk-SNTSCAS2.js';
2
+ //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,20 @@
1
+ import type { ServerEntry } from './types.js';
2
+ /**
3
+ * Fetches servers from a registry's servers_url endpoint
4
+ */
5
+ export declare function fetchServersFromRegistry(registryId: string): Promise<ServerEntry[]>;
6
+ /**
7
+ * Filters server entries based on provided criteria
8
+ */
9
+ export declare function filterServers(servers: ServerEntry[], filters: {
10
+ tag?: string;
11
+ search?: string;
12
+ }): ServerEntry[];
13
+ /**
14
+ * Main function to get servers from a registry with optional filtering
15
+ */
16
+ export declare function getServersFromRegistry(registryId: string, filters?: {
17
+ tag?: string;
18
+ search?: string;
19
+ }): Promise<any>;
20
+ //# sourceMappingURL=fetch-servers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-servers.d.ts","sourceRoot":"","sources":["../../src/registry/fetch-servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAmCzF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,WAAW,EAAE,CAWf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,OAAO,CAAC,GAAG,CAAC,CAQd"}
@@ -0,0 +1,3 @@
1
+ export * from './list-registries.js';
2
+ export * from './fetch-servers.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { RegistryEntry, RegistryFile } from './types.js';
2
+ /**
3
+ * Returns the registry data from the registry.ts file
4
+ */
5
+ export declare function loadRegistryData(): Promise<RegistryFile>;
6
+ /**
7
+ * Filters registry entries based on provided criteria
8
+ */
9
+ export declare function filterRegistries(registries: RegistryEntry[], filters: {
10
+ id?: string;
11
+ tag?: string;
12
+ name?: string;
13
+ }): RegistryEntry[];
14
+ /**
15
+ * Formats registry entries for API response
16
+ */
17
+ export declare function formatRegistryResponse(registries: RegistryEntry[], detailed?: boolean): any;
18
+ /**
19
+ * Main function to get registry listings with optional filtering
20
+ */
21
+ export declare function getRegistryListings(filters?: {
22
+ id?: string;
23
+ tag?: string;
24
+ name?: string;
25
+ }, options?: {
26
+ detailed?: boolean;
27
+ }): Promise<any>;
28
+ //# sourceMappingURL=list-registries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-registries.d.ts","sourceRoot":"","sources":["../../src/registry/list-registries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAkB3D;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAQ9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,EAAE;IACP,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,aAAa,EAAE,CAiBjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,QAAQ,GAAE,OAAe,GAAG,GAAG,CA+BlG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE;IACP,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,EACN,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,OAAO,CAAC;CACf,GACL,OAAO,CAAC,GAAG,CAAC,CASd"}
@@ -0,0 +1,7 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ /**
3
+ * Post-processor for Apify registry
4
+ * Handles the specific format of Apify's store data
5
+ */
6
+ export declare function processApifyServers(data: any): ServerEntry[];
7
+ //# sourceMappingURL=apify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apify.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/apify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,EAAE,CAyB5D"}
@@ -0,0 +1,7 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ /**
3
+ * Post-processor for APITracker registry
4
+ * Handles the specific format of APITracker's server data
5
+ */
6
+ export declare function processApiTrackerServers(data: unknown): ServerEntry[];
7
+ //# sourceMappingURL=apitracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apitracker.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/apitracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,CA6BrE"}
@@ -0,0 +1,7 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ /**
3
+ * Default processor for registry server data
4
+ * Handles common formats that might be encountered
5
+ */
6
+ export declare function processDefaultServers(data: unknown): ServerEntry[];
7
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,CAgClE"}
@@ -0,0 +1,7 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ /**
3
+ * Post-processor for Docker MCP Hub registry
4
+ * Transforms Docker Hub API response into standardized ServerEntry format
5
+ */
6
+ export declare function processDockerServers(data: unknown): ServerEntry[];
7
+ //# sourceMappingURL=docker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/docker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,CAqCjE"}
@@ -0,0 +1,7 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ /**
3
+ * Post-processor for Fleur registry
4
+ * Handles the specific format of Fleur's app data
5
+ */
6
+ export declare function processFleurServers(data: unknown): ServerEntry[];
7
+ //# sourceMappingURL=fleur.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleur.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/fleur.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,CAwBhE"}
@@ -0,0 +1,3 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ export declare function processMcpRunServers(data: any): ServerEntry[];
3
+ //# sourceMappingURL=mcprun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcprun.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/mcprun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,EAAE,CAoB7D"}
@@ -0,0 +1,7 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ /**
3
+ * Post-processor for Pulse MCP registry
4
+ * Handles the specific format of Pulse MCP's server data
5
+ */
6
+ export declare function processPulseMcpServers(data: any): ServerEntry[];
7
+ //# sourceMappingURL=pulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/pulse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,EAAE,CA0B/D"}
@@ -0,0 +1,3 @@
1
+ import type { ServerEntry } from '../types.js';
2
+ export declare function createServerEntry(data: Record<string, unknown>): ServerEntry;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/registry/processors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAc5E"}
@@ -0,0 +1,3 @@
1
+ import type { RegistryFile } from './types.js';
2
+ export declare const registryData: RegistryFile;
3
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,eAAO,MAAM,YAAY,EAAE,YA0O1B,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ export declare const ServerEntrySchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ name: z.ZodString;
5
+ description: z.ZodString;
6
+ createdAt: z.ZodString;
7
+ updatedAt: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ id: string;
10
+ name: string;
11
+ description: string;
12
+ createdAt: string;
13
+ updatedAt: string;
14
+ }, {
15
+ id: string;
16
+ name: string;
17
+ description: string;
18
+ createdAt: string;
19
+ updatedAt: string;
20
+ }>;
21
+ export type ServerEntry = z.infer<typeof ServerEntrySchema>;
22
+ export interface RegistryEntry {
23
+ id: string;
24
+ name: string;
25
+ description: string;
26
+ url: string;
27
+ servers_url?: string;
28
+ tags?: string[];
29
+ count?: number | string;
30
+ postProcessServers?: (data: unknown) => ServerEntry[];
31
+ }
32
+ export interface RegistryFile {
33
+ registries: RegistryEntry[];
34
+ }
35
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B"}
@@ -0,0 +1,27 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ declare const server: Server<{
3
+ method: string;
4
+ params?: {
5
+ [x: string]: unknown;
6
+ _meta?: {
7
+ [x: string]: unknown;
8
+ progressToken?: string | number | undefined;
9
+ } | undefined;
10
+ } | undefined;
11
+ }, {
12
+ method: string;
13
+ params?: {
14
+ [x: string]: unknown;
15
+ _meta?: {
16
+ [x: string]: unknown;
17
+ } | undefined;
18
+ } | undefined;
19
+ }, {
20
+ [x: string]: unknown;
21
+ _meta?: {
22
+ [x: string]: unknown;
23
+ } | undefined;
24
+ }>;
25
+ declare function runServer(): Promise<void>;
26
+ export { runServer, server };
27
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAUnE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;EAUX,CAAC;AAgEF,iBAAe,SAAS,kBAIvB;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC"}
package/dist/stdio.d.ts CHANGED
@@ -1 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
3
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":""}
package/dist/stdio.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { registryData } from './chunk-P64PLYDJ.js';
3
- import fs from 'node:fs/promises';
2
+ import { registryData } from './chunk-SNTSCAS2.js';
3
+ import fs from 'fs/promises';
4
4
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
5
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
6
6
  import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
7
7
  import { z } from 'zod';
8
8
  import { zodToJsonSchema } from 'zod-to-json-schema';
9
- import path from 'node:path';
10
- import { fileURLToPath } from 'node:url';
9
+ import path from 'path';
10
+ import { fileURLToPath } from 'url';
11
11
 
12
12
  var RegistryEntrySchema = z.object({
13
13
  id: z.string(),
@@ -296,3 +296,5 @@ runServer().catch((error) => {
296
296
  console.error("Failed to start server:", error);
297
297
  process.exit(1);
298
298
  });
299
+ //# sourceMappingURL=stdio.js.map
300
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/registry/list-registries.ts","../src/tools/list.ts","../src/registry/fetch-servers.ts","../src/tools/servers.ts","../src/utils.ts","../src/server.ts","../src/stdio.ts"],"names":["registryData","z","server"],"mappings":"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","file":"stdio.js","sourcesContent":["import { z } from 'zod';\nimport { registryData } from './registry';\nimport type { RegistryEntry, RegistryFile } from './types';\n\n// Define the schema for registry entries for validation\nconst RegistryEntrySchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n url: z.string().url(),\n servers_url: z.string().url().optional(),\n tags: z.array(z.string()).optional(),\n count: z.union([z.number(), z.string()]).optional(),\n});\n\n// Define the schema for the registry file for validation\nconst RegistryFileSchema = z.object({\n registries: z.array(RegistryEntrySchema),\n});\n\n/**\n * Returns the registry data from the registry.ts file\n */\nexport async function loadRegistryData(): Promise<RegistryFile> {\n try {\n // Validate the registry data against our schema\n return RegistryFileSchema.parse(registryData);\n } catch (error) {\n console.error('Error loading registry data:', error);\n return { registries: [] };\n }\n}\n\n/**\n * Filters registry entries based on provided criteria\n */\nexport function filterRegistries(\n registries: RegistryEntry[],\n filters: {\n id?: string;\n tag?: string;\n name?: string;\n },\n): RegistryEntry[] {\n let filteredRegistries = [...registries];\n\n if (filters.id) {\n filteredRegistries = filteredRegistries.filter(registry => registry.id === filters.id);\n }\n\n if (filters.tag) {\n filteredRegistries = filteredRegistries.filter(registry => registry.tags?.includes(filters.tag!));\n }\n\n if (filters.name) {\n const searchTerm = filters.name.toLowerCase();\n filteredRegistries = filteredRegistries.filter(registry => registry.name.toLowerCase().includes(searchTerm));\n }\n\n return filteredRegistries;\n}\n\n/**\n * Formats registry entries for API response\n */\nexport function formatRegistryResponse(registries: RegistryEntry[], detailed: boolean = false): any {\n if (registries.length === 0) {\n return {\n count: 0,\n registries: [],\n };\n }\n\n if (detailed) {\n return {\n count: registries.length,\n registries: registries.map(registry => ({\n id: registry.id,\n name: registry.name,\n description: registry.description,\n url: registry.url,\n servers_url: registry.servers_url,\n tags: registry.tags || [],\n count: registry.count,\n })),\n };\n }\n\n return {\n count: registries.length,\n registries: registries.map(registry => ({\n id: registry.id,\n name: registry.name,\n description: registry.description,\n })),\n };\n}\n\n/**\n * Main function to get registry listings with optional filtering\n */\nexport async function getRegistryListings(\n filters: {\n id?: string;\n tag?: string;\n name?: string;\n } = {},\n options: {\n detailed?: boolean;\n } = {},\n): Promise<any> {\n try {\n const registryData = await loadRegistryData();\n const filteredRegistries = filterRegistries(registryData.registries, filters);\n return formatRegistryResponse(filteredRegistries, options.detailed);\n } catch (error) {\n console.error('Error getting registry listings:', error);\n throw error;\n }\n}\n","import { z } from 'zod';\nimport { getRegistryListings } from '../registry/list-registries';\n\n// Define the input schema for the registry listing tool\nexport const listInputSchema = z.object({\n id: z.string().optional(),\n tag: z.string().optional(),\n name: z.string().optional(),\n detailed: z.boolean().optional().default(false),\n});\n\nexport type ListToolInput = z.infer<typeof listInputSchema>;\n\n// Define the registry listing tool\nexport const listTool = {\n name: 'registryList',\n description: 'List available MCP registries. Can filter by ID, tag, or name and provide detailed or summary views.',\n async execute(input: ListToolInput) {\n try {\n const result = await getRegistryListings(\n {\n id: input.id,\n tag: input.tag,\n name: input.name,\n },\n {\n detailed: input.detailed,\n },\n );\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Error listing registries: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n },\n};\n","import { registryData } from './registry';\nimport type { ServerEntry } from './types';\n\n/**\n * Fetches servers from a registry's servers_url endpoint\n */\nexport async function fetchServersFromRegistry(registryId: string): Promise<ServerEntry[]> {\n try {\n // Find the registry in our registry data\n const registry = registryData.registries.find(r => r.id === registryId);\n\n if (!registry) {\n throw new Error(`Registry with ID \"${registryId}\" not found.`);\n }\n\n if (!registry.servers_url) {\n throw new Error(`Registry \"${registry.name}\" does not have a servers endpoint.`);\n }\n\n console.log(`Fetching servers from ${registry.name} at ${registry.servers_url}`);\n\n // Fetch the servers from the registry's servers_url\n const response = await fetch(registry.servers_url);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch servers from ${registry.servers_url}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as unknown;\n\n // If the registry has a custom post-processing function, use it\n if (registry.postProcessServers) {\n console.log(`Using custom post-processor for ${registry.name}`);\n return registry.postProcessServers(data);\n }\n\n throw new Error(`No post-processor found for registry ${registry.name}`);\n } catch (error) {\n console.error('Error fetching servers:', error);\n throw error;\n }\n}\n\n/**\n * Filters server entries based on provided criteria\n */\nexport function filterServers(\n servers: ServerEntry[],\n filters: {\n tag?: string;\n search?: string;\n },\n): ServerEntry[] {\n let filteredServers = [...servers];\n\n if (filters.search) {\n const searchTerm = filters.search.toLowerCase();\n filteredServers = filteredServers.filter(\n server => server.name.toLowerCase().includes(searchTerm) || server.description.toLowerCase().includes(searchTerm),\n );\n }\n\n return filteredServers;\n}\n\n/**\n * Main function to get servers from a registry with optional filtering\n */\nexport async function getServersFromRegistry(\n registryId: string,\n filters: {\n tag?: string;\n search?: string;\n } = {},\n): Promise<any> {\n try {\n const servers = await fetchServersFromRegistry(registryId);\n return filterServers(servers, filters);\n } catch (error) {\n console.error('Error getting servers from registry:', error);\n throw error;\n }\n}\n","import { z } from 'zod';\nimport { getServersFromRegistry } from '../registry/fetch-servers';\n\n// Define the input schema for the servers tool\nexport const serversInputSchema = z.object({\n registryId: z.string(),\n tag: z.string().optional(),\n search: z.string().optional(),\n});\n\nexport type ServersToolInput = z.infer<typeof serversInputSchema>;\n\n// Define the servers tool\nexport const serversTool = {\n name: 'registryServers',\n description: 'Get servers from a specific MCP registry. Can filter by tag or search term.',\n async execute(input: ServersToolInput) {\n try {\n const result = await getServersFromRegistry(input.registryId, {\n tag: input.tag,\n search: input.search,\n });\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n } catch (error) {\n return {\n content: [\n {\n type: 'text',\n text: `Error fetching servers: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n },\n};\n","import path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function fromPackageRoot(relativePath: string): string {\n return path.resolve(__dirname, '..', relativePath);\n}\n","import fs from 'node:fs/promises';\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\n\nimport { listTool, listInputSchema } from './tools/list';\nimport { serversTool, serversInputSchema } from './tools/servers';\nimport { fromPackageRoot } from './utils';\n\nconst server = new Server(\n {\n name: 'Registry Registry Server',\n version: JSON.parse(await fs.readFile(fromPackageRoot(`package.json`), 'utf8')).version,\n },\n {\n capabilities: {\n tools: {},\n },\n },\n);\n\n// Set up request handlers\nserver.setRequestHandler(ListToolsRequestSchema, async () => ({\n tools: [\n {\n name: 'registryList',\n description: listTool.description,\n inputSchema: zodToJsonSchema(listInputSchema),\n },\n {\n name: 'registryServers',\n description: serversTool.description,\n inputSchema: zodToJsonSchema(serversInputSchema),\n },\n ],\n}));\n\nserver.setRequestHandler(CallToolRequestSchema, async request => {\n try {\n switch (request.params.name) {\n case 'registryList': {\n const args = listInputSchema.parse(request.params.arguments);\n return await listTool.execute(args);\n }\n case 'registryServers': {\n const args = serversInputSchema.parse(request.params.arguments);\n return await serversTool.execute(args);\n }\n default:\n return {\n content: [\n {\n type: 'text',\n text: `Unknown tool: ${request.params.name}`,\n },\n ],\n isError: true,\n };\n }\n } catch (error) {\n if (error instanceof z.ZodError) {\n return {\n content: [\n {\n type: 'text',\n text: `Invalid arguments: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`,\n },\n ],\n isError: true,\n };\n }\n return {\n content: [\n {\n type: 'text',\n text: `Error: ${error instanceof Error ? error.message : String(error)}`,\n },\n ],\n isError: true,\n };\n }\n});\n\nasync function runServer() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error('Registry Registry MCP Server running on stdio');\n}\n\nexport { runServer, server };\n","#!/usr/bin/env node\nimport { runServer } from './server.js';\n\nrunServer().catch(error => {\n console.error('Failed to start server:', error);\n process.exit(1);\n});\n"]}
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ export declare const listInputSchema: z.ZodObject<{
3
+ id: z.ZodOptional<z.ZodString>;
4
+ tag: z.ZodOptional<z.ZodString>;
5
+ name: z.ZodOptional<z.ZodString>;
6
+ detailed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ detailed: boolean;
9
+ id?: string | undefined;
10
+ name?: string | undefined;
11
+ tag?: string | undefined;
12
+ }, {
13
+ id?: string | undefined;
14
+ name?: string | undefined;
15
+ tag?: string | undefined;
16
+ detailed?: boolean | undefined;
17
+ }>;
18
+ export type ListToolInput = z.infer<typeof listInputSchema>;
19
+ export declare const listTool: {
20
+ name: string;
21
+ description: string;
22
+ execute(input: ListToolInput): Promise<{
23
+ content: {
24
+ type: string;
25
+ text: string;
26
+ }[];
27
+ isError?: undefined;
28
+ } | {
29
+ content: {
30
+ type: string;
31
+ text: string;
32
+ }[];
33
+ isError: boolean;
34
+ }>;
35
+ };
36
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/tools/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAG5D,eAAO,MAAM,QAAQ;;;mBAGE,aAAa;;;;;;;;;;;;;CAiCnC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ export declare const serversInputSchema: z.ZodObject<{
3
+ registryId: z.ZodString;
4
+ tag: z.ZodOptional<z.ZodString>;
5
+ search: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ registryId: string;
8
+ tag?: string | undefined;
9
+ search?: string | undefined;
10
+ }, {
11
+ registryId: string;
12
+ tag?: string | undefined;
13
+ search?: string | undefined;
14
+ }>;
15
+ export type ServersToolInput = z.infer<typeof serversInputSchema>;
16
+ export declare const serversTool: {
17
+ name: string;
18
+ description: string;
19
+ execute(input: ServersToolInput): Promise<{
20
+ content: {
21
+ type: string;
22
+ text: string;
23
+ }[];
24
+ isError?: undefined;
25
+ } | {
26
+ content: {
27
+ type: string;
28
+ text: string;
29
+ }[];
30
+ isError: boolean;
31
+ }>;
32
+ };
33
+ //# sourceMappingURL=servers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/tools/servers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAGlE,eAAO,MAAM,WAAW;;;mBAGD,gBAAgB;;;;;;;;;;;;;CA2BtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function fromPackageRoot(relativePath: string): string;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/mcp-registry-registry",
3
- "version": "0.0.0-switch-to-core-20250424015131",
3
+ "version": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745",
4
4
  "description": "MCP server for registry registry services.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -21,31 +21,35 @@
21
21
  },
22
22
  "keywords": [],
23
23
  "author": "",
24
- "license": "Elastic-2.0",
24
+ "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@modelcontextprotocol/sdk": "^1.9.0",
26
+ "@modelcontextprotocol/sdk": "^1.13.0",
27
27
  "uuid": "^11.1.0",
28
- "zod": "^3.22.4",
29
- "zod-to-json-schema": "^3.22.4",
30
- "@mastra/core": "0.0.0-switch-to-core-20250424015131"
28
+ "zod": "^3.25.67",
29
+ "zod-to-json-schema": "^3.24.5"
31
30
  },
32
31
  "devDependencies": {
33
- "@hono/node-server": "^1.13.8",
34
- "@types/node": "^20.11.24",
35
- "@wong2/mcp-cli": "^1.6.0",
32
+ "@hono/node-server": "^1.17.1",
33
+ "@types/node": "^20.19.0",
34
+ "@wong2/mcp-cli": "^1.10.0",
36
35
  "cross-env": "^7.0.3",
37
- "eslint": "^9.23.0",
38
- "hono": "^4.7.4",
39
- "tsup": "^8.4.0",
40
- "tsx": "^4.19.3",
41
- "typescript": "^5.3.3",
42
- "vitest": "^3.0.9",
43
- "@mastra/mcp": "0.0.0-switch-to-core-20250424015131",
44
- "@internal/lint": "0.0.2"
36
+ "eslint": "^9.30.1",
37
+ "hono": "^4.8.12",
38
+ "tsup": "^8.5.0",
39
+ "tsx": "^4.20.3",
40
+ "typescript": "^5.8.3",
41
+ "vitest": "^3.2.4",
42
+ "@internal/lint": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745",
43
+ "@mastra/core": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745",
44
+ "@mastra/mcp": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745",
45
+ "@internal/types-builder": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745"
46
+ },
47
+ "peerDependencies": {
48
+ "@mastra/core": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806162745"
45
49
  },
46
50
  "scripts": {
47
- "build": "tsup src/index.ts src/stdio.ts --format esm --experimental-dts --treeshake=smallest --splitting",
48
- "build:cli": "tsup src/stdio.ts --format esm --experimental-dts --treeshake=smallest --splitting",
51
+ "build": "tsup --silent --config tsup.config.ts",
52
+ "build:cli": "tsup src/stdio.ts --format esm --no-dts --treeshake=smallest --splitting && tsc -p tsconfig.build.json",
49
53
  "pretest": "pnpm turbo build --filter @mastra/mcp-registry-registry",
50
54
  "test": "vitest run",
51
55
  "lint": "eslint ."
@@ -1,243 +0,0 @@
1
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
- import { z } from 'zod';
3
-
4
- export declare function createServerEntry(data: Record<string, unknown>): ServerEntry;
5
-
6
- /**
7
- * Fetches servers from a registry's servers_url endpoint
8
- */
9
- declare function fetchServersFromRegistry(registryId: string): Promise<ServerEntry[]>;
10
- export { fetchServersFromRegistry }
11
- export { fetchServersFromRegistry as fetchServersFromRegistry_alias_1 }
12
-
13
- /**
14
- * Filters registry entries based on provided criteria
15
- */
16
- declare function filterRegistries(registries: RegistryEntry[], filters: {
17
- id?: string;
18
- tag?: string;
19
- name?: string;
20
- }): RegistryEntry[];
21
- export { filterRegistries }
22
- export { filterRegistries as filterRegistries_alias_1 }
23
-
24
- /**
25
- * Filters server entries based on provided criteria
26
- */
27
- declare function filterServers(servers: ServerEntry[], filters: {
28
- tag?: string;
29
- search?: string;
30
- }): ServerEntry[];
31
- export { filterServers }
32
- export { filterServers as filterServers_alias_1 }
33
-
34
- /**
35
- * Formats registry entries for API response
36
- */
37
- declare function formatRegistryResponse(registries: RegistryEntry[], detailed?: boolean): any;
38
- export { formatRegistryResponse }
39
- export { formatRegistryResponse as formatRegistryResponse_alias_1 }
40
-
41
- export declare function fromPackageRoot(relativePath: string): string;
42
-
43
- /**
44
- * Main function to get registry listings with optional filtering
45
- */
46
- declare function getRegistryListings(filters?: {
47
- id?: string;
48
- tag?: string;
49
- name?: string;
50
- }, options?: {
51
- detailed?: boolean;
52
- }): Promise<any>;
53
- export { getRegistryListings }
54
- export { getRegistryListings as getRegistryListings_alias_1 }
55
-
56
- /**
57
- * Main function to get servers from a registry with optional filtering
58
- */
59
- declare function getServersFromRegistry(registryId: string, filters?: {
60
- tag?: string;
61
- search?: string;
62
- }): Promise<any>;
63
- export { getServersFromRegistry }
64
- export { getServersFromRegistry as getServersFromRegistry_alias_1 }
65
-
66
- export declare const listInputSchema: z.ZodObject<{
67
- id: z.ZodOptional<z.ZodString>;
68
- tag: z.ZodOptional<z.ZodString>;
69
- name: z.ZodOptional<z.ZodString>;
70
- detailed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
71
- }, "strip", z.ZodTypeAny, {
72
- detailed: boolean;
73
- id?: string | undefined;
74
- name?: string | undefined;
75
- tag?: string | undefined;
76
- }, {
77
- id?: string | undefined;
78
- name?: string | undefined;
79
- tag?: string | undefined;
80
- detailed?: boolean | undefined;
81
- }>;
82
-
83
- export declare const listTool: {
84
- name: string;
85
- description: string;
86
- execute(input: ListToolInput): Promise<{
87
- content: {
88
- type: string;
89
- text: string;
90
- }[];
91
- isError?: undefined;
92
- } | {
93
- content: {
94
- type: string;
95
- text: string;
96
- }[];
97
- isError: boolean;
98
- }>;
99
- };
100
-
101
- export declare type ListToolInput = z.infer<typeof listInputSchema>;
102
-
103
- /**
104
- * Returns the registry data from the registry.ts file
105
- */
106
- declare function loadRegistryData(): Promise<RegistryFile>;
107
- export { loadRegistryData }
108
- export { loadRegistryData as loadRegistryData_alias_1 }
109
-
110
- /**
111
- * Post-processor for Apify registry
112
- * Handles the specific format of Apify's store data
113
- */
114
- export declare function processApifyServers(data: any): ServerEntry[];
115
-
116
- /**
117
- * Post-processor for APITracker registry
118
- * Handles the specific format of APITracker's server data
119
- */
120
- export declare function processApiTrackerServers(data: unknown): ServerEntry[];
121
-
122
- /**
123
- * Default processor for registry server data
124
- * Handles common formats that might be encountered
125
- */
126
- export declare function processDefaultServers(data: unknown): ServerEntry[];
127
-
128
- /**
129
- * Post-processor for Fleur registry
130
- * Handles the specific format of Fleur's app data
131
- */
132
- export declare function processFleurServers(data: unknown): ServerEntry[];
133
-
134
- export declare function processMcpRunServers(data: any): ServerEntry[];
135
-
136
- /**
137
- * Post-processor for Pulse MCP registry
138
- * Handles the specific format of Pulse MCP's server data
139
- */
140
- export declare function processPulseMcpServers(data: any): ServerEntry[];
141
-
142
- declare const registryData: RegistryFile;
143
- export { registryData }
144
- export { registryData as registryData_alias_1 }
145
-
146
- export declare interface RegistryEntry {
147
- id: string;
148
- name: string;
149
- description: string;
150
- url: string;
151
- servers_url?: string;
152
- tags?: string[];
153
- count?: number | string;
154
- postProcessServers?: (data: unknown) => ServerEntry[];
155
- }
156
-
157
- export declare interface RegistryFile {
158
- registries: RegistryEntry[];
159
- }
160
-
161
- export declare function runServer(): Promise<void>;
162
-
163
- export declare const server: Server<{
164
- method: string;
165
- params?: {
166
- [x: string]: unknown;
167
- _meta?: {
168
- [x: string]: unknown;
169
- progressToken?: string | number | undefined;
170
- } | undefined;
171
- } | undefined;
172
- }, {
173
- method: string;
174
- params?: {
175
- [x: string]: unknown;
176
- _meta?: {
177
- [x: string]: unknown;
178
- } | undefined;
179
- } | undefined;
180
- }, {
181
- [x: string]: unknown;
182
- _meta?: {
183
- [x: string]: unknown;
184
- } | undefined;
185
- }>;
186
-
187
- export declare type ServerEntry = z.infer<typeof ServerEntrySchema>;
188
-
189
- export declare const ServerEntrySchema: z.ZodObject<{
190
- id: z.ZodString;
191
- name: z.ZodString;
192
- description: z.ZodString;
193
- createdAt: z.ZodString;
194
- updatedAt: z.ZodString;
195
- }, "strip", z.ZodTypeAny, {
196
- id: string;
197
- name: string;
198
- description: string;
199
- createdAt: string;
200
- updatedAt: string;
201
- }, {
202
- id: string;
203
- name: string;
204
- description: string;
205
- createdAt: string;
206
- updatedAt: string;
207
- }>;
208
-
209
- export declare const serversInputSchema: z.ZodObject<{
210
- registryId: z.ZodString;
211
- tag: z.ZodOptional<z.ZodString>;
212
- search: z.ZodOptional<z.ZodString>;
213
- }, "strip", z.ZodTypeAny, {
214
- registryId: string;
215
- tag?: string | undefined;
216
- search?: string | undefined;
217
- }, {
218
- registryId: string;
219
- tag?: string | undefined;
220
- search?: string | undefined;
221
- }>;
222
-
223
- export declare const serversTool: {
224
- name: string;
225
- description: string;
226
- execute(input: ServersToolInput): Promise<{
227
- content: {
228
- type: string;
229
- text: string;
230
- }[];
231
- isError?: undefined;
232
- } | {
233
- content: {
234
- type: string;
235
- text: string;
236
- }[];
237
- isError: boolean;
238
- }>;
239
- };
240
-
241
- export declare type ServersToolInput = z.infer<typeof serversInputSchema>;
242
-
243
- export { }