Skip to main content
Glama

list-api-groups

Browse and filter API groups in the Xano workspace. Use pagination, search, and sorting options to organize and locate specific groups efficiently.

Instructions

Browse all API groups in the Xano workspace

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orderNoSort order
pageNoPage number for pagination
per_pageNoNumber of items per page
searchNoSearch term to filter API groups
sortNoField to sort by

Implementation Reference

  • Handler function that fetches API groups from Xano workspace using makeXanoRequest, supports pagination/search/sort, formats results as markdown, returns as text content or error.
    async ({ page, per_page, search, sort, order }) => { console.error('[Tool] Executing list-api-groups'); try { // Build query parameters const queryParams = new URLSearchParams(); if (page !== undefined) queryParams.append("page", page.toString()); if (per_page !== undefined) queryParams.append("per_page", per_page.toString()); if (search) queryParams.append("search", search); if (sort) queryParams.append("sort", sort); if (order) queryParams.append("order", order); const queryString = queryParams.toString() ? `?${queryParams.toString()}` : ''; const response = await makeXanoRequest<{ items: XanoApiGroup[], curPage: number, nextPage?: number, prevPage?: number }>( `/workspace/${XANO_WORKSPACE}/apigroup${queryString}` ); const apiGroups = response.items; // Format API groups into a readable structure const formattedContent = `# Xano API Groups\n\n` + `Page ${response.curPage}${response.nextPage ? ` (Next: ${response.nextPage})` : ''}${response.prevPage ? ` (Prev: ${response.prevPage})` : ''}\n\n` + `${apiGroups.map(group => `## ${group.name}\n` + `**ID**: ${group.id}\n` + `**Description**: ${group.description || 'No description'}\n` + `**Created**: ${new Date(group.created_at).toLocaleString()}\n` + `**Updated**: ${new Date(group.updated_at).toLocaleString()}\n` + `${group.guid ? `**GUID**: ${group.guid}\n` : ''}` ).join('\n\n')}`; console.error(`[Tool] Successfully listed ${apiGroups.length} API groups`); return { content: [ { type: "text", text: formattedContent } ] }; } catch (error) { console.error(`[Error] Failed to list API groups: ${error instanceof Error ? error.message : String(error)}`); return { content: [ { type: "text", text: `Error listing API groups: ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } }
  • Zod input schema defining optional parameters: page, per_page, search, sort field, sort order for listing API groups.
    { page: z.number().optional().describe("Page number for pagination"), per_page: z.number().optional().describe("Number of items per page"), search: z.string().optional().describe("Search term to filter API groups"), sort: z.enum(["created_at", "updated_at", "name"]).optional().describe("Field to sort by"), order: z.enum(["asc", "desc"]).optional().describe("Sort order") },
  • src/index.ts:785-849 (registration)
    Tool registration via server.tool call, specifying name, description, input schema, and handler function.
    // List API Groups Tool server.tool( "list-api-groups", "Browse all API groups in the Xano workspace", { page: z.number().optional().describe("Page number for pagination"), per_page: z.number().optional().describe("Number of items per page"), search: z.string().optional().describe("Search term to filter API groups"), sort: z.enum(["created_at", "updated_at", "name"]).optional().describe("Field to sort by"), order: z.enum(["asc", "desc"]).optional().describe("Sort order") }, async ({ page, per_page, search, sort, order }) => { console.error('[Tool] Executing list-api-groups'); try { // Build query parameters const queryParams = new URLSearchParams(); if (page !== undefined) queryParams.append("page", page.toString()); if (per_page !== undefined) queryParams.append("per_page", per_page.toString()); if (search) queryParams.append("search", search); if (sort) queryParams.append("sort", sort); if (order) queryParams.append("order", order); const queryString = queryParams.toString() ? `?${queryParams.toString()}` : ''; const response = await makeXanoRequest<{ items: XanoApiGroup[], curPage: number, nextPage?: number, prevPage?: number }>( `/workspace/${XANO_WORKSPACE}/apigroup${queryString}` ); const apiGroups = response.items; // Format API groups into a readable structure const formattedContent = `# Xano API Groups\n\n` + `Page ${response.curPage}${response.nextPage ? ` (Next: ${response.nextPage})` : ''}${response.prevPage ? ` (Prev: ${response.prevPage})` : ''}\n\n` + `${apiGroups.map(group => `## ${group.name}\n` + `**ID**: ${group.id}\n` + `**Description**: ${group.description || 'No description'}\n` + `**Created**: ${new Date(group.created_at).toLocaleString()}\n` + `**Updated**: ${new Date(group.updated_at).toLocaleString()}\n` + `${group.guid ? `**GUID**: ${group.guid}\n` : ''}` ).join('\n\n')}`; console.error(`[Tool] Successfully listed ${apiGroups.length} API groups`); return { content: [ { type: "text", text: formattedContent } ] }; } catch (error) { console.error(`[Error] Failed to list API groups: ${error instanceof Error ? error.message : String(error)}`); return { content: [ { type: "text", text: `Error listing API groups: ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } } );

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lowcodelocky2/xano-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server