@toolsdk.ai/registry 1.0.121 → 1.0.123

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
@@ -1,13 +1,13 @@
1
1
  <div align="center">
2
2
 
3
- # Awesome MCP Registry
3
+ # ToolSDK MCP Registry
4
4
 
5
5
  **Your private, secure, and customizable MCP Registry — take full control of your tools.**
6
6
 
7
7
  [![Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=997428&theme=light&period=daily)](https://www.producthunt.com/products/toolsdk-ai)
8
8
 
9
- ![How many MCP Servers in Awesome MCP Registry](https://img.shields.io/badge/MCP_Servers-4108-blue)
10
- ![awesome-mcp-registry License](https://img.shields.io/badge/LICENSE-MIT-ff69b4)
9
+ ![How many MCP Servers in ToolSDK MCP Registry](https://img.shields.io/badge/MCP_Servers-4108-blue)
10
+ ![toolsdk-mcp-registry License](https://img.shields.io/badge/LICENSE-MIT-ff69b4)
11
11
 
12
12
  🚀 **Open-source**, **production-ready**, and **developer-friendly** registry for 4108+ Model Context Protocol (MCP) servers, plugins, and AI agent tools.
13
13
 
@@ -17,9 +17,9 @@ Perfect for **AI automation**, **chatbot development**, **LLM integrations**, an
17
17
 
18
18
  </div>
19
19
 
20
- ## 🌟 Why Awesome MCP Registry?
20
+ ## 🌟 Why ToolSDK MCP Registry?
21
21
 
22
- **Awesome MCP Registry** is the most comprehensive, self-hosted registry for Model Context Protocol (MCP) servers and AI agent tools. Built for developers, teams, and enterprises who need full control over their AI infrastructure.
22
+ **ToolSDK MCP Registry** is the most comprehensive, self-hosted registry for Model Context Protocol (MCP) servers and AI agent tools. Built for developers, teams, and enterprises who need full control over their AI infrastructure.
23
23
 
24
24
  ### 🎯 Key Features
25
25
 
@@ -55,7 +55,7 @@ This open-source registry provides:
55
55
 
56
56
  - 📄 `README.md` - Human-readable documentation
57
57
  - 📦 [npm package](https://www.npmjs.com/package/@toolsdk.ai/registry) - TypeScript/JavaScript SDK
58
- - 🔗 [packages-list.json](https://toolsdk-ai.github.io/awesome-mcp-registry/indexes/packages-list.json) - Raw data API
58
+ - 🔗 [packages-list.json](https://toolsdk-ai.github.io/toolsdk-mcp-registry/indexes/packages-list.json) - Raw data API
59
59
 
60
60
  ---
61
61
 
@@ -68,7 +68,7 @@ This open-source registry provides:
68
68
  - [📄 Submit New MCP Servers](#submit-new-mcp-servers)
69
69
  - [📖 Development Guide](./docs/DEVELOPMENT.md)
70
70
  - [🤝 Contributing Guide](./docs/guide.md)
71
- - [⭐ Awesome MCP Servers](#mcp-servers)
71
+ - [⭐ ToolSDK MCP Servers](#mcp-servers)
72
72
 
73
73
  - [Uncategorized](#uncategorized)
74
74
  - [Aggregators](#aggregators)
@@ -148,7 +148,7 @@ curl -X POST http://localhost:3003/api/v1/packages/run \
148
148
  "packageName": "@modelcontextprotocol/server-everything",
149
149
  "toolKey": "echo",
150
150
  "inputData": {
151
- "message": "Hello from Awesome MCP Registry!"
151
+ "message": "Hello from ToolSDK MCP Registry!"
152
152
  },
153
153
  "envs": {}
154
154
  }'
@@ -185,13 +185,13 @@ import mcpServerLists from '@toolsdk.ai/registry/indexes/packages-lists.json';
185
185
  Fetch the complete MCP server registry programmatically - ideal for AI applications, integrations, and automation:
186
186
 
187
187
  ```bash
188
- curl https://toolsdk-ai.github.io/awesome-mcp-registry/indexes/packages-list.json
188
+ curl https://toolsdk-ai.github.io/toolsdk-mcp-registry/indexes/packages-list.json
189
189
  ```
190
190
 
191
191
  ```ts
192
192
  // JavaScript/TypeScript - Fetch API
193
193
  const mcpServers = await (
194
- await fetch('https://toolsdk-ai.github.io/awesome-mcp-registry/indexes/packages-list.json')
194
+ await fetch('https://toolsdk-ai.github.io/toolsdk-mcp-registry/indexes/packages-list.json')
195
195
  ).json();
196
196
 
197
197
  // Use for AI agent tool discovery, LLM integrations, etc.
@@ -203,7 +203,7 @@ console.log(mcpServers);
203
203
  import requests
204
204
 
205
205
  mcp_servers = requests.get(
206
- 'https://toolsdk-ai.github.io/awesome-mcp-registry/indexes/packages-list.json'
206
+ 'https://toolsdk-ai.github.io/toolsdk-mcp-registry/indexes/packages-list.json'
207
207
  ).json()
208
208
 
209
209
  # Perfect for LangChain, CrewAI, AutoGen integrations
@@ -239,7 +239,7 @@ Help grow the world's largest open-source MCP registry! Share your AI tools, plu
239
239
 
240
240
  **2. Submit via Pull Request**
241
241
 
242
- - [Fork this repository](https://github.com/toolsdk-ai/awesome-mcp-registry/fork)
242
+ - [Fork this repository](https://github.com/toolsdk-ai/toolsdk-mcp-registry/fork)
243
243
  - Create `your-mcp-server.json` in [packages/uncategorized](./packages/uncategorized)
244
244
  - Submit a PR and join 4108+ MCP servers!
245
245
 
@@ -5,5 +5,13 @@ import type { ToolExecutor } from "./executor-types";
5
5
  * Creates appropriate executor based on sandbox provider configuration
6
6
  */
7
7
  export declare class ExecutorFactory {
8
- static create(provider: MCPSandboxProvider): ToolExecutor;
8
+ /**
9
+ * Validate if the provided sandbox provider is valid
10
+ */
11
+ private static isValidProvider;
12
+ /**
13
+ * Create executor with optional provider override
14
+ * If sandboxProvider is provided, it takes priority over environment config
15
+ */
16
+ static create(overrideProvider?: MCPSandboxProvider): ToolExecutor;
9
17
  }
@@ -1,3 +1,5 @@
1
+ import { getSandboxProvider } from "../../shared/config/environment";
2
+ import { VALID_SANDBOX_PROVIDERS } from "../sandbox/sandbox-types";
1
3
  import { LocalExecutor } from "./local-executor";
2
4
  import { SandboxExecutor } from "./sandbox-executor";
3
5
  /**
@@ -6,7 +8,20 @@ import { SandboxExecutor } from "./sandbox-executor";
6
8
  */
7
9
  // biome-ignore lint/complexity/noStaticOnlyClass: Factory pattern
8
10
  export class ExecutorFactory {
9
- static create(provider) {
11
+ /**
12
+ * Validate if the provided sandbox provider is valid
13
+ */
14
+ static isValidProvider(provider) {
15
+ return VALID_SANDBOX_PROVIDERS.includes(provider);
16
+ }
17
+ /**
18
+ * Create executor with optional provider override
19
+ * If sandboxProvider is provided, it takes priority over environment config
20
+ */
21
+ static create(overrideProvider) {
22
+ const provider = ExecutorFactory.isValidProvider(overrideProvider)
23
+ ? overrideProvider
24
+ : getSandboxProvider();
10
25
  if (provider === "LOCAL") {
11
26
  console.log("[ExecutorFactory] Creating LocalExecutor");
12
27
  return new LocalExecutor();
@@ -1,9 +1,11 @@
1
1
  import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { MCPSandboxProvider } from "../sandbox/sandbox-types";
2
3
  export interface ToolExecuteRequest {
3
4
  packageName: string;
4
5
  toolKey: string;
5
6
  inputData: Record<string, unknown>;
6
7
  envs?: Record<string, string>;
8
+ sandboxProvider?: MCPSandboxProvider;
7
9
  }
8
10
  /**
9
11
  * Tool Executor Interface
@@ -11,5 +13,5 @@ export interface ToolExecuteRequest {
11
13
  */
12
14
  export interface ToolExecutor {
13
15
  executeTool(request: ToolExecuteRequest): Promise<unknown>;
14
- listTools(packageName: string): Promise<Tool[]>;
16
+ listTools(packageName: string, sandboxProvider?: MCPSandboxProvider): Promise<Tool[]>;
15
17
  }
@@ -1,15 +1,16 @@
1
+ import type { MCPSandboxProvider } from "../sandbox/sandbox-types";
1
2
  export declare const packageHandler: {
2
- getPackageDetail: (packageName: string) => Promise<{
3
+ getPackageDetail: (packageName: string, sandboxProvider?: MCPSandboxProvider) => Promise<{
3
4
  success: boolean;
4
5
  code: number;
5
6
  message: string;
6
7
  }>;
7
- executeTool: (packageName: string, toolKey: string, inputData: Record<string, unknown>, envs?: Record<string, string>) => Promise<{
8
+ executeTool: (packageName: string, toolKey: string, inputData: Record<string, unknown>, envs?: Record<string, string>, sandboxProvider?: MCPSandboxProvider) => Promise<{
8
9
  success: boolean;
9
10
  code: number;
10
11
  message: string;
11
12
  }>;
12
- listTools: (packageName: string) => Promise<{
13
+ listTools: (packageName: string, sandboxProvider?: MCPSandboxProvider) => Promise<{
13
14
  success: boolean;
14
15
  code: number;
15
16
  message: string;
@@ -1,5 +1,4 @@
1
1
  import path from "node:path";
2
- import { getSandboxProvider } from "../../shared/config/environment";
3
2
  import { getDirname } from "../../shared/utils/file-util";
4
3
  import { createErrorResponse, createResponse } from "../../shared/utils/response-util";
5
4
  import { ExecutorFactory } from "../executor/executor-factory";
@@ -8,10 +7,10 @@ import { PackageSO } from "./package-so";
8
7
  const __dirname = getDirname(import.meta.url);
9
8
  const packagesDir = path.join(__dirname, "../../../packages");
10
9
  const repository = new PackageRepository(packagesDir);
11
- const executor = ExecutorFactory.create(getSandboxProvider());
12
10
  export const packageHandler = {
13
- getPackageDetail: async (packageName) => {
11
+ getPackageDetail: async (packageName, sandboxProvider) => {
14
12
  try {
13
+ const executor = ExecutorFactory.create(sandboxProvider);
15
14
  const packageSO = await PackageSO.init(packageName, repository, executor);
16
15
  const result = await packageSO.getDetailWithTools();
17
16
  return createResponse(result);
@@ -23,8 +22,9 @@ export const packageHandler = {
23
22
  throw error;
24
23
  }
25
24
  },
26
- executeTool: async (packageName, toolKey, inputData, envs) => {
25
+ executeTool: async (packageName, toolKey, inputData, envs, sandboxProvider) => {
27
26
  try {
27
+ const executor = ExecutorFactory.create(sandboxProvider);
28
28
  const packageSO = await PackageSO.init(packageName, repository, executor);
29
29
  const result = await packageSO.executeTool(toolKey, inputData, envs);
30
30
  return createResponse(result);
@@ -42,8 +42,9 @@ export const packageHandler = {
42
42
  throw error;
43
43
  }
44
44
  },
45
- listTools: async (packageName) => {
45
+ listTools: async (packageName, sandboxProvider) => {
46
46
  try {
47
+ const executor = ExecutorFactory.create(sandboxProvider);
47
48
  const packageSO = await PackageSO.init(packageName, repository, executor);
48
49
  const tools = await packageSO.getTools();
49
50
  return createResponse(tools);
@@ -13,8 +13,8 @@ const packageDetailRoute = createRoute({
13
13
  }),
14
14
  });
15
15
  packageRoutes.openapi(packageDetailRoute, async (c) => {
16
- const { packageName } = c.req.valid("query");
17
- const result = await packageHandler.getPackageDetail(packageName);
16
+ const { packageName, sandboxProvider } = c.req.valid("query");
17
+ const result = await packageHandler.getPackageDetail(packageName, sandboxProvider);
18
18
  return c.json(result, 200);
19
19
  });
20
20
  const toolsRoute = createRoute({
@@ -26,8 +26,8 @@ const toolsRoute = createRoute({
26
26
  }),
27
27
  });
28
28
  packageRoutes.openapi(toolsRoute, async (c) => {
29
- const { packageName } = c.req.valid("query");
30
- const result = await packageHandler.listTools(packageName);
29
+ const { packageName, sandboxProvider } = c.req.valid("query");
30
+ const result = await packageHandler.listTools(packageName, sandboxProvider);
31
31
  return c.json(result, 200);
32
32
  });
33
33
  const executeToolRoute = createRoute({
@@ -49,7 +49,7 @@ const executeToolRoute = createRoute({
49
49
  });
50
50
  packageRoutes.openapi(executeToolRoute, async (c) => {
51
51
  const body = c.req.valid("json");
52
- const result = await packageHandler.executeTool(body.packageName, body.toolKey, body.inputData, body.envs);
52
+ const result = await packageHandler.executeTool(body.packageName, body.toolKey, body.inputData, body.envs, body.sandboxProvider);
53
53
  return c.json(result, 200);
54
54
  });
55
55
  const packagesListRoute = createRoute({
@@ -1,26 +1,32 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  export declare const packageNameQuerySchema: z.ZodObject<{
3
3
  packageName: z.ZodString;
4
+ sandboxProvider: z.ZodOptional<z.ZodEnum<["LOCAL", "DAYTONA", "SANDOCK", "E2B"]>>;
4
5
  }, "strip", z.ZodTypeAny, {
5
6
  packageName: string;
7
+ sandboxProvider?: "SANDOCK" | "DAYTONA" | "E2B" | "LOCAL" | undefined;
6
8
  }, {
7
9
  packageName: string;
10
+ sandboxProvider?: "SANDOCK" | "DAYTONA" | "E2B" | "LOCAL" | undefined;
8
11
  }>;
9
12
  export declare const ToolExecuteSchema: z.ZodObject<{
10
13
  packageName: z.ZodString;
11
14
  toolKey: z.ZodString;
12
15
  inputData: z.ZodRecord<z.ZodString, z.ZodUnknown>;
13
16
  envs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
17
+ sandboxProvider: z.ZodOptional<z.ZodEnum<["LOCAL", "DAYTONA", "SANDOCK", "E2B"]>>;
14
18
  }, "strip", z.ZodTypeAny, {
15
19
  packageName: string;
16
20
  toolKey: string;
17
21
  inputData: Record<string, unknown>;
18
22
  envs?: Record<string, string> | undefined;
23
+ sandboxProvider?: "SANDOCK" | "DAYTONA" | "E2B" | "LOCAL" | undefined;
19
24
  }, {
20
25
  packageName: string;
21
26
  toolKey: string;
22
27
  inputData: Record<string, unknown>;
23
28
  envs?: Record<string, string> | undefined;
29
+ sandboxProvider?: "SANDOCK" | "DAYTONA" | "E2B" | "LOCAL" | undefined;
24
30
  }>;
25
31
  export declare const PackageDetailResponseSchema: z.ZodObject<{
26
32
  success: z.ZodBoolean;
@@ -28,12 +34,31 @@ export declare const PackageDetailResponseSchema: z.ZodObject<{
28
34
  message: z.ZodString;
29
35
  } & {
30
36
  data: z.ZodOptional<z.ZodObject<{
31
- name: z.ZodOptional<z.ZodString>;
37
+ type: z.ZodLiteral<"mcp-server">;
38
+ runtime: z.ZodEnum<["node", "python", "java", "go"]>;
32
39
  packageName: z.ZodString;
40
+ packageVersion: z.ZodOptional<z.ZodString>;
41
+ bin: z.ZodOptional<z.ZodString>;
42
+ binArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ key: z.ZodOptional<z.ZodString>;
44
+ name: z.ZodOptional<z.ZodString>;
33
45
  description: z.ZodOptional<z.ZodString>;
34
- category: z.ZodOptional<z.ZodString>;
35
- validated: z.ZodOptional<z.ZodBoolean>;
36
- runtime: z.ZodOptional<z.ZodEnum<["node", "python", "java", "go"]>>;
46
+ readme: z.ZodOptional<z.ZodString>;
47
+ url: z.ZodOptional<z.ZodString>;
48
+ license: z.ZodOptional<z.ZodString>;
49
+ logo: z.ZodOptional<z.ZodString>;
50
+ author: z.ZodOptional<z.ZodString>;
51
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
52
+ description: z.ZodString;
53
+ required: z.ZodBoolean;
54
+ }, "strip", z.ZodTypeAny, {
55
+ description: string;
56
+ required: boolean;
57
+ }, {
58
+ description: string;
59
+ required: boolean;
60
+ }>>>;
61
+ } & {
37
62
  tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
38
63
  name: z.ZodString;
39
64
  description: z.ZodOptional<z.ZodString>;
@@ -68,12 +93,24 @@ export declare const PackageDetailResponseSchema: z.ZodObject<{
68
93
  } | undefined;
69
94
  }>, "many">>;
70
95
  }, "strip", z.ZodTypeAny, {
96
+ type: "mcp-server";
97
+ runtime: "node" | "python" | "java" | "go";
71
98
  packageName: string;
72
99
  description?: string | undefined;
73
100
  name?: string | undefined;
74
- runtime?: "node" | "python" | "java" | "go" | undefined;
75
- category?: string | undefined;
76
- validated?: boolean | undefined;
101
+ key?: string | undefined;
102
+ packageVersion?: string | undefined;
103
+ bin?: string | undefined;
104
+ binArgs?: string[] | undefined;
105
+ readme?: string | undefined;
106
+ url?: string | undefined;
107
+ license?: string | undefined;
108
+ logo?: string | undefined;
109
+ author?: string | undefined;
110
+ env?: Record<string, {
111
+ description: string;
112
+ required: boolean;
113
+ }> | undefined;
77
114
  tools?: {
78
115
  name: string;
79
116
  description?: string | undefined;
@@ -84,12 +121,24 @@ export declare const PackageDetailResponseSchema: z.ZodObject<{
84
121
  } | undefined;
85
122
  }[] | undefined;
86
123
  }, {
124
+ type: "mcp-server";
125
+ runtime: "node" | "python" | "java" | "go";
87
126
  packageName: string;
88
127
  description?: string | undefined;
89
128
  name?: string | undefined;
90
- runtime?: "node" | "python" | "java" | "go" | undefined;
91
- category?: string | undefined;
92
- validated?: boolean | undefined;
129
+ key?: string | undefined;
130
+ packageVersion?: string | undefined;
131
+ bin?: string | undefined;
132
+ binArgs?: string[] | undefined;
133
+ readme?: string | undefined;
134
+ url?: string | undefined;
135
+ license?: string | undefined;
136
+ logo?: string | undefined;
137
+ author?: string | undefined;
138
+ env?: Record<string, {
139
+ description: string;
140
+ required: boolean;
141
+ }> | undefined;
93
142
  tools?: {
94
143
  name: string;
95
144
  description?: string | undefined;
@@ -105,12 +154,24 @@ export declare const PackageDetailResponseSchema: z.ZodObject<{
105
154
  code: number;
106
155
  message: string;
107
156
  data?: {
157
+ type: "mcp-server";
158
+ runtime: "node" | "python" | "java" | "go";
108
159
  packageName: string;
109
160
  description?: string | undefined;
110
161
  name?: string | undefined;
111
- runtime?: "node" | "python" | "java" | "go" | undefined;
112
- category?: string | undefined;
113
- validated?: boolean | undefined;
162
+ key?: string | undefined;
163
+ packageVersion?: string | undefined;
164
+ bin?: string | undefined;
165
+ binArgs?: string[] | undefined;
166
+ readme?: string | undefined;
167
+ url?: string | undefined;
168
+ license?: string | undefined;
169
+ logo?: string | undefined;
170
+ author?: string | undefined;
171
+ env?: Record<string, {
172
+ description: string;
173
+ required: boolean;
174
+ }> | undefined;
114
175
  tools?: {
115
176
  name: string;
116
177
  description?: string | undefined;
@@ -126,12 +187,24 @@ export declare const PackageDetailResponseSchema: z.ZodObject<{
126
187
  code: number;
127
188
  message: string;
128
189
  data?: {
190
+ type: "mcp-server";
191
+ runtime: "node" | "python" | "java" | "go";
129
192
  packageName: string;
130
193
  description?: string | undefined;
131
194
  name?: string | undefined;
132
- runtime?: "node" | "python" | "java" | "go" | undefined;
133
- category?: string | undefined;
134
- validated?: boolean | undefined;
195
+ key?: string | undefined;
196
+ packageVersion?: string | undefined;
197
+ bin?: string | undefined;
198
+ binArgs?: string[] | undefined;
199
+ readme?: string | undefined;
200
+ url?: string | undefined;
201
+ license?: string | undefined;
202
+ logo?: string | undefined;
203
+ author?: string | undefined;
204
+ env?: Record<string, {
205
+ description: string;
206
+ required: boolean;
207
+ }> | undefined;
135
208
  tools?: {
136
209
  name: string;
137
210
  description?: string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { z } from "@hono/zod-openapi";
2
- import { BaseResponseSchema } from "../../shared/schemas/common-schema";
2
+ import { BaseResponseSchema, MCPServerPackageConfigSchema, } from "../../shared/schemas/common-schema";
3
3
  export const packageNameQuerySchema = z.object({
4
4
  packageName: z
5
5
  .string()
@@ -9,6 +9,14 @@ export const packageNameQuerySchema = z.object({
9
9
  example: "@modelcontextprotocol/server-filesystem",
10
10
  description: "Package name",
11
11
  }),
12
+ sandboxProvider: z
13
+ .enum(["LOCAL", "DAYTONA", "SANDOCK", "E2B"])
14
+ .optional()
15
+ .openapi({
16
+ param: { name: "sandboxProvider", in: "query" },
17
+ example: "LOCAL",
18
+ description: "Optional sandbox provider to override default (LOCAL, DAYTONA, SANDOCK, E2B)",
19
+ }),
12
20
  });
13
21
  export const ToolExecuteSchema = z
14
22
  .object({
@@ -16,6 +24,10 @@ export const ToolExecuteSchema = z
16
24
  toolKey: z.string().openapi({ example: "read_file" }),
17
25
  inputData: z.record(z.unknown()).openapi({ example: { path: "/tmp/test.txt" } }),
18
26
  envs: z.record(z.string()).optional(),
27
+ sandboxProvider: z.enum(["LOCAL", "DAYTONA", "SANDOCK", "E2B"]).optional().openapi({
28
+ example: "LOCAL",
29
+ description: "Optional sandbox provider to override default (LOCAL, DAYTONA, SANDOCK, E2B)",
30
+ }),
19
31
  })
20
32
  .openapi("ToolExecute");
21
33
  const ToolDataSchema = z.object({
@@ -29,13 +41,7 @@ const ToolDataSchema = z.object({
29
41
  })
30
42
  .optional(),
31
43
  });
32
- const PackageDetailDataSchema = z.object({
33
- name: z.string().optional(),
34
- packageName: z.string(),
35
- description: z.string().optional(),
36
- category: z.string().optional(),
37
- validated: z.boolean().optional(),
38
- runtime: z.enum(["node", "python", "java", "go"]).optional(),
44
+ const PackageDetailDataSchema = MCPServerPackageConfigSchema.extend({
39
45
  tools: z.array(ToolDataSchema).optional(),
40
46
  });
41
47
  export const PackageDetailResponseSchema = BaseResponseSchema.extend({
@@ -1,6 +1,7 @@
1
1
  import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import type { ToolExecutor } from "../executor/executor-types";
3
3
  import type { PackageRepository } from "./package-repository";
4
+ import type { MCPServerPackageConfigWithTools } from "./package-types";
4
5
  export declare class PackageSO {
5
6
  private readonly _packageName;
6
7
  private readonly _config;
@@ -35,44 +36,5 @@ export declare class PackageSO {
35
36
  static init(packageName: string, repository: PackageRepository, executor: ToolExecutor): Promise<PackageSO>;
36
37
  getTools(): Promise<Tool[]>;
37
38
  executeTool(toolKey: string, inputData: Record<string, unknown>, envs?: Record<string, string>): Promise<unknown>;
38
- getDetailWithTools(): Promise<{
39
- name: string | undefined;
40
- packageName: string;
41
- description: string | undefined;
42
- category: string | undefined;
43
- validated: boolean | undefined;
44
- tools: {
45
- [x: string]: unknown;
46
- name: string;
47
- inputSchema: {
48
- [x: string]: unknown;
49
- type: "object";
50
- properties?: {
51
- [x: string]: unknown;
52
- } | undefined;
53
- required?: string[] | undefined;
54
- };
55
- description?: string | undefined;
56
- title?: string | undefined;
57
- outputSchema?: {
58
- [x: string]: unknown;
59
- type: "object";
60
- properties?: {
61
- [x: string]: unknown;
62
- } | undefined;
63
- required?: string[] | undefined;
64
- } | undefined;
65
- annotations?: {
66
- [x: string]: unknown;
67
- title?: string | undefined;
68
- readOnlyHint?: boolean | undefined;
69
- destructiveHint?: boolean | undefined;
70
- idempotentHint?: boolean | undefined;
71
- openWorldHint?: boolean | undefined;
72
- } | undefined;
73
- _meta?: {
74
- [x: string]: unknown;
75
- } | undefined;
76
- }[] | undefined;
77
- }>;
39
+ getDetailWithTools(): Promise<MCPServerPackageConfigWithTools>;
78
40
  }
@@ -49,13 +49,6 @@ export class PackageSO {
49
49
  console.warn(`[PackageSO] Failed to get tools for ${this.packageName}:`, error);
50
50
  tools = undefined;
51
51
  }
52
- return {
53
- name: this.name,
54
- packageName: this.packageName,
55
- description: this.description,
56
- category: this.category,
57
- validated: this.validated,
58
- tools,
59
- };
52
+ return Object.assign(Object.assign({}, this._config), { tools });
60
53
  }
61
54
  }
@@ -14,6 +14,7 @@ export interface SandboxClient {
14
14
  destroy(): Promise<void>;
15
15
  }
16
16
  export type MCPSandboxProvider = "SANDOCK" | "DAYTONA" | "E2B" | "LOCAL";
17
+ export declare const VALID_SANDBOX_PROVIDERS: readonly MCPSandboxProvider[];
17
18
  export interface MCPToolResult {
18
19
  toolCount: number;
19
20
  tools: Tool[];
@@ -1 +1,6 @@
1
- export {};
1
+ export const VALID_SANDBOX_PROVIDERS = [
2
+ "LOCAL",
3
+ "DAYTONA",
4
+ "SANDOCK",
5
+ "E2B",
6
+ ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolsdk.ai/registry",
3
- "version": "1.0.121",
3
+ "version": "1.0.123",
4
4
  "description": "An Open, Structured, and Standard Registry for MCP Servers and Packages.",
5
5
  "keywords": [
6
6
  "mcp",