@toolsdk.ai/registry 1.0.145 → 1.0.147
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 +49 -11
- package/dist/shared/utils/validation-util.js +7 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -221,6 +221,43 @@ This open-source project provides:
|
|
|
221
221
|
- **Unified Gateway** - HTTP API to query and execute tools remotely
|
|
222
222
|
- **Auto-Generated Docs** - Always up-to-date README and API documentation
|
|
223
223
|
|
|
224
|
+
### ✅ Validated Packages = One-Line Integration (ToolSDK)
|
|
225
|
+
|
|
226
|
+
Some packages in this registry are marked as `validated: true`.
|
|
227
|
+
|
|
228
|
+
> [!NOTE]
|
|
229
|
+
> **What does `validated: true` mean for you?**
|
|
230
|
+
> - You can load the MCP package directly via our ToolSDK NPM client and get ready-to-use tool adapters (e.g. **Vercel AI SDK tools**) without writing your own tool schema mapping.
|
|
231
|
+
> - The registry index includes the discovered `tools` metadata for validated packages, so you can pick a `toolKey` and call it immediately.
|
|
232
|
+
>
|
|
233
|
+
> **Where is this flag stored?**
|
|
234
|
+
> - See `indexes/packages-list.json` entries (e.g. `{"validated": true, "tools": { ... } }`).
|
|
235
|
+
|
|
236
|
+
#### Example: Use a validated package with Vercel AI SDK
|
|
237
|
+
|
|
238
|
+
Template: `const tool = await toolSDK.package('<packageName>', { ...env }).getAISDKTool('<toolKey>');`
|
|
239
|
+
|
|
240
|
+
```ts
|
|
241
|
+
// import { generateText } from 'ai';
|
|
242
|
+
// import { openai } from '@ai-sdk/openai'
|
|
243
|
+
import { ToolSDKApiClient } from 'toolsdk/api';
|
|
244
|
+
|
|
245
|
+
const toolSDK = new ToolSDKApiClient({ apiKey: process.env.TOOLSDK_AI_API_KEY });
|
|
246
|
+
|
|
247
|
+
const searchMCP = await toolSDK.package('@toolsdk.ai/tavily-mcp', { TAVILY_API_KEY: process.env.TAVILY_API_KEY });
|
|
248
|
+
|
|
249
|
+
const searchTool = await searchMCP.getAISDKTool('tavily-search');
|
|
250
|
+
|
|
251
|
+
// const completion = await generateText({
|
|
252
|
+
// model: openai('gpt-4.1'),
|
|
253
|
+
// messages: [{
|
|
254
|
+
// role: 'user',
|
|
255
|
+
// content: 'Help me search for the latest AI news',
|
|
256
|
+
// }],
|
|
257
|
+
// tools: { searchTool, emailTool },
|
|
258
|
+
// });
|
|
259
|
+
```
|
|
260
|
+
|
|
224
261
|
**Available as:**
|
|
225
262
|
|
|
226
263
|
- **Docker Image** - Full-featured Gateway & Registry
|
|
@@ -237,11 +274,15 @@ This open-source project provides:
|
|
|
237
274
|
|
|
238
275
|
Help grow the ecosystem! Share your AI tools, plugins, and integrations with the community.
|
|
239
276
|
|
|
240
|
-
###
|
|
277
|
+
### Quick Submission
|
|
241
278
|
|
|
242
279
|
[](https://www.youtube.com/watch?v=J_oaDtCoVVo)
|
|
243
280
|
|
|
244
|
-
|
|
281
|
+
1. [Fork this repository](https://github.com/toolsdk-ai/toolsdk-mcp-registry/fork)
|
|
282
|
+
2. Create `your-mcp-server.json` in [packages/uncategorized](./packages/uncategorized) (or the best matching category folder)
|
|
283
|
+
3. Submit a PR
|
|
284
|
+
|
|
285
|
+
Config Example:
|
|
245
286
|
|
|
246
287
|
```json
|
|
247
288
|
{
|
|
@@ -261,21 +302,15 @@ Help grow the ecosystem! Share your AI tools, plugins, and integrations with the
|
|
|
261
302
|
}
|
|
262
303
|
```
|
|
263
304
|
|
|
264
|
-
**2. Submit via Pull Request**
|
|
265
|
-
|
|
266
|
-
- [Fork this repository](https://github.com/toolsdk-ai/toolsdk-mcp-registry/fork)
|
|
267
|
-
- Create `your-mcp-server.json` in [packages/uncategorized](./packages/uncategorized)
|
|
268
|
-
- Submit a PR
|
|
269
|
-
|
|
270
|
-
**3. Get Discovered**
|
|
271
|
-
|
|
272
305
|
Your MCP server will be:
|
|
273
306
|
- ✅ Listed in the registry
|
|
274
307
|
- 🔍 Searchable via REST API
|
|
275
308
|
- 📦 Available in npm package
|
|
276
309
|
- 🌐 Featured on [ToolSDK.ai](https://toolsdk.ai)
|
|
277
310
|
|
|
278
|
-
📖 **
|
|
311
|
+
📖 **Source of truth (schema, fields, remotes, OAuth)**: [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
312
|
+
|
|
313
|
+
📚 Additional docs: [docs/guide.md](./docs/guide.md)
|
|
279
314
|
|
|
280
315
|
---
|
|
281
316
|
|
|
@@ -290,6 +325,9 @@ Your MCP server will be:
|
|
|
290
325
|
>
|
|
291
326
|
> 📚 **Looking for all 4521+ servers?** Check out [**All MCP Servers**](./docs/ALL-MCP-SERVERS.md) for the complete list.
|
|
292
327
|
|
|
328
|
+
> [!TIP]
|
|
329
|
+
> If a package is marked as `validated: true` in the index, you can usually wire it up in minutes via ToolSDK (e.g. `getAISDKTool(toolKey)`).
|
|
330
|
+
|
|
293
331
|
Browse by category: Developer Tools, AI Agents, Databases, Cloud Platforms, APIs, and more!
|
|
294
332
|
|
|
295
333
|
|
|
@@ -53,6 +53,13 @@ async function checkDependencies(dependencies) {
|
|
|
53
53
|
export async function isValidNpmPackage(packageName) {
|
|
54
54
|
var _a, _b, _c, _d;
|
|
55
55
|
try {
|
|
56
|
+
// Skip npm registry validation for remote MCP servers which use
|
|
57
|
+
// packageName values like "@toolsdk-remote/xxx" that are not
|
|
58
|
+
// actual npm packages.
|
|
59
|
+
if (packageName.startsWith("@toolsdk-remote/")) {
|
|
60
|
+
console.log(`Skipping npm validation for remote MCP: ${packageName}`);
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
56
63
|
console.log("Checking package:", packageName);
|
|
57
64
|
const response = await axios.get(`https://registry.npmjs.org/${packageName}`, {
|
|
58
65
|
timeout: 5000,
|