tanstack_ecosystem
Filter and list TanStack ecosystem partners by category or library. Find tools for auth, database, deployment, monitoring, and more.
Instructions
List TanStack ecosystem partners (auth, database, deployment, monitoring, etc.) with optional category/library filters
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (e.g. auth, database, deployment, monitoring, api, code-review) | |
| library | No | Filter by TanStack library (e.g. start, query, table) |
Implementation Reference
- src/index.ts:271-295 (registration)The tool 'tanstack_ecosystem' is registered here via server.tool() with name 'tanstack_ecosystem' and its description/schema.
// 7. tanstack_ecosystem server.tool( "tanstack_ecosystem", "List TanStack ecosystem partners (auth, database, deployment, monitoring, etc.) with optional category/library filters", { category: z .string() .optional() .describe( "Filter by category (e.g. auth, database, deployment, monitoring, api, code-review)", ), library: z .string() .optional() .describe("Filter by TanStack library (e.g. start, query, table)"), }, async ({ category, library }) => { const args = ["ecosystem", "--json"]; if (category) args.push("--category", category); if (library) args.push("--library", library); const { stdout } = await runCli(args); return jsonResult(parseJsonOutput(stdout)); }, ); - src/index.ts:287-294 (handler)The handler function that executes the tool logic: builds CLI args (ecosystem, --json, optional --category and --library), runs the CLI, and returns the parsed JSON result.
async ({ category, library }) => { const args = ["ecosystem", "--json"]; if (category) args.push("--category", category); if (library) args.push("--library", library); const { stdout } = await runCli(args); return jsonResult(parseJsonOutput(stdout)); }, - src/index.ts:275-286 (schema)Input schema using Zod for the tool: optional 'category' (string) and optional 'library' (string) parameters.
{ category: z .string() .optional() .describe( "Filter by category (e.g. auth, database, deployment, monitoring, api, code-review)", ), library: z .string() .optional() .describe("Filter by TanStack library (e.g. start, query, table)"), }, - src/index.ts:18-32 (helper)The runCli helper that executes the TanStack CLI via npx @tanstack/cli, used by the tool handler.
async function runCli( args: string[], timeoutMs = 60_000, ): Promise<{ stdout: string; stderr: string }> { const { stdout, stderr } = await execFileAsync( TANSTACK_CLI, [...TANSTACK_ARGS, ...args], { timeout: timeoutMs, maxBuffer: 10 * 1024 * 1024, // 10 MB env: { ...process.env, NO_COLOR: "1" }, }, ); return { stdout: stdout.trim(), stderr: stderr.trim() }; } - src/index.ts:34-49 (helper)Helper functions parseJsonOutput and jsonResult used by the tool handler to parse and format CLI output.
function parseJsonOutput(stdout: string): unknown { // The CLI may print warnings before the JSON blob – find the first { or [ const jsonStart = stdout.search(/[\[{]/); if (jsonStart === -1) { throw new Error(`CLI returned non-JSON output:\n${stdout}`); } return JSON.parse(stdout.slice(jsonStart)); } function textResult(text: string) { return { content: [{ type: "text" as const, text }] }; } function jsonResult(data: unknown) { return textResult(JSON.stringify(data, null, 2)); }