FastFix is a creation tool: the owner describes a tool to their AI agent, tries a clickable preview, and saves it to their dashboard. Test cases P1–P3 walk through exactly that.
https://fastfix.ai/dashboard/mcphttps://fastfix.ai/dashboard/mcp (Streamable HTTP, OAuth 2.1 with PKCE; dynamic client registration and client ID metadata documents are supported).Sign-in attempts are limited per network (3 tries per 5 minutes, growing to 20 per day). If you see "Too many attempts", wait 5 minutes. Wrong codes from other networks never block yours.
Run P1 → P2 → P3 in one conversation; P2 and P3 use the tool_id from P1.
| # | Prompt | Expected tools | Expected result |
|---|---|---|---|
| P1 | Build me a tool that shows my subscriptions by renewal date | request_ | Returns status "preview" with a tool_id and a clickable HTML preview (preview_html, also attached as a text/html resource) to show in chat. The preview uses the FastFix layout: a dark header card, then one white card each for "EXAMPLE Field Service App" and "EXAMPLE Accounting Software". It is built from a saved template (source starts with "template:"). Nothing is on the dashboard yet. |
| P2 | Change the title to Renewals and add the monthly total | edit_ | Returns a new preview for the same tool_id. The header now reads "Renewals" and shows "Monthly total $79" (EXAMPLE Field Service App $49 + EXAMPLE Accounting Software $30). The layout stays the same, and the tool is still not on the dashboard. |
| P3 | Looks good, save it to my dashboard. (after the user has confirmed the preview) | approve_ list_ | approve_tool returns status "approved" with "Visible only on your account." list_my_tools then lists the tool with status "approved" and connector "subscriptions", and it appears in the dashboard menu. The menu keeps the original title, "Subscriptions by renewal date"; the page header reads "Renewals". |
| P4 | What's on my FastFix to-do list? | list_ | Lists the open tasks "EXAMPLE: Send the Lopez family the roof repair quote", "EXAMPLE: Order 12 bundles of architectural shingles" and "EXAMPLE: Renew the general liability certificate", plus the routine "EXAMPLE: Check the inbox for new leads every morning". No other data. |
| P5 | Put a roof inspection on my schedule next Tuesday at 9 am at 45 Oak Ave, Springfield. | add_ | Creates one in-person schedule event, "Roof inspection", next Tuesday at 9:00 AM at "45 Oak Ave, Springfield", and confirms the day, time and place. |
| # | Prompt | Expected behaviour |
|---|---|---|
| N1 | What's the weather in Springfield tomorrow? | FastFix is not used: weather is not dashboard data. No FastFix tool is called. |
| N2 | Write a short poem about fixing roofs. | FastFix is not used: a creative-writing request needs no dashboard data. No FastFix tool is called. |
| N3 | Book me a flight to Denver next Friday. | FastFix is not used: it cannot book travel. No FastFix tool is called, and nothing is added to the schedule unless the user asks for that. |
approve_tool, which assistants call only after the user confirms.title, readOnlyHint, destructiveHint and openWorldHint. No tool reaches outside the signed-in FastFix account. The full list is on the connector page and at /dashboard/mcp/tools.