get_quote
Retrieve tier pricing details for Run402 projects including costs, lease durations, storage limits, and API call allowances without authentication.
Instructions
Get tier pricing for Run402 projects. Free, no auth required. Shows prices, lease durations, storage limits, and API call limits.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/get-quote.ts:7-39 (handler)The handler function that executes the get_quote tool logic. It makes an API request to /v1/projects to fetch tier pricing, then formats the response as a markdown table showing prices, lease durations, storage limits, and API call limits.
export async function handleGetQuote(_args: Record<string, never>): Promise<{ content: Array<{ type: "text"; text: string }>; isError?: boolean; }> { const res = await apiRequest("/v1/projects", { method: "GET" }); if (!res.ok) return formatApiError(res, "getting quote"); const body = res.body as { tiers: Record< string, { price: string; lease_days: number; storage_mb: number; api_calls: number } >; }; const lines = [ `## Run402 Pricing`, ``, `| Tier | Price (USDC) | Lease | Storage | API Calls |`, `|------|-------------|-------|---------|-----------|`, ]; for (const [name, tier] of Object.entries(body.tiers)) { lines.push( `| ${name} | $${tier.price} | ${tier.lease_days}d | ${tier.storage_mb}MB | ${(tier.api_calls / 1000).toFixed(0)}k |`, ); } lines.push(``); lines.push(`Use \`provision_postgres_project\` or \`bundle_deploy\` to create a project.`); return { content: [{ type: "text", text: lines.join("\n") }] }; } - src/tools/get-quote.ts:5-5 (schema)The input schema for the get_quote tool. It's an empty object since the tool requires no input arguments.
export const getQuoteSchema = {}; - src/index.ts:266-271 (registration)Registration of the get_quote tool with the MCP server. Defines the tool name, description, schema, and handler function.
server.tool( "get_quote", "Get tier pricing for Run402 projects. Free, no auth required. Shows prices, lease durations, storage limits, and API call limits.", getQuoteSchema, async (args) => handleGetQuote(args), );