Documentation

The agent rail, documented.

Everything an AI assistant needs to work real M&A deal flow on AMIVA: live mandates over MCP, a connect-once OAuth flow for standing access, and drafting tools that always terminate in a human signature. Machines read, reason, and draft. Humans sign.

01

Quickstart

The rail speaks MCP (streamable HTTP). Point any MCP client at the endpoint — no key needed for the public tier:

https://deal-ai.net/api/agent/mcp

A first session, end to end:

1. search_mandates { "industry": "healthcare", "min_ebitda": 500000 }
2. get_mandate     { "slug": "<from results>" }
3. request_nda_access { "slug": "<slug>" }
   → returns an NDA link for YOUR PRINCIPAL to sign (agents never sign)
4. After the human executes the NDA, connect with credentials (below)
   and the room's tools unlock: get_deal_facts, ask_question, draft_ioi…

Claude / ChatGPT connector setup: add a custom connector with the endpoint above. For standing authenticated access use the desk endpoint — it runs the OAuth flow in the browser at connect time.

02

Connection modes

Anonymous

/api/agent/mcp

No auth. Public tier only: search, fact sheets, the NDA checkpoint. Start here.

Connect once (OAuth)

https://deal-ai.net/api/agent/desk

The connector surface for claude.ai / ChatGPT. Dynamic client registration, authorization-code + PKCE, refresh rotation. The grant carries your principal's identity; every session resolves their live rooms.

Room key

amiva_ak_…

A scoped key your principal mints from their deal room ("Your AI assistant" card), shown once. Bearer on the mcp endpoint. Revocable any time; dies with the room.

03

Tool catalogue

Tools gate at call time by your credential — a public session sees the credentialed tools listed but gets a friendly checkpoint, never data. * = required.

search_mandatespublic

Search live, advisor-run sell-side mandates (lower middle market, ~$3–30M enterprise value). Returns teaser-tier facts: industry, geography, revenue, EBITDA with earnings basis, highlights. Every mandate is a real, current engagement — not a scraped listing.

industryKeyword, e.g. 'healthcare', 'HVAC', 'advertising'
geographyRegion keyword
min_revenue / max_revenueUSD bounds
min_ebitda / max_ebitdaUSD bounds
get_mandatepublic

One mandate's full teaser-tier fact sheet by slug.

slug*Mandate slug from search_mandates
request_nda_accesspublic

The human-in-the-loop checkpoint. Returns the NDA link for your PRINCIPAL to review and sign — agents never sign. Once the human executes the NDA, the room unlocks and credentialed tools light up.

slug*Mandate slug
get_my_accesscredentialed

Your room's current access tier and what unlocks the next one.

get_deal_factscredentialed

The tier-matched fact sheet for your principal's room. Documents themselves are never served over the rail — your principal reads those in the deal room, watermarked.

get_questionscredentialed

Your room's diligence Q&A thread (the shared lane).

ask_questioncredentialed

Post a diligence question to the advisor on your principal's behalf.

question*The question (plain text)
categoryfinancials | operations | legal | technology | market | other
flag_mandatecredentialed

Nudge your principal: this mandate looks relevant. Lands as a card in their deal room.

slug*Mandate slug
reason*Why it fits their thesis (shown to the human)
draft_ioicredentialed

Draft an Indication of Interest for your principal to review and submit — THE AGENT NEVER SUBMITS. Returns an approval_url where the human signs in, reviews every number, and submits through the standard flow.

value_low / value_high*Enterprise-value range, USD
financing*Array: CASH, SBA_LOAN, BANK_DEBT, SELLER_NOTE, INVESTOR_EQUITY, EARNOUT
structureASSET_PURCHASE | STOCK_PURCHASE | MERGER | FLEXIBLE
contingenciese.g. 'Financing', 'Quality of earnings'
timeline_daysDays to close, 14–365 (default 60)
notesContext for the advisor (≤2000 chars)

One active draft per mandate; calling again replaces it. 5 calls/day.

04

REST API (public tier)

Prefer plain JSON? The public tier mirrors over REST — same shapes as the MCP tools:

GET https://deal-ai.net/api/agent/v1/mandates
GET https://deal-ai.net/api/agent/v1/mandates?industry=hvac&min_ebitda=500000
GET https://deal-ai.net/api/agent/v1/mandates/{slug}

curl -s https://deal-ai.net/api/agent/v1/mandates | jq '.mandates[] | {slug, industry, ebitda}'

05

Errors & limits

Every failure is structured and self-explaining — key off error_code, and read human_action for what your principal should do:

{
  "error": {
    "error_code": "TIER_TOO_LOW",   // KEY_INVALID · RATE_LIMITED · NOT_FOUND ·
    "message": "…",                  // VALIDATION · INVALID_INPUT · WRONG_RAIL · …
    "human_action": "Your principal can unlock this by …"
  }
}

Rate limits are per-credential and generous for real workflows (drafting tools are tighter: draft_ioi is 5/day). On RATE_LIMITED, wait and retry once — don't hammer.

06

Rules of the rail

Humans sign everything binding.

NDAs, IOIs, LOIs — the rail's drafting tools terminate in an approval URL where a human reviews and executes. An agent that tries to skip the human hits a checkpoint, not a loophole.

No documents over the rail.

Fact sheets are tier-matched summaries. Actual deal documents live in the watermarked deal room, for humans.

Confidentiality is structural.

Your credential scopes you to your principal's rooms. Cross-room probes read as not-found — there is nothing to enumerate.

Every mandate is real.

These are live, advisor-run engagements — treat inquiry as if you were emailing the banker, because functionally you are.

AMIVA Equity Partners · the agent rail

Information on this site is provided for evaluation by qualified parties only and does not constitute an offer or solicitation to purchase or sell securities. AMIVA Equity Partners is a sell-side M&A advisory firm.