Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "compare_providers", "plan", "run_batch" and 3 more
⟨12 unchanged words⟩ results side by side with cost and latency. Each provider charges its own price: If the call should cost more than $0.50, tell the user the expected cost before you start, set max_price_usd to it, and report charge_usd afterwards. Image, video, audio and LLM comparisons return share_url, a page with the results side by side: give the user that link to look at them.
⟨52 unchanged words⟩ then run_tool each step with trace_id = plan_id. If total_cost_usd is above $0.50, tell the user that cost before running the steps.
⟨40 unchanged words⟩ fails, and max_price_usd caps the whole batch. If price_usd times the number of inputs is above $0.50, tell the user that total before you start. Waits up to wait_s seconds (default 20), ⟨26 unchanged words⟩
Run an official recipe on our servers in one call. If its estimated_cost_usd (list_recipes, get_recipe) is above $0.50, tell the user before running it. Returns charge_usd, each step's output and share_url, a pagewiththat shows the results on any phone: give the usercanthatopenlinkorasforward.the main way to see them, and report charge_usd.
Run one tool with JSON input. Chargesyourthebalance;tool's price_usd (from search_tools or inspect_tool); failed runs are free. If the call should cost more than $0.50, tell the user the expected cost before you start, set max_price_usd to it, and report charge_usd afterwards. Pass idempotency_key for any tool with a price ⟨32 unchanged words⟩
⟨47 unchanged words⟩ files first with upload_file (or POST /v1/files). Offer a link once per deliverable, in one short sentence: when the user has to choose between options or mentions a client, boss, team or partner (use review=true with a question such as "Which one should we use?"), or wants to send or show something. Otherwise don't bring up sharing. Before publishing a page the user didn't ask for, show them the title and items. Links are unlisted but open to anyone who has them: keep secrets and personal data out.
Added "get_batch" and "run_batch"; changed the definition of "compare_providers", "inspect_tool" and "run_tool" (26 tools before, 28 now)
⟨133 unchanged words⟩ as project_id.","type":"string"},"max_age_s":{"description":"Free repeat lookups: if you already ran this tool with exactly this input and it succeeded at most this many seconds ago, get that result back free, with cache.fetched_at, instead of a new paid call. E.g. 86400 for a company record, 3600 for search results. Omit for a fresh call.","maximum":2592000,"minimum":0,"type":"integer"},"max_price_usd":{"description":"Hard total buyer charge ⟨154 unchanged words⟩
Get a tool's input schema, output_schema (what output contains), normalized_schema (the shape shared by tools of its category), price and category before runningit.
Added "create_key", "list_keys", "revoke_key" and 1 more; changed the definition of "compare_providers", "get_usage" and "run_tool" (22 tools before, 26 now)
⟨165 unchanged words⟩ job).","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Optional key=value labels for this run, e.g. {\"campaign\": \"launch\"}. They are added to the tags of the API key you use (which you can't change here) and let your human split spend and set limits per tag.","type":"object"},"tools":{"description":"Tool slugs to include; ⟨75 unchanged words⟩
Accountusagespend grouped by project (job), agent, key, provider, trace
Changed the definition of "compare_providers" and "run_tool"
⟨198 unchanged words⟩ as a plan_id.","type":"string"},"use_own_key":{"description":"Default true: when your human connected their own key for this tool's vendor (superpowers.tools/app/connections), the call goes through their account and costs nothing here. Pass false to use Superpowers credit instead, e.g. when their key ran out.","type":"boolean"}},"required":["category","input"," ⟨3 unchanged words⟩
⟨180 unchanged words⟩ as a plan_id.","type":"string"},"use_own_key":{"description":"Default true: when your human connected their own key for this tool's vendor (superpowers.tools/app/connections), the call goes through their account and costs nothing here. Pass false to use Superpowers credit instead, e.g. when their key ran out.","type":"boolean"}
Changed the definition of "compare_providers" and "run_tool"
⟨91 unchanged words⟩ inspect_tool).","type":"object"},"job":{"description":"Short name of the recurring task this run belongs to, e.g. daily-competitor-ads. Use the same name every time the task runs: the person sees those runs together in their app, with the schedule they keep. Same as project_id.","type":"string"},"max_price_usd":{"description":"Hard total buyer charge ⟨10 unchanged words⟩ description":"Optional label to group usage byproject.project or job (same as job).","type":"string"},"tools":{ ⟨39 unchanged words⟩
⟨83 unchanged words⟩ inspect_tool).","type":"object"},"
Certificate recorded, valid to 2027-01-06
Authorization not required
Changed the definition of "charge_saved_card", "compare_providers", "get_recipe" and 13 more
{"properties":{"amount_usd":{"description":"Amount in US dollars.","maximum":500,"minimum":5,"type":" ⟨19 unchanged words⟩
{"properties":{"agent_id":{"description":"Optional label to group usage by agent.","type":"string"},"category":{"description":"Category slug from list_categories.","type":"string"},"idempotency_key":{"description" ⟨57 unchanged words⟩ ,"type":"string"},"input":{"description":"JSON input matching the tool's input schema (see inspect_tool).","type":"object"},"max_price_usd":{"description"
Removed "list_jobs" and "run_job"; changed the definition of "review_tool" and "send_feedback" (24 tools before, 22 now)
PubliclyRateratetheaoutputtoolofyouausedrun, 1-5 stars with an optional comment,tiedsayingtowhatonewas
Added "charge_saved_card"; changed the definition of "create_topup" and "get_balance" (23 tools before, 24 now)
AddGetfundsa top-up link
StartWhenayoucardruntop-uplowofon10
Unknown → Live
First tool surface recorded: 23 tools (server version 0.1.0)
https://superpowers.tools/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 13 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨125 unchanged words⟩ as project_id.","type":"string"},"max_age_s":{"description":"Free repeat lookups: if you already ran this tool with exactly this input and it succeeded at most this many seconds ago, get that result back free, with cache.fetched_at, instead of a new paid call. E.g. 86400 for a company record, 3600 for search results. Omit for a fresh call.","maximum":2592000,"minimum":0,"type":"integer"},"max_price_usd":{"description":"Hard total buyer charge ⟨143 unchanged words⟩
Get a batch — A batch's progress (done, completed, failed, not_run, charge) and a page of its results in input order: index, input, status, normalized result (or output) and error. Page with offset/limit. Over REST, GET /v1/batches/{id}/results?format=csv or jsonl downloads every result.
Run a tool on many inputs — Run one tool over many inputs (up to 500) in one call, e.g. verify 300 emails or look up 100 companies. It runs in the background with our pacing; each item is a normal run that is free if it fails, and max_price_usd caps the whole batch. Waits up to wait_s seconds (default 20), then returns counts and charge so far. Call get_batch with batch_id for progress and results page by page instead of keeping every result in your context.
⟨2 unchanged words⟩ {"description":"How to group usage: project (job), agent, key, provider, trace, tool, day ortool.tag:<name>, e.g. tag:slot.","type":"string"},"job":{"description":"Only runs with this job (project_id)","type":"string"},"key":{"description":"Only runs made with this key id","type":"string"},"since":{"description":"YYYY-MM-DD; default the 1st of this month (UTC)","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Only runs with all these tags, e.g. {\"project\": \"ai-influencers\"}","type":"object"},"until":{"description":"YYYY-MM-DD, exclusive","type":"string"}},"type":"object"}
⟨157 unchanged words⟩ job).","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Optional key=value labels for this run, e.g. {\"campaign\": \"launch\"}. They are added to the tags of the API key you use (which you can't change here) and let your human split spend and set limits per tag.","type":"object"},"tool":{"description":"Tool slug from search_tools ⟨64 unchanged words⟩
Create key — Create an API key with a label, tags and a monthly limit, e.g. one key per sub-agent or per persona so spend splits and caps separately. Works only if your key has the can_manage_keys permission (your human grants it at superpowers.tools/app/keys). The new key gets your key's tags, counts against your limit and can't have a higher one. Returns the secret once: store it, never print it.
List keys — Your API key and the keys it created: label, tags, monthly limit and spend this month. Never returns secrets.
Revoke key — Revoke a key you created (or your own). Keys it created are revoked too. Agents using it stop working right away.
Update key — Rename a key, change the tags of a key you created, or lower its monthly limit. Keys can't raise limits or change their own tags.
{"properties":{"recipe":{"description":"Recipe slug from list_recipes.","type":"string"}},"required":["recipe ⟨2 unchanged words⟩
{"properties":{"tool":{"description":"Tool slug from search_tools, e.g. brasilapi.cnpj.","type":"string"}},"required":["tool ⟨2 unchanged words⟩
{"properties":{"run_id":{"description":"Run id returned by run_tool, run_job or run_recipe.","type":"string"}},"required":["run_id ⟨2 unchanged words⟩
{"properties":{"share_id":{"description":"Share id returned by share.","type":"string"}},"required":["share_id ⟨2 unchanged words⟩
{"properties":{"group":{"description":"How to group usage: project, agent, key, provider, trace or tool.","type":"string"},"since":{"description" ⟨5 unchanged words⟩
{"properties":{"tool":{"description":"Tool slug from search_tools, e.g. brasilapi.cnpj.","type":"string"}},"required":["tool ⟨2 unchanged words⟩
{"properties":{"description":{"description":"One or two sentences on what the recipe does.","type":"string"},"name":{"description":"Short name for the recipe.","type":"string"},"public":{"default":true,"description":"Whether anyone can find and run it; false keeps it to your account.","type":"boolean"},"skill_md":{"description":"The recipe steps as a SKILL.md document.","type":"string"}},"required":[" ⟨4 unchanged words⟩
{"properties":{"comment":{"description":"Optional short comment.","maxLength":1000,"type":"string"},"rating":{"description":"1 to 5 stars.","maximum":5,"minimum":1,"type":"integer"},"run_id":{"description":"Run id returned by run_tool, run_job or run_recipe.","type":"string"}},"required":[" ⟨4 unchanged words⟩
⟨60 unchanged words⟩ ,"type":"string"},"inputs":{"description":"Values for the recipe's inputs, keyed by input name.","type":"object"},"recipe":{"description":"Recipe slug from list_recipes.","type":"string"},"review":{"description ⟨12 unchanged words⟩
{"properties":{"agent_id":{"description":"Optional label to group usage by agent.","type":"string"},"idempotency_key":{"description" ⟨57 unchanged words⟩ ,"type":"string"},"input":{"description":"JSON input matching the tool's input schema (see inspect_tool).","type":"object"},"max_price_usd":{"description" ⟨11 unchanged words⟩ ,"type":"number"},"project_id":{"description":"Optional label to group usage by project.","type":"string"},"tool":{"description":"Tool slug from search_tools, e.g. brasilapi.cnpj.","type":"string"},"trace_id":{"description":"Optional id tying related runs together, such as a plan_id.","type":"string"}},"required":[" ⟨4 unchanged words⟩
{"properties":{"limit":{"default":15,"description":"Maximum number of results to return.","maximum":200,"minimum":1,"type":"integer"},"offset":{"default":0,"description":"Skip this many results; use next_offset from the previous page.","minimum":0,"type":"integer"},"query":{"description":"What you need, in plain words (e.g. \"check a Brazilian company by CNPJ\").","type":"string"}},"required":[" ⟨3 unchanged words⟩
{"properties":{"context":{"description":"Optional details, such as the task you were doing.","type":"object"},"run_id":{"description":"Run id returned by run_tool, run_job or run_recipe.","type":"string"},"text":{"description":"What happened or what you need, in plain words.","type":"string"},"tool":{"description":"Tool slug from search_tools, e.g. brasilapi.cnpj.","type":"string"},"type":{"description":"Kind of feedback: missing_tool, bug, friction or idea.","enum":["missing_tool","bug","friction" ⟨9 unchanged words⟩
{"properties":{"items":{"description":"Files or text to show: [{url, label?, caption?} or {text, label?}].","items":{"type":"object"},"type":"array"},"note":{"description":"Optional short note under the title.","type":"string"},"question":{"description":"Question shown to viewers when review is true.","type":"string"},"recipe":{"description":"Recipe slug from list_recipes.","type":"string"},"review":{"description":"Let viewers pick one item without an account.","type":"boolean"},"title":{"description":"Title shown at the top of the share page.","type":"string"}},"required":[" ⟨4 unchanged words⟩
{"properties":{"base64":{"description":"File contents as base64, when there is no URL.","type":"string"},"filename":{"description":"File name with extension, e.g. report.pdf.","type":"string"},"url":{"description":"Public URL of the file to re-host.","type":"string"}},"type":"object"}
Private feedback on any tool, passed to theSuperpowersvendorteambehind it and thetool'sSuperpowersdeveloperteam: a bug, wrong or stale data, friction, an idea, or a tool you needed and could not find (type missing_tool). Pass run_id when it is about a run. Not shown publicly.
List jobs — Multi-provider jobs (e.g. local-leads, serp-competitor-snapshot) and curated bundles.
Run a job — Run a multi-step job. Cost is the sum of its tool runs.
{"properties":{"amount_usd":{"enumdescription":"Suggested amount in whole US dollars (optional)","examples":[10,25,50,100],"typemaximum":500,"numberminimum"}}:5,"requiredtype":["amount_usdinteger"]}},"type":"object"}
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":false,"title":"AddGetfundsa top-up link"}
Current balance in USD,plustheadd_funds_urlsavedwherecard (if any), whether you may charge it, auto top-up, and topup_url: a link your humancanopensaddwithoutprepaidsigningcreditinbytocard.add credit.
Charge saved card — Add credit by charging your human's saved card. Only after you asked them in this conversation, naming the amount and the card (get_balance shows it), and they said yes; set human_approved true. If there is no saved card, they turned agent charges off, or the bank wants them to confirm, send them topup_url instead (create_topup). They get an email for every charge.