maasy_list_skills
Filter and list Maasy copilot skills by category to find modular knowledge packages for SEO, ads, CRM, content, and other marketing areas.
Instructions
List all maasy copilot skills — modular knowledge packages (SEO, ads, CRM playbooks, etc).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| active_only | No |
Implementation Reference
- src/index.ts:26-43 (handler)The `toolHandler` function is a generic wrapper that delegates tool invocation to the `callGateway` function. For 'maasy_list_skills', it passes the tool name 'list_skills' to `callGateway`, which sends the request to the Supabase edge function 'mcp-gateway'. The actual handler logic lives server-side in the gateway.
function toolHandler(toolName: string, argsFn?: (args: Record<string, unknown>) => Record<string, unknown>) { return async (args: Record<string, unknown>) => { try { const gatewayArgs = argsFn ? argsFn(args) : args; // Auto-inject default project_id if not provided if (DEFAULT_PROJECT_ID && !gatewayArgs.project_id) { gatewayArgs.project_id = DEFAULT_PROJECT_ID; } const result = await callGateway(toolName, gatewayArgs); return { content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }] }; } catch (e: unknown) { return { content: [{ type: "text" as const, text: `Error: ${e instanceof Error ? e.message : String(e)}` }], isError: true, }; } }; } - src/index.ts:90-108 (schema)Input schema for maasy_list_skills. Accepts optional 'category' (enum of marketing topic categories) and optional 'active_only' boolean (defaults true).
{ category: z .enum([ "copilot", "ads", "ads_manager", "seo_geo", "content", "email", "crm", "funnels", "landing", "video", "cultural", "general", ]) .optional(), active_only: z.boolean().optional().default(true), }, - src/index.ts:87-110 (registration)Registration of the 'maasy_list_skills' tool on the MCP server. Name, description, input schema, and handler are all defined here.
server.tool( "maasy_list_skills", "List all maasy copilot skills — modular knowledge packages (SEO, ads, CRM playbooks, etc).", { category: z .enum([ "copilot", "ads", "ads_manager", "seo_geo", "content", "email", "crm", "funnels", "landing", "video", "cultural", "general", ]) .optional(), active_only: z.boolean().optional().default(true), }, toolHandler("list_skills") ); - src/supabase.ts:42-59 (helper)The `callGateway` helper function that forwards the tool name ('list_skills') and arguments to the Supabase edge function for execution.
export async function callGateway(tool: string, args: Record<string, unknown> = {}): Promise<unknown> { const res = await fetch(gatewayUrl, { method: "POST", headers: { "Content-Type": "application/json", [authHeader.name]: authHeader.value, }, body: JSON.stringify({ tool, args }), }); const data = await res.json(); if (!res.ok) { throw new Error(data.error || `Gateway error (${res.status})`); } return data.result; }