Build

MCP Tools

Every live tool the Lev MCP server exposes, grouped by domain, with parameters and response shape.

Updated June 2026

Reading the Catalog

  • R / W — Read tools are safe to call repeatedly. Write tools mutate state and should be gated behind human confirmation in agent workflows.
  • Parameters — only the notable ones are listed. Most list tools accept limit, offset, and sort as well.
  • Enums — all enum values are lowercase on the wire. The server lowercases user input automatically, but prompt enums in lowercase to reduce model errors.
  • Related REST page — links to the matching reference in the Lev API docs for full schema.
  • Coming soon — three lender-discovery tools (search_lenders_for_deal, get_lender_search_results, search_lender_directory) are documented below but not live in the MCP surface today. They are being reworked to handle large payloads, MCP-created deal properties, and async ranking signals. Expect them to land in a follow-up release.
Lender discovery tools are in the works

Rows below with Coming soon in the description are documented for the surface they are moving toward. They do not appear in the live tool list today. If your workflow depends on lender matching, plan for it to land in a subsequent release.

Deals

ToolTypeDescription
list_dealsRSearch deals. Filters: loan_type, transaction_type, business_plan, min_loan_amount, max_loan_amount. See Deals.
get_dealRFetch a deal with optional include for financials, properties, team. Takes deal_id.
summarize_dealRNarrative deal snapshot at three detail levels (brief, standard, memo). Takes deal_id and optional detail. Consolidates get_deal, search_deal_index, list_term_sheets, and list_placements into prose for chat surfaces; quantitative claims cite their source document.
search_deal_indexRSearch indexed canonical deal facts for a specific question. Takes deal_id, context, optional min_score, limit, and include_signed_urls. Use for source-backed underwriting facts, metrics, and provenance after resolving the deal. See Search Index.
list_deal_index_observationsRInspect every value extracted from documents for a single deal fact. Takes deal_id plus sot_id (preferred, from a prior search_deal_index result) or metric_id. Use to show provenance, pick among candidate values, or prepare an observation_id for update_deal_index_fact. See Index Observations.
update_deal_index_factWChange a deal fact's canonical value. Takes deal_id, sot_id, and exactly one of value (free-text replacement) or observation_id (promote an extracted value — preserves source provenance). Server-side editability is enforced; non-editable metrics return a clear error. See Update Index Fact.
list_deal_index_metric_definitionsRList the metrics that can be recorded on a deal, each with a suggested_write_via routing hint. Takes deal_id plus optional metric_label, category_id, limit, offset. Use to discover what's recordable before insert_deal_index_facts. See Metric Definitions.
insert_deal_index_factsWRecord one or more user-supplied metric values on a deal (NOI, occupancy, valuation, etc.) that it doesn't have yet. Takes deal_id and values — each a metric_id plus value, with optional entity_ref from GET /index/entities. To correct a value the deal already has, use update_deal_index_fact instead. See Insert Index Facts.
list_deal_memosRList a deal's memos (AI-generated deal books) — both published and draft, most recently active first. Takes deal_id plus optional limit (default 20) / offset. Returns each memo's uuid, title, type, status (published/draft), published date, and pdf_ready flag; no PDF link (use get_deal_memo). See List Memos.
get_deal_memoRFetch one memo for a deal with a ready-to-click PDF link. Takes deal_id, memo_id (the memo's uuid), and optional quality (original default, or high/medium/low). Unrendered drafts have no PDF (pdf_ready: false). See Get Memo.
create_dealWCreate a new deal. Requires title. Optional: loan_amount, loan_type, transaction_type, business_plan, description, estimated_close_date, sponsor_private_company_id.
update_dealWUpdate any deal field. Takes deal_id plus fields to change.
delete_dealWSoft delete a deal. Takes deal_id.
search_lenders_for_dealWComing soon. Kick off AI-powered lender matching for a deal. Takes deal_id. Returns a search job handle. Not live today — see the note at the top of this page.
get_lender_search_resultsRComing soon. Fetch ranked lender matches for a deal. Takes deal_id. Not live today.
move_deal_to_pipeline_statusWMove a deal to a specific pipeline status. Takes deal_id, pipeline_id, pipeline_status_id.

Enums

  • loan_type: construction, heavy_bridge, light_bridge, permanent, land, predevelopment, tbd
  • transaction_type: acquisition, refinance, new_construction, tbd
  • business_plan: stabilized, value_add, construction, land

Related REST pages: Deals, Pipelines.

Contacts

ToolTypeDescription
list_contactsRSearch contacts. Filters: contact_type, email, first_name, last_name.
get_contactRFetch a contact by contact_id.
create_contactWCreate a contact linked to a company. Requires company_id, contact_type, first_name, last_name.
update_contactWUpdate any contact field. Takes contact_id plus fields to change.

Enumcontact_type: lender_contact, sponsor.

Related REST page: Contacts.

Companies

ToolTypeDescription
list_companiesRSearch private companies (lenders, sponsors). Filters: name, state, city.
get_companyRFetch a company by company_id.
create_companyWCreate a company. Requires name. Optional: company_type, website, city, state.
update_companyWUpdate any company field. Takes company_id plus fields to change.

Enumcompany_type: lender, sponsor.

Related REST page: Companies.

Lenders

ToolTypeDescription
search_lender_directoryRComing soon. Search the institutional lender directory. Filters: state. Not live today — see the note at the top of this page.
get_lenderRFetch a lender by lender_id. Optional include_programs to return lending programs. Useful when a lender_id surfaces from placements, term sheets, or companies.
AI lender matching is coming soon

search_lenders_for_deal and get_lender_search_results under Deals drive AI-ranked lender matching for a specific deal. Both are documented above but not live today. get_lender continues to work for direct lookups once a lender_id is known.

Related REST pages: Lender Directory.

Placements

ToolTypeDescription
list_placementsRSearch lender placements (outreach). Filters: deal_id, status, lender_status, visibility, contact_id, private_company_id, plus min_created_at/max_created_at and min_updated_at/max_updated_at range filters. Sort: status, score, created_at, updated_at (prefix - for descending).
get_placementRFetch a placement by placement_id with match score and metadata.
create_placementWOpen lender outreach on a deal. Requires deal_id and private_company_id. Optional contact_id, status, visibility, description, score, outreach_date, lender_status. Cannot create with status="archived". See Create Placement.
update_placementWUpdate a placement. Takes placement_id plus any of status, visibility, description, score, outreach_date, lender_status. Use status="archived" to remove (no DELETE verb). deal_id, private_company_id, and contact_id are locked at create time. See Update Placement.

Enums

  • status: new, sent, lender_reviewing, terms_received, term_sheet_received, executed_ts_in_closing, closed, unresponsive, willing_to_negotiate, lender_passed, archived, carve_out, carve_out_closed
  • lender_status: origination, new, lead_qualification, quotation, negotiation, offer, term_sheet, good_faith_deposit, diligence, in_closing, closed, archived
  • visibility: hidden, masked, shared

archived is reserved for update_placement and cannot be sent to create_placement.

Related REST page: Placements.

Pipelines

ToolTypeDescription
list_pipelinesRFetch all pipelines with their statuses. No parameters.
get_pipelineRFetch a single pipeline with all statuses and their IDs.
summarize_pipelineRNarrative pipeline snapshot at three detail levels (brief, standard, memo). Takes optional pipeline_id (defaults to the lowest-order pipeline) and detail. Aggregates stages, per-stage deal counts, loan totals, and highlighted deals (stuck longest, closing soon) into prose.

To read a deal's current pipeline status, call get_deal with include=pipelines (the default) — each deal returns up to 10 current pipeline rows, each including pipeline_id, status_name, and updated_at.

Related REST page: Pipelines.

Term Sheets

ToolTypeDescription
list_term_sheetsRFetch loan quotes for a deal. Takes deal_id.
get_term_sheetRFetch a full term sheet with rates, fees, and terms. Takes deal_id and term_sheet_id.
summarize_term_sheetsRNarrative comparison of all term sheets on a deal at three detail levels (brief, standard, memo). Takes deal_id and optional detail. Computes the lowest-rate and lowest all-in-cost leaders and surfaces rate, fee, and term tradeoffs.
create_term_sheetWRecord a lender quote against a placement. Requires deal_id, placement_id, total_rate, initial_funding, quote_type, and rate_type. Many optional fields for fees, recourse, DSCR/debt yield, extension options, etc. See Create Term Sheet.
update_term_sheetWRevise a term sheet. Takes deal_id and term_sheet_id plus any field to change. placement_id and deal_id are locked. Omitted arguments stay unchanged; the MCP wrapper does not forward explicit nulls, so the REST null-clearing behavior for base_rate and the non-nullable boolean 422s are reachable through the REST API only. See Update Term Sheet.
delete_term_sheetWSoft-delete a term sheet (reversible by Lev support). Takes deal_id and term_sheet_id. See Delete Term Sheet.

Enums

  • quote_type: guidance, indication, soft_quote, hard_quote, term_sheet
  • rate_type: fixed, floating
  • recourse: personal_recourse, fund_corporate_recourse, non_recourse
  • recourse_type: full, partial, burn_off
  • floor_type: base_rate, total_rate
  • prepayment_penalty: step_down, defeasance, minimum_interest, yield_maintenance, minimum_multiple, swap_breakage, no_prepayment_penalty, no_ability_to_prepay, flat_fee, other
  • payment_method: accrued, partial, current_pay
  • capital_source_type: balance_sheet, agency, cmbs_clo, warehouse, sba
  • base_rate: either an enum key (e.g. treasury_y5, sofr_m1, prime_rate) or the matching display value from get_base_rates (e.g. Treasury 5-Yr, SOFR 30-Day Avg, Prime Rate). Use the literal none-fixed for fixed-rate quotes with no underlying benchmark

Related REST page: Term Sheets.

Market Data

ToolTypeDescription
get_base_ratesRCurrent SOFR, Prime, Treasury rates. Cached ~30 minutes. No parameters.
get_asset_typesRProperty asset type classifications (Office, Multifamily, Industrial, Retail, Hotel, Self-Storage, ...). No parameters.

Related REST page: Market Data.

Account

ToolTypeDescription
get_my_profileRReturns user, active account, available accounts, subscription, granted scopes. Call this first to confirm the connection.
list_team_membersRFetch team members in the active account.
list_available_accountsRFetch accounts the user can switch to.
switch_accountWPin the MCP session to a specific account by name or slug (fuzzy matched).

See MCP Authentication for how account context propagates across tool calls.

Related REST page: Account & Team.

Billing

ToolTypeDescription
get_my_billing_summaryRFetch the active account's subscription metadata and credit balance. Use before workflows that may consume credits.
get_my_credit_balanceRFetch only the active account's credit balance. Returns enabled, balance, and unit.

Related REST page: Billing.

Response Shape

Every tool returns a JSON string. The shape depends on the operation.

List tools

{
  "deals": [ { "id": 101, "title": "..." }, { "id": 102, "title": "..." } ],
  "total": 237,
  "showing": 20,
  "has_more": true
}

Detail tools

{
  "deal": { "id": 101, "title": "...", "loan_amount": 12500000 }
}

Write tools

{
  "message": "Deal created successfully",
  "deal": { "id": 103, "title": "..." }
}

Errors

Errors are returned as plain strings, never as raised exceptions. Common patterns include "Validation failed: loan_amount must be greater than 0" or "Deal not found: 101". See MCP Errors & Limits for the full convention.

Next steps
More in this section