{"serverId":"mcp-registry/app.cleanchart/cleanchart","tools":[{"name":"create_checkout","fixed":{"name":"create_checkout","description":"Create a payment link the USER must open in their browser — never call this without the user explicitly asking to purchase. kind 'single_chart' (pass the exact data, chartType, and config to be rendered; after payment call claim_chart to receive the clean chart), 'day_pass' (24h unlimited clean exports), or 'subscription' (monthly unlimited). day_pass and subscription are account-based: after payment CleanChart emails a sign-in link, and an API key from the dashboard unlocks clean renders over M","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["kind"],"properties":{"data":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"description":"single_chart only: the rows to render after payment"},"kind":{"enum":["single_chart","day_pass","subscription"],"type":"string"},"config":{"type":"object","description":"single_chart only: validated chart config","propertyNames":{"type":"string"},"additionalProperties":{}},"chartType":{"type":"string","description":"single_chart only"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create checkout"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":314,"tokensAfter":314},{"name":"get_entitlements","fixed":{"name":"get_entitlements","description":"Show the caller's current CleanChart tier. Anonymous callers are free tier (watermarked, reduced resolution). With an API key (Authorization: Bearer cc_..., created in the CleanChart dashboard) this reflects the account's subscription or 24h day pass.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true},"title":"Get entitlements"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"list_chart_types","fixed":{"name":"list_chart_types","description":"List all chart types CleanChart can render, each with its default config object. Use a default config as the starting point, override what you need (title, xColumn, yColumn, colors, ...), then call validate_chart_config before generate_chart.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true},"title":"List chart types"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"validate_chart_config","fixed":{"name":"validate_chart_config","description":"Dry-run validation of a chart config for a given chart type. Returns valid:true or a list of human-readable problems to fix. Always call this before generate_chart — it is free and instant, while a failed render costs a rate-limited attempt.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["chartType","config"],"properties":{"config":{"type":"object","description":"Chart config object (start from the type's defaultConfig)","propertyNames":{"type":"string"},"additionalProperties":{}},"chartType":{"type":"string","description":"Chart type id from list_chart_types"}}},"annotations":{"readOnlyHint":true},"title":"Validate chart config"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187}],"toolsChanged":4,"tokensSaved":0,"todo":[{"tool":"claim_chart","params":["checkoutId","purchaseId"]},{"tool":"create_checkout","params":["kind"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}