Skip to content

Portravo Construction Takeoff

by portravo.com · remote · no sign-in to list tools · v1.0.2 · published by com.portravo

Review construction plan takeoffs and download reviewed estimates with Portravo account linking.

Changes · 4

10 tools: 4 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http construction-takeoff https://portravo.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Changes things 4Claude Code: ask
  • attach_plan_pdfAttach a PDF the user selected in this conversation as the first plan for a new Portravo project.No findings

    Why it is in this group

    • The name "attach_plan_pdf" says "attach": a word for a change.
    Description, as the server wrote it
    Attach a PDF the user selected in this conversation as the first plan for a new Portravo project. Plan PDFs must be 10 MiB or smaller. Accepts exactly one of plan, a host-provided download_url and file_id, or plan_inline, canonical base64 of the exact user-uploaded PDF bytes with file_name and application/pdf mime_type, up to 32 KiB. A PDF with no file link above 32 KiB, or any PDF above the direct limit, is uploaded in the browser at the project's reviewUrl instead. That browser path streams up to 50 MiB for the selected automatic trades. Projects that already have a plan or review work are refused, so existing work is never replaced. Repeating a call with the same idempotency_key returns the original result. Stores the selected PDF privately in the connected account; does not extract or consume credits.

    Annotations the server declares

    • title: Attach a construction plan PDF
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • create_projectCreate a new construction estimate project in the connected Portravo account from a project name, an explicit trades selection returned by preflight_takeoff, an optional address an…No findings

    Why it is in this group

    • The name "create_project" says "create": a word for a change.
    Description, as the server wrote it
    Create a new construction estimate project in the connected Portravo account from a project name, an explicit trades selection returned by preflight_takeoff, an optional address and an optional supported metro_code. Trades are required for customer projects; only the isolated synthetic reviewer may omit them. Repeating a call with the same idempotency_key returns the original project instead of creating another. Returns reviewUrl, the project page where the user can also upload a plan PDF in the browser. Does not run extraction or consume estimate credits.

    Annotations the server declares

    • title: Create a takeoff project
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • preflight_takeoffBefore creating or starting a takeoff, inspect current automatic/team-assisted trades, the exact existing-credit requirement, balance, upload limits and review link.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Before creating or starting a takeoff, inspect current automatic/team-assisted trades, the exact existing-credit requirement, balance, upload limits and review link. Supply either project_id or proposed trades, or neither to discover availability. Does not reserve credits, start work, buy anything or bill overage. Reviewer scope is identified separately.

    Annotations the server declares

    • title: Check trade availability and existing credits
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • run_takeoffRun the initial AI takeoff for a new project whose plan PDF was attached with attach_plan_pdf or uploaded by the user on the project page in Portravo.No findings

    Why it is in this group

    • The name "run_takeoff" says "run": a word for a change.
    Description, as the server wrote it
    Run the initial AI takeoff for a new project whose plan PDF was attached with attach_plan_pdf or uploaded by the user on the project page in Portravo. Call preflight_takeoff first and obtain approval for its selected trades and creditsRequired. Set confirmed_trades to the approved selection and max_credits to that approved ceiling (defaults to one for older clients). Uses only existing plan allowance and purchased credits, never billed overage; a changed selection/cost or insufficient balance is refused before starting. The isolated synthetic reviewer retains its bounded one-credit standard fixture. Repeating a call with the same idempotency_key does not charge again. Returns asynchronous progress; use get_takeoff_status until done, then get_takeoff for source-linked human review. A completed run is not a bid-ready estimate. Failed provider runs refund the reservation; existing review work cannot be overwritten.

    Annotations the server declares

    • title: Extract a construction plan takeoff
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 6Claude Code: allow
  • export_reviewed_estimateGet a short-lived Excel XLSX download for an owned Portravo estimate after every takeoff line has been reviewed and the estimate is priced or final.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get a short-lived Excel XLSX download for an owned Portravo estimate after every takeoff line has been reviewed and the estimate is priced or final. If review is incomplete, the call returns a review_required error with the Portravo review link, where quantities, assembly mappings and pricing are completed. Never exports unreviewed estimates.

    Annotations the server declares

    • title: Download a reviewed estimate workbook
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_profileIdentify the signed-in Portravo account after OAuth account linking.No findings

    Why it is in this group

    • The name "get_profile" says "get": a word for reading.
    Description, as the server wrote it
    Identify the signed-in Portravo account after OAuth account linking.

    Annotations the server declares

    • title: Connected Portravo account
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_takeoffRead an owned construction project's plan files (attached from chat or uploaded in Portravo) and extracted takeoff quantities, trades, confidence and human review status.No findings

    Why it is in this group

    • The name "get_takeoff" says "get": a word for reading.
    Description, as the server wrote it
    Read an owned construction project's plan files (attached from chat or uploaded in Portravo) and extracted takeoff quantities, trades, confidence and human review status. reviewRequired reports whether any line still needs estimator review. Quantities require estimator review before pricing or bidding.

    Annotations the server declares

    • title: Read a plan takeoff
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_takeoff_statusRead an owned project and its latest asynchronous takeoff progress, completion limitations and review link.No findings

    Why it is in this group

    • The name "get_takeoff_status" says "get": a word for reading.
    Description, as the server wrote it
    Read an owned project and its latest asynchronous takeoff progress, completion limitations and review link. Never advances or restarts a run, uses credits or changes billing. Poll this tool after run_takeoff returns a running result.

    Annotations the server declares

    • title: Read takeoff progress
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_pricing_marketsList the regional construction pricing markets supported by Portravo.No findings

    Why it is in this group

    • The name "list_pricing_markets" says "list": a word for reading.
    Description, as the server wrote it
    List the regional construction pricing markets supported by Portravo. The returned markets are the accepted metro_code values for create_project.

    Annotations the server declares

    • title: Supported pricing markets
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_projectsFind construction projects in the connected Portravo account, including draft, review, priced and final estimates.No findings

    Why it is in this group

    • The name "list_projects" says "list": a word for reading.
    Description, as the server wrote it
    Find construction projects in the connected Portravo account, including draft, review, priced and final estimates. Returns 50 projects per page; nextOffset is the offset of the next page, or null on the last page.

    Annotations the server declares

    • title: List construction projects
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http construction-takeoff https://portravo.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__construction-takeoff__get_takeoff_status",
      "mcp__construction-takeoff__get_profile",
      "mcp__construction-takeoff__list_projects",
      "mcp__construction-takeoff__get_takeoff",
      "mcp__construction-takeoff__list_pricing_markets",
      "mcp__construction-takeoff__export_reviewed_estimate"
    ],
    "ask": [
      "mcp__construction-takeoff__preflight_takeoff",
      "mcp__construction-takeoff__create_project",
      "mcp__construction-takeoff__attach_plan_pdf",
      "mcp__construction-takeoff__run_takeoff"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as construction-takeoff. Review it before you use it.