Build

MCP Tools

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

Updated April 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 External API v2 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 at launch. 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 launched 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.
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 at launch — 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 at launch — see Lender Search.
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, Lender Search.

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 at launch — 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 at launch. get_lender continues to work for direct lookups once a lender_id is known.

Related REST pages: Lender Directory, Lender Search.

Placements

ToolTypeDescription
list_placementsRSearch lender placements (outreach). Filters: deal_id, status, lender_status.
get_placementRFetch a placement by placement_id with match score and metadata.

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

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.

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.

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.

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