Instant Roofer MCP
Instant Roofer MCP
Instant Roofer exposes its AI roof measurement, Human-Certified Measure Reports, quoting (drafting, editing, previewing and sending quotes), products and services pricing, project media, CRM lookups, and CRM webhook setup to AI assistants through the Model Context Protocol. Connect once from Cursor, Claude, ChatGPT, Grok, or Codex, sign in with your mobile number, and your assistant can measure roofs, read your reports, build and send quotes, and wire your leads into your CRM on your behalf.
- Server URL:
https://mcp.instantroofer.com/mcp - Transport: Streamable HTTP (MCP 2026-07-28, with fallback for 2025-era clients)
- Authentication: OAuth 2.1 with PKCE. Your Instant Roofer login (SMS one-time code) is the only credential; no API keys to paste.
- No account yet? You create one during sign-in: verify your mobile number, enter your name, email, company name and address, and you are connected. Free, about a minute, no card. New accounts get full AI measurements free for 7 days plus free Human-Certified report credits.
- Who it acts as: you, at your company. Everything the assistant does is limited by your team-member permissions and by the scopes you approve on the consent screen.
What it can do
- Get connected account (
get_account) - Resolve an address (
resolve_address) - Confirm the building on a satellite map (
confirm_building_location) - Check a building confirmation (
get_location_confirmation) - Run an AI Instant Measure (
measure_roof) - Find Instant Measures (
find_measurements) - Get an Instant Measure result (
get_measurement) - Get the Instant Measure Report PDF (
get_instant_measure_report_pdf) - Show Instant Measure images (
render_instant_measure_images) - Attach an Instant Measure to a customer job (
attach_measurement_to_job) - Order a Human-Certified Measure Report (
order_human_certified_report) - Get a Human-Certified Measure Report (
get_human_certified_report) - List Human-Certified Measure Reports (
list_human_certified_reports) - Attach a Human-Certified report to a customer job (
attach_human_report_to_job) - List quotes (
list_quotes) - Get a quote (
get_quote) - Get a quote's customer link and PDF (
get_quote_public_link) - Create a quote (
create_quote) - Update a quote option (
update_quote) - Edit quote line items (
edit_quote_line_items) - Add an option to a quote (
add_quote_option) - Copy a quote (
copy_quote) - Change a quote's status (
set_quote_status) - Attach a quote to a customer or lead (
attach_quote_to_record) - Delete a quote option (
delete_quote) - Get a quote's pages, photos and text (
get_quote_layout) - Edit a quote's photos, text and pages (
edit_quote_layout) - Preview a quote PDF (
preview_quote_pdf) - List quote templates (
list_quote_templates) - Get a quote template (
get_quote_template) - Copy a quote template (
copy_quote_template) - Edit a quote template's content (
edit_quote_template_content) - Set the default quote template (
set_default_quote_template) - Send a quote to the customer (
send_quote) - Get quote settings (
get_quote_settings) - Create or update a quote catalog item (
upsert_quote_catalog_item) - Archive or restore a quote catalog item (
archive_quote_catalog_item) - Create or update a tax rate (
upsert_quote_tax_rate) - Archive or restore a tax rate (
archive_quote_tax_rate) - Create or update a financing plan (
upsert_quote_financing_plan) - Archive or restore a financing plan (
archive_quote_financing_plan) - Update company quote defaults (
update_quote_company_settings) - List saved quote option templates (
list_quote_option_templates) - Save a quote option as a template (
save_quote_option_template) - Get products and services pricing (
get_product_catalog) - Update a product or service (
update_product) - Add a product or service (
add_product) - Remove a product or service (
remove_product) - List project media (
list_project_media) - List project media folders (
list_media_folders) - Get a project media asset (
get_media_asset) - Show project media (
render_project_media) - Search customers (
search_customers) - Search leads (
search_leads) - List CRM webhooks (
list_webhooks) - Get a CRM webhook (
get_webhook) - Webhook field reference (
get_webhook_field_reference) - Create a CRM webhook (
create_webhook) - Update a CRM webhook (
update_webhook) - Delete a CRM webhook (
delete_webhook) - Test a CRM webhook (
test_webhook)
What it costs
- AI Instant Measure (
measure_roof) counts against a separate AI-assistant allowance: 2 per minute, 10 per hour and 25 per day by default, independent of your dashboard allowance. A measurement of the same property from the last 24 hours is reused instead of re-run. Accounts without an active AI Tools subscription or trial receive redacted results, and every redacted result carries anupgradeUrlto the dashboard's Billing page where AI Tools is activated. - Human-Certified Measure Reports (
order_human_certified_report) cost money: a free report credit if you have one, otherwise your card on file (typically $10). The assistant must confirm with you before ordering. - Reading measurements, reports, quotes, media, customers, and leads is free. So is managing webhooks (see CRM webhooks); only the webhook test tool is rate limited.
- Creating, editing, previewing and sending quotes, editing quote templates and settings, and changing products and services pricing are free. They change what your customers and website visitors see, so the assistant asks before the steps that leave your account: sending a quote email, accepting or voiding a quote, deleting a draft, and every product price change.
Quoting
Ask the assistant to quote a job and it drafts the quote for you: from an Instant Measure it builds Good / Better / Best options from your Products & Services pricing (create_quote with fromMeasurementId), or it starts blank and you add line items in plain language ("add 2 skylights at $850 each", "take 10% off labour"). It can attach the quote to the customer or lead, swap the photos the quote shows (the first full-width photo box is the featured image), rewrite the cover text, hide or show pages, and render a page-by-page preview (preview_quote_pdf) inside the conversation in clients that support embedded views, with an Open PDF link everywhere.
Sending is always two steps: the assistant first shows you the recipients and subject (send_quote without confirm), and only sends the email with the public quote link after you say yes. Quotes that a customer has accepted, or that belong to a group with an executed agreement, stay locked to the dashboard; payments, refunds, payment arrangements and agreement changes are never available to assistants.
With the quotes:settings permission the assistant can also maintain your quoting setup: the line-item catalog, tax rates, financing plans, company defaults such as expiration and deposit, option templates, and the text, images and photo boxes of your company quote templates (standard templates are copied first; template layout stays in the dashboard editor). With products:manage (company Admins only) it can change products and services pricing: every change is shown as a before/after diff with the channels it affects (Website Calculator, Orders Online, quote imports) and is saved only after you confirm.
Making sure it is the right building
Addresses are geocoded by Google, which is usually right but occasionally lands on a neighbour, a corner lot, or the wrong unit. Before a Human-Certified report is ordered, the assistant shows you a satellite preview of the building it found, with the pin and the detected roof outline, and warns you that the geocode may be off. You can:
- Accept it — say the building looks right and the assistant orders with the pin as shown.
- Check it on a map — the assistant gives you a link (or opens it for you) to a live satellite map where you tap or drag the pin onto the right roof. No sign-in is needed and the link stays valid for a day.
- Send it to a rep — ask the assistant to text or email the map link to a teammate in the field; the order goes through once they tap the building.
AI Instant Measures never wait for confirmation: a saved outline identifies the building that was measured, and you can ask the assistant to pick a different building and measure again. To view existing outlines and facet diagrams, ask the assistant to use render_instant_measure_images. It opens a gallery in supported clients and returns image links for clients without a gallery. Tool image data alone does not establish that an image is visible in the conversation. Once someone has confirmed a building for a customer job or lead, later orders and measurements for it reuse that confirmed pin automatically.
Seeing project photos
Ask the assistant to show the photos on a job, lead, or in your company library and it uses render_project_media: a thumbnail gallery of up to twelve items with enlarge and preview links, shown inside the conversation in clients that support embedded views (ChatGPT, for example) and returned as preview links everywhere else. The gallery shows the stored thumbnails and previews; the full-size original of a single photo and its AI caption and summary come from get_media_asset. Only media you can already see in the dashboard is included.
Disconnecting and updating permissions
Open your Instant Roofer dashboard → Company Settings → AI Assistants to see every connected assistant and revoke access. Access also expires automatically after 30 days without use. When Instant Roofer adds a permission after you connected, the same page shows New permissions available on that assistant with an Update permissions button; nothing changes until you click it.
What's new
- 2026-11-04 — Quoting and pricing control (1.9.0): assistants can now run the quoting tool end to end. Quotes: create_quote (blank, or seeded from an Instant Measure as Good / Better / Best options), update_quote, edit_quote_line_items, add_quote_option, copy_quote, set_quote_status, attach_quote_to_record and delete_quote. Layout and preview: get_quote_layout and edit_quote_layout change the quote's photos (the first full-width photo box is the featured image), text, rich text and page visibility; preview_quote_pdf renders the pages and displays them in a page viewer with an Open PDF link. Templates: list / get / copy_quote_template, edit_quote_template_content (text, images, photo boxes and page names on company templates; copy a standard template first) and set_default_quote_template. Sending and settings: send_quote is always two-step (preview the recipients and subject, then confirm: true) and sends the customer email with the public quote link; get_quote_settings plus upsert / archive tools for catalog items, tax rates and financing plans, update_quote_company_settings and quote option templates. Products and services: get_product_catalog, update_product, add_product and remove_product change the homeowner-facing pricing behind the Website Calculator, Orders Online and quote imports, each as a reviewed diff followed by confirm: true (company Admin only). Payments, refunds, payment arrangements and executed agreements stay in the dashboard. Reconnect and approve the new permissions to pick up the 31 new tools. Requires the new
quotes:write, quotes:send, quotes:settings, products:managepermission(s): connections approved before this date keep working but do not see these tools until their owner clicks Update permissions on the dashboard's AI Assistants tab and approves the permission when the assistant asks them to sign in again. - 2026-11-04 — Project media gallery (1.8.0): render_project_media displays Project Media photo and document thumbnails for up to twelve items from a lead, customer or the company library, with enlarge and preview links, under the existing media:read permission. Clients such as ChatGPT do not display the image content get_media_asset includeImage returns, so this is the way to show photos; the result also carries the preview links as a fallback. Full-resolution originals stay with get_media_asset. Reconnect or rescan to pick up the new tool.
- 2026-09-30 — Confidence (1.7.5): confidence.display (AI Measurement Confidence) now bands the area model's expected footprint miss as a share of the footprint: High at 6% or less, Medium up to 8.7%, Low above that. Before, the same expected miss read High on a small house and Low on a large one; about 1 in 6 measurements changes band. The Measurement API v3 confidence.band and measurements.confidence follow the same rule. Reconnect to refresh the output schemas.
- 2026-09-28 — Confidence (1.7.4): the reliability signal is the AI Measurement Confidence band again (confidence.display, from the area model's score), matching the report. measure_roof, get_measurement and find_measurements no longer return reportConfidence, and the Measurement API v3 confidence.band and measurements.confidence are that same area-model band, without limitedBy. Reconnect to refresh the output schemas.
- 2026-09-23 — Measurement API v3 reference (1.7.3): the api-v3-reference docs page and the Measurement API briefing now describe the current v3 contract - the composite confidence band with limitedBy, measurements.confidence, measurements.wasteCalculation (the report's waste table), lidar.wireframeQuality, the buildings/townhome blocks on attached units, the request options (imagery, report, boundingBox, zoom) and the pass-through measurement error codes. Keys with the AI Instant Measure Report enabled can request the PDF directly from the API ("report": {"pdf": true}); run_api_measurement results are unchanged and now say exactly which add-ons (imagery, report) direct calls carry that the tool does not. A failed measurement reports the engine's code (roof_not_found, ...) as measureApiCode instead of an unreadable message. Reconnect to refresh the tool descriptions.
- 2026-09-16 — Warnings and filters (1.7.2): resolve_address only ever returns US addresses, so it now carries a warning when the best worldwide match for the query is outside the US (the US result is probably a look-alike); the same check feeds confirm_building_location's confidenceReasons. measure_roof returns warnings when a fresh run's footprint differs by more than 15% from the building footprint detected at location confirmation. reportConfidence.limitedBy is no longer empty on low or medium bands: it names the binding component (area_low, eave_medium, ...) alongside the hard caps. list_project_media tag filters on the company feed return results again, and searchText finds the capture address of any photo. Reconnect to refresh the output schemas.
- 2026-09-16 — Error results fix (1.7.1): tool failures return isError with the { "error", "message" } envelope as text only, no longer as structuredContent. Hosts that validate structuredContent against the output schema (Cursor and other MCP SDK 1.x clients) had reported every failure such as not_found, address_not_found or location_token_invalid as protocol error -32602 instead of the actionable code; the codes and messages themselves are unchanged. Reconnect to refresh the tool catalog.
- 2026-09-14 — Measurement fields (1.6.1): measure_roof, get_measurement and find_measurements return measurements.wastePercent (the recommended waste already applied in sqft.suggested), reportConfidence (the composite Report Confidence band with what limits it) and attachedUnits on townhomes (the measurements are for the single attached unit at the pin). Reconnect to refresh the output schemas.
- 2026-09-13 — Measurement API accounts (1.6.0): the sign-in step now connects either product - the contractor platform or the pay-per-measurement Measurement API. API customers sign the API agreement during connection, receive free trial report credits, and get 12 dedicated tools: onboarding checklist, one-time API key reveal, v3 test measurements, Human Certified report ordering and status, report webhooks, and usage/billing estimates. Contractor connections are unchanged.
- 2026-09-13 — Entitlement access (1.5.0): OpenAI plugin connections use existing Human-Certified report credits without card fallback. Unavailable features explain the current entitlement and link to account information. All 29 tools publish structured output schemas; rescan the server in the submission portal after updating.
- 2026-09-13 — Image gallery (1.4.0): render_instant_measure_images displays saved satellite outlines and facet diagrams for up to four measurements, with expiring image links as a fallback. Refresh the tool catalog to pick up the new tool under the existing measure:read permission. Showing images does not run another measurement.
- 2026-09-13 — Report download fix (1.3.1): Instant Measure PDF links now open reliably from ChatGPT. Request a new report link to replace a failed or expired download; links remain valid for up to 15 minutes.
- 2026-09-13 — Submission update (1.3.0): structured output schemas for every tool, explicit action hints, HTTPS webhook protections, quote visibility checks, expiring measurement downloads, and data-use documentation. Reconnect to refresh the tool catalog.
- 2026-09-13 — CRM webhook tools:
list_webhooks,get_webhook,get_webhook_field_reference,create_webhook,update_webhook,delete_webhook,test_webhook. Assistants can now build the CRM integration end to end. Requires the newwebhooks:managepermission(s): connections approved before this date keep working but do not see these tools until their owner clicks Update permissions on the dashboard's AI Assistants tab and approves the permission when the assistant asks them to sign in again. - 2026-09-12 — First release: Instant Measures, Human-Certified Measure Reports, quotes, project media, and customer / lead lookups.
Assistants read the tool list when they connect. New tools under a permission you already granted appear the next time the assistant reconnects (restart it, or toggle the Instant Roofer server off and on). New tools behind a new permission need the Update permissions step above.