MCP Tool Reference

All 17 tools available through the Decision Built MCP server.

Contacts

get_contactscontacts:read

List contacts in the organization. Supports filtering by lifecycle phase, pipeline stage, and search query.

ParameterTypeRequiredDescription
searchstringNoSearch by name, email, phone, or address
lifecycle_phasestringNoFilter: lead, prospect, customer, past_customer
pipeline_stage_idstringNoFilter by pipeline stage ID
limitnumberNoMax results (default 25, max 100)
offsetnumberNoPagination offset
create_contactcontacts:write

Create a new contact. Enters the pipeline at the default first stage. Actor type is INTEGRATION.

ParameterTypeRequiredDescription
first_namestringYesContact first name
last_namestringYesContact last name
emailstringNoEmail address
phonestringNoPhone number
address_line1stringNoStreet address
citystringNoCity
statestringNoState abbreviation
zipstringNoZIP code
sourcestringNoLead source (e.g. "mcp_integration")
notesstringNoInitial notes

Pipeline

get_pipelinepipeline:read

Get pipeline stage configuration with contact counts per stage. Shows the Kanban board structure.

move_pipeline_stagepipeline:write

Move a contact to a different pipeline stage. Emits a stage_changed event.

ParameterTypeRequiredDescription
contact_idstringYesContact ID to move
stage_idstringYesTarget pipeline stage ID
reasonstringNoWhy the contact is being moved

Findings & Observations

get_inspectionsinspections:read

List inspections for a contact or across the organization.

ParameterTypeRequiredDescription
contact_idstringNoFilter for a specific contact
limitnumberNoMax results (default 25, max 100)
get_observationsobservations:read

Get field findings for an inspection. Returns fact keys, values, source, and confidence.

ParameterTypeRequiredDescription
inspection_idstringYesInspection ID
fact_key_patternstringNoFilter by fact key prefix (e.g. "roof.shingle")
detect_tradesobservations:read

Analyze findings for an inspection to detect what trades are present.

ParameterTypeRequiredDescription
inspection_idstringYesInspection ID to analyze

Scope

get_scope_linesscope:read

Get current scope lines for an inspection with trade, description, quantity, unit, and pricing.

ParameterTypeRequiredDescription
inspection_idstringYesInspection ID
tradestringNoFilter by trade (e.g. "roofing")
suggest_scope_linescope:readadvisory only

Suggest a new scope line item. Returns a structured suggestion — does NOT write to scope. Advisory only.

ParameterTypeRequiredDescription
inspection_idstringYesInspection ID
tradestringYesTrade (e.g. "roofing", "siding")
descriptionstringYesFull description using industry terms
quantitynumberYesSuggested quantity
unitstringYesUnit: SQ, LF, EA, SF, HR
categorystringYesRemove & Replace, New Install, Repair, etc.
justificationstringYesWhy this line is needed
suggest_supplementscope:readadvisory only

Build a supplement argument for an insurance carrier. Advisory only — does NOT submit.

ParameterTypeRequiredDescription
inspection_idstringYesInspection ID
tradestringYesTrade
item_namestringYesItem being supplemented
supplement_typestringYesquantity_shortfall, missing_line_item, unit_price_low, code_required
insurance_valuenumber|nullNoCarrier value
observed_valuenumberYesValue from field measurement
unitstringYesUnit of measure
justificationstringYesDetailed argument with evidence
code_referencestring|nullNoBuilding code ref (e.g. "IRC R905.2.7.1")

Pricing & Estimates

calculate_pricingpricing:read

Look up pricing from templates. Returns unit cost, extended cost, and margin. Template lookup only — does not trigger a pricing run.

ParameterTypeRequiredDescription
scope_keystringYesScope key (e.g. "roof.shingle.remove_replace")
quantitynumberYesQuantity to price
unitstringYesUnit of measure
lookup_supplier_productsuppliers:read

Search supplier catalogs (ABC Supply, SRS, Beacon). Supplier pricing is INTERNAL ONLY.

ParameterTypeRequiredDescription
querystringYesMaterial search query
trade_typestringYesTrade context (e.g. "roofing")
providerstring|nullNoSpecific supplier or null for all
get_estimatespricing:read

List estimates for a contact, job, or org. Use this to find the estimate ID before proposing lines into it.

ParameterTypeRequiredDescription
contact_idstringNoFilter by contact
job_container_idstringNoFilter by job container
statusstringNodraft, finalized, sent, viewed, accepted, rejected, expired
limitnumberNoMax results (default 25, max 100)
propose_estimate_lineproposals:write

Propose a new line item into the contractor's review queue. Creates a pending agent_proposal that appears in the Decision Built UI for one-click acceptance — only on accept does it materialize into the estimate. Use this when an external tool (e.g. a contractor's own calculator built with Claude Code) computes a line that should be considered.

ParameterTypeRequiredDescription
estimate_idstringYesTarget estimate ID (find via get_estimates)
descriptionstringYesLine item description
quantitynumberYesProposed quantity
unit_typestringYesUnit (EA, SF, SQ, LF, HR, SHEET, etc.)
unit_pricenumber|nullNoSell price per unit (or derive from costs)
material_costnumber|nullNoMaterial cost per unit
labor_costnumber|nullNoLabor cost per unit
margin_percentnumber|nullNoMargin percent (e.g. 35 = 35%)
cost_typestringNomaterial, labor, or other
display_groupstring|nullNoSection to add line to
rationalestringYesWhy this line is being proposed (shown to contractor)
confidencenumber|nullNoConfidence 0-1 (optional)
external_sourcestring|nullNoExternal tool identifier for audit

Intelligence

lookup_scope_knowledgeintelligence:read

Query the learning flywheel for historical data on fact keys. Returns approval rates, quantities, and regional patterns.

ParameterTypeRequiredDescription
fact_keysstring[]YesFact keys to look up
get_event_historyevents:read

Query the event stream for an entity. Returns events with type, actor, and payload.

ParameterTypeRequiredDescription
entity_typestringYesEntity type (contact, inspection, estimate)
entity_idstringYesEntity ID
event_typestringNoFilter by event type
limitnumberNoMax events (default 25, max 100)
query_projectionsprojections:read

Query AI-generated projections. Non-authoritative advisory signals.

ParameterTypeRequiredDescription
entity_typestringYesEntity type
entity_idstringNoSpecific entity ID
signal_typesstring[]NoSignal types to include
limitnumberNoMax results (default 10)