Portravo Construction Takeoff

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

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
66%
命名品質
98%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,953Token(工具定義)
~1.6 KB典型回應大小
中等的注意力影響(128k 上下文的 1.53%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "construction-takeoff": {
      "url": "https://portravo.com/mcp"
    }
  }
}

遠端端點

https://portravo.com/mcpstreamable-http

它能做什麼

工具清單

工具(8)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_profile

Identify the signed-in Portravo account after OAuth account linking.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢list_projects(offset)

Find construction projects in the connected Portravo account, including draft, review, priced and final estimates. Returns 50 projects per page. Use nextOffset to continue.

輸入結構描述

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 999999
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "nextOffset": {
      "type": [
        "integer",
        "null"
      ]
    }
  },
  "required": [
    "projects",
    "nextOffset"
  ]
}
🟢get_takeoff(project_id)

Read an owned construction project's plan files and extracted takeoff quantities, trades, confidence and human review status. Use this to summarize quantities or identify pending review. Quantities require estimator review before pricing or bidding.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$"
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "project": {
      "type": "object"
    },
    "lines": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "metro": {
      "type": [
        "object",
        "null"
      ]
    },
    "reviewRequired": {
      "type": "boolean"
    },
    "reviewUrl": {
      "type": "string"
    }
  },
  "required": [
    "project",
    "lines",
    "files",
    "reviewRequired",
    "reviewUrl"
  ]
}
🟢list_pricing_markets

List the regional construction pricing markets supported by Portravo before choosing a metro_code for a new estimate.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "metros": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "metros"
  ]
}
🟡create_project(name, address, metro_code, idempotency_key)

Create a new construction estimate project in the connected Portravo account. Supply the project name and optional address or supported metro_code. Reuse the same idempotency_key on retry to create exactly one project. Does not run extraction or consume estimate credits.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "address": {
      "type": "string",
      "maxLength": 200
    },
    "metro_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_.:-]+$"
    }
  },
  "required": [
    "name",
    "idempotency_key"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "reviewUrl": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "reviewUrl"
  ]
}
🟢attach_plan_pdf(project_id, plan, plan_inline, idempotency_key)

Attach a PDF selected in this conversation as the first plan for a new Portravo project. Only PDF attachments up to 25 MiB are supported. Prefer the host-provided plan download_url/file_id. If unavailable, plan_inline accepts canonical base64 computed from the exact user-uploaded PDF bytes, with file_name and application/pdf mime_type, up to 32 KiB. Supply exactly one of plan or plan_inline; never recreate document bytes from text. Existing plans and review work are protected. Supply a stable idempotency_key and reuse it on retry. Stores the selected PDF privately in the connected account; does not extract or consume credits.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$"
    },
    "plan": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "maxLength": 8192,
          "format": "uri"
        },
        "file_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "mime_type": {
          "type": "string",
          "const": "application/pdf"
        },
        "file_name": {
          "type": "string",
          "minLength": 5,
          "maxLength": 200,
          "pattern": "^[^/\\\\\\x00-\\x1f]+\\.pdf$"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "additionalProperties": false
    },
    "plan_inline": {
      "type": "object",
      "properties": {
        "data_base64": {
          "type": "string",
          "minLength": 4,
          "maxLength": 43692
        },
        "mime_type": {
          "type": "string",
          "const": "application/pdf"
        },
        "file_name": {
          "type": "string",
          "minLength": 5,
          "maxLength": 200,
          "pattern": "^[^/\\\\\\x00-\\x1f]+\\.pdf$"
        }
      },
      "required": [
        "data_base64",
        "mime_type",
        "file_name"
      ],
      "additionalProperties": false
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_.:-]+$"
    }
  },
  "required": [
    "project_id",
    "idempotency_key"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "oneOf": [
    {
      "required": [
        "plan"
      ],
      "not": {
        "required": [
          "plan_inline"
        ]
      }
    },
    {
      "required": [
        "plan_inline"
      ],
      "not": {
        "required": [
          "plan"
        ]
      }
    }
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "planFileId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "reviewUrl": {
      "type": "string"
    }
  },
  "required": [
    "planFileId",
    "status",
    "reviewUrl"
  ]
}
⚪run_takeoff(project_id, confirm_credit_use, idempotency_key)

Run the initial AI takeoff for a new project with an attached plan PDF. This consumes one estimate from the user's existing Portravo balance; ask for explicit credit-use confirmation before setting confirm_credit_use=true. Reuse the idempotency_key on retry to prevent a duplicate charge. Returns extracted quantities for review in Portravo, not a bid-ready estimate. Failed provider runs refund the reservation; existing review work cannot be overwritten.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$"
    },
    "confirm_credit_use": {
      "type": "boolean",
      "const": true
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_.:-]+$"
    }
  },
  "required": [
    "project_id",
    "confirm_credit_use",
    "idempotency_key"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "lines": {
      "type": "integer"
    },
    "sheets": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scopeNotes": {
      "type": "string"
    }
  },
  "required": [
    "ok",
    "lines",
    "sheets",
    "scopeNotes"
  ]
}
🟢export_reviewed_estimate(project_id)

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, return the Portravo review link and let the user complete quantities, assembly mappings and pricing there. Never exports unreviewed estimates.

輸入結構描述

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$"
    }
  },
  "required": [
    "project_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "downloadUrl": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "mimeType": {
      "type": "string"
    },
    "expiresAt": {
      "type": "string"
    },
    "reviewUrl": {
      "type": "string"
    }
  },
  "required": [
    "downloadUrl",
    "filename",
    "mimeType",
    "expiresAt",
    "reviewUrl"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本8 個工具