Skip to main content
Glama
zerosync-co

Infrastructure Auto Provisioner

by zerosync-co
index.ts2.84 kB
import { init, login, SupportedMcpClient, supportedMcpClients, supportedMcpClientsSchema, } from "./init.ts"; import { main } from "./main.ts"; import { getAuthTokens, getBuildEnvVar, LocalState } from "../src/utils.ts"; const VERSION = getBuildEnvVar("VERSION"); const [cmd, ...args] = Deno.args; function printUsage() { console.log("MCP AutoProvisioner: Automate Infrastructure"); console.log(""); console.log("Commands:"); console.log( `- init <mcp clients...> Init and install configuration. Supported MCP Clients: ${ supportedMcpClients.join(", ") }. Default: claude_desktop`, ); console.log(" mcp-server-autoprovisioner init claude_desktop cursor "); console.log( "- run <user id> Start MCP AutoProvisioner", ); console.log(" mcp-server-autoprovisioner run user_123..."); console.log( "- whoami Retrieve your user information", ); console.log( "- version MCP AutoProvisioner version", ); } if (!cmd?.length) { printUsage(); Deno.exit(0); } switch (cmd) { case "init": { const mcpClientsToInstall = new Set<SupportedMcpClient>(); if (args.length > 0) { args.forEach((client) => { const isSupportedClientResult = supportedMcpClientsSchema.safeParse( client, ); if (isSupportedClientResult.success) { mcpClientsToInstall.add(isSupportedClientResult.data); } }); if (!mcpClientsToInstall.size) { console.error( `${args.join(", ")} ${ args.length > 1 ? "are" : "is" } invalid. Supported MCP Clients: ${supportedMcpClients.join(", ")}`, ); Deno.exit(1); } } else { mcpClientsToInstall.add("claude_desktop"); } init(mcpClientsToInstall); break; } case "run": { const [accountId, ..._rest] = args; if (!accountId) { throw new Error( `Missing account ID. Usage: mcp-server-autoprovisioner run [account_id]`, ); } try { getAuthTokens(); } catch (_) { await login(); } main(); break; } case "whoami": { getAuthTokens(); const whoamiRes = await fetch( "https://autoprovisioner.zerosync.co/api/whoami", { headers: { Authorization: `Bearer ${LocalState.accessToken?.value}`, }, }, ); const whoami = await whoamiRes.json() as any; console.log(whoami.id); break; } case "version": { console.log(VERSION); break; } default: { throw new Error( `Unknown command: ${cmd}. Expected 'init', 'run', 'whoami', or 'version'.`, ); } }

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/zerosync-co/mcp-server-autoprovisioner'

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