Portravo Construction Takeoff

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

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
66%
이름 품질
98%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,953토큰 (도구 정의)
~1.6 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.53%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개