{"serverInfo":{"name":"Prism","title":"Prism","version":"1.0.0","description":"Reads leases, mortgages, insurance policies and HOA documents and returns every deadline with its exact date, what happens if it is missed, and the sentence it came from.","websiteUrl":"https://prism.parad1gm.com/agents","icons":[{"src":"https://prism.parad1gm.com/brands/prism-mark.svg","mimeType":"image/svg+xml","sizes":["any"]}]},"authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"prism_review_contract","title":"Read a contract","description":"Send a contract for Prism to read: a lease, mortgage, insurance policy, HOA document or commercial lease. Give exactly one of url (a public link), text (the words, if you have them), or fileBase64 (a PDF or photo). Returns a contractId at once; reading takes about a minute, then call prism_get_contract. Sending the same document again returns the same contract. Reading is free; full results cost 1 credit ($0.50) when first delivered, and accounts start with 3 free.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public https link to the contract (PDF, photo, or plain text)."},"text":{"type":"string","minLength":20,"maxLength":400000,"description":"The contract's full text, if you already have it. Fastest."},"fileBase64":{"type":"string","maxLength":34000000,"description":"The file, base64-encoded: a PDF or a photo, up to 25MB."},"fileName":{"type":"string","maxLength":200,"description":"A name to show for the contract, e.g. \"lease-2026.pdf\"."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"contractId":{"type":"string","description":"Prism id of the contract."},"name":{"type":"string","description":"File name or title of the contract."},"status":{"type":"string","description":"PENDING while reading, COMPLETE when done, FAILED if Prism could not read it."},"reviewUrl":{"type":"string","description":"Link to the contract in the Prism app."},"nextStep":{"type":["string","null"],"description":"What the agent should do next, in plain words; null when nothing is needed."},"deduplicated":{"type":"boolean","description":"true when this exact document was sent before; it is never charged twice."},"documentType":{"type":["string","null"],"description":"What kind of contract Prism found, e.g. RESIDENTIAL_LEASE."},"summary":{"type":["string","null"],"description":"A short summary of the contract, once read."},"access":{"type":"string","enum":["full","preview"],"description":"full when every fact is included, preview when only the free facts are."},"deadlines":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"Machine name of the deadline type, e.g. RENEWAL_NOTICE."},"label":{"type":"string","description":"Human-readable deadline type."},"dueDate":{"type":["string","null"],"description":"ISO date (YYYY-MM-DD) the deadline falls on, when it can be computed."},"daysUntilDue":{"type":["number","null"],"description":"Days from today until dueDate; negative when past."},"recurrence":{"type":["string","null"],"description":"How the deadline repeats, if it does."},"consequence":{"type":["string","null"],"description":"What happens if the deadline is missed."},"sourceQuote":{"type":["string","null"],"description":"The sentence of the contract the deadline comes from."},"confidence":{"type":["number","null"],"description":"How sure Prism is, from 0 to 1."}},"required":["kind","label","dueDate","daysUntilDue","recurrence","consequence","sourceQuote","confidence"],"additionalProperties":false},"description":"Deadlines, soonest first."},"risks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine name of the risk."},"severity":{"type":"string","description":"How serious the risk is."},"plainEnglish":{"type":["string","null"],"description":"The risk explained in plain words."},"sourceQuote":{"type":["string","null"],"description":"The sentence of the contract the risk comes from."}},"required":["code","severity","plainEnglish","sourceQuote"],"additionalProperties":false},"description":"Risks found in the contract."},"withheldFacts":{"type":"number","description":"How many deadlines and risks the preview is holding back."},"billing":{"type":"object","properties":{"creditSpent":{"type":"boolean","description":"Whether this call spent a credit."},"coveredBy":{"anyOf":[{"type":"string","enum":["subscription","credit-or-purchase"]},{"type":"null"}],"description":"What pays for the full results; null for a preview."},"creditsRemaining":{"type":"number","description":"Credits left in the account."},"status":{"type":"string","enum":["unlimited","ok","low","empty"],"description":"Where the account's credits stand: unlimited (subscription), ok, low (2 or fewer left), or empty (none; unlocks return code insufficient_credits)."}},"required":["creditSpent","coveredBy","creditsRemaining","status"],"additionalProperties":false},"failureReason":{"type":["string","null"],"description":"Why Prism could not read the document, when status is FAILED."}},"required":["contractId","name","status","reviewUrl","nextStep","deduplicated"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"prism_get_contract","title":"Get a contract","description":"Returns one contract's status and results, by contractId. When reading is COMPLETE: the summary, deadlines (kind, dueDate, daysUntilDue, consequence, the source sentence) and risks. If the contract is already paid for, every fact; otherwise the free 3-fact preview and how many facts are withheld. Never spends credits -- use prism_unlock_contract for that.","inputSchema":{"type":"object","properties":{"contractId":{"type":"string","minLength":1,"description":"From prism_review_contract or prism_list_contracts."}},"required":["contractId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"contractId":{"type":"string","description":"Prism id of the contract."},"name":{"type":"string","description":"File name or title of the contract."},"status":{"type":"string","description":"PENDING while reading, COMPLETE when done, FAILED if Prism could not read it."},"reviewUrl":{"type":"string","description":"Link to the contract in the Prism app."},"nextStep":{"type":["string","null"],"description":"What the agent should do next, in plain words; null when nothing is needed."},"documentType":{"type":["string","null"],"description":"What kind of contract Prism found, e.g. RESIDENTIAL_LEASE."},"summary":{"type":["string","null"],"description":"A short summary of the contract, once read."},"access":{"type":"string","enum":["full","preview"],"description":"full when every fact is included, preview when only the free facts are."},"deadlines":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"Machine name of the deadline type, e.g. RENEWAL_NOTICE."},"label":{"type":"string","description":"Human-readable deadline type."},"dueDate":{"type":["string","null"],"description":"ISO date (YYYY-MM-DD) the deadline falls on, when it can be computed."},"daysUntilDue":{"type":["number","null"],"description":"Days from today until dueDate; negative when past."},"recurrence":{"type":["string","null"],"description":"How the deadline repeats, if it does."},"consequence":{"type":["string","null"],"description":"What happens if the deadline is missed."},"sourceQuote":{"type":["string","null"],"description":"The sentence of the contract the deadline comes from."},"confidence":{"type":["number","null"],"description":"How sure Prism is, from 0 to 1."}},"required":["kind","label","dueDate","daysUntilDue","recurrence","consequence","sourceQuote","confidence"],"additionalProperties":false},"description":"Deadlines, soonest first."},"risks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine name of the risk."},"severity":{"type":"string","description":"How serious the risk is."},"plainEnglish":{"type":["string","null"],"description":"The risk explained in plain words."},"sourceQuote":{"type":["string","null"],"description":"The sentence of the contract the risk comes from."}},"required":["code","severity","plainEnglish","sourceQuote"],"additionalProperties":false},"description":"Risks found in the contract."},"withheldFacts":{"type":"number","description":"How many deadlines and risks the preview is holding back."},"billing":{"type":"object","properties":{"creditSpent":{"type":"boolean","description":"Whether this call spent a credit."},"coveredBy":{"anyOf":[{"type":"string","enum":["subscription","credit-or-purchase"]},{"type":"null"}],"description":"What pays for the full results; null for a preview."},"creditsRemaining":{"type":"number","description":"Credits left in the account."},"status":{"type":"string","enum":["unlimited","ok","low","empty"],"description":"Where the account's credits stand: unlimited (subscription), ok, low (2 or fewer left), or empty (none; unlocks return code insufficient_credits)."}},"required":["creditSpent","coveredBy","creditsRemaining","status"],"additionalProperties":false},"code":{"anyOf":[{"type":"string","enum":["insufficient_credits"]},{"type":"null"}],"description":"Why full results were not delivered on this call: insufficient_credits when an unlock found no credits (call prism_buy_credits). null otherwise."},"failureReason":{"type":["string","null"],"description":"Why Prism could not read the document, when status is FAILED."}},"required":["contractId","name","status","reviewUrl","nextStep","documentType","summary","access","deadlines","risks","withheldFacts","billing","code","failureReason"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"prism_unlock_contract","title":"Unlock full results","description":"Get every deadline and risk for a contract that has finished reading. Spends 1 credit ($0.50) unless the contract is already paid for, in which case it is free. Returns the same shape as prism_get_contract. If the account has no credits, returns the preview with code \"insufficient_credits\" and a credit status of \"empty\" in its billing -- call prism_buy_credits, then unlock again.","inputSchema":{"type":"object","properties":{"contractId":{"type":"string","minLength":1,"description":"A contract whose status is COMPLETE."}},"required":["contractId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"contractId":{"type":"string","description":"Prism id of the contract."},"name":{"type":"string","description":"File name or title of the contract."},"status":{"type":"string","description":"PENDING while reading, COMPLETE when done, FAILED if Prism could not read it."},"reviewUrl":{"type":"string","description":"Link to the contract in the Prism app."},"nextStep":{"type":["string","null"],"description":"What the agent should do next, in plain words; null when nothing is needed."},"documentType":{"type":["string","null"],"description":"What kind of contract Prism found, e.g. RESIDENTIAL_LEASE."},"summary":{"type":["string","null"],"description":"A short summary of the contract, once read."},"access":{"type":"string","enum":["full","preview"],"description":"full when every fact is included, preview when only the free facts are."},"deadlines":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"Machine name of the deadline type, e.g. RENEWAL_NOTICE."},"label":{"type":"string","description":"Human-readable deadline type."},"dueDate":{"type":["string","null"],"description":"ISO date (YYYY-MM-DD) the deadline falls on, when it can be computed."},"daysUntilDue":{"type":["number","null"],"description":"Days from today until dueDate; negative when past."},"recurrence":{"type":["string","null"],"description":"How the deadline repeats, if it does."},"consequence":{"type":["string","null"],"description":"What happens if the deadline is missed."},"sourceQuote":{"type":["string","null"],"description":"The sentence of the contract the deadline comes from."},"confidence":{"type":["number","null"],"description":"How sure Prism is, from 0 to 1."}},"required":["kind","label","dueDate","daysUntilDue","recurrence","consequence","sourceQuote","confidence"],"additionalProperties":false},"description":"Deadlines, soonest first."},"risks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine name of the risk."},"severity":{"type":"string","description":"How serious the risk is."},"plainEnglish":{"type":["string","null"],"description":"The risk explained in plain words."},"sourceQuote":{"type":["string","null"],"description":"The sentence of the contract the risk comes from."}},"required":["code","severity","plainEnglish","sourceQuote"],"additionalProperties":false},"description":"Risks found in the contract."},"withheldFacts":{"type":"number","description":"How many deadlines and risks the preview is holding back."},"billing":{"type":"object","properties":{"creditSpent":{"type":"boolean","description":"Whether this call spent a credit."},"coveredBy":{"anyOf":[{"type":"string","enum":["subscription","credit-or-purchase"]},{"type":"null"}],"description":"What pays for the full results; null for a preview."},"creditsRemaining":{"type":"number","description":"Credits left in the account."},"status":{"type":"string","enum":["unlimited","ok","low","empty"],"description":"Where the account's credits stand: unlimited (subscription), ok, low (2 or fewer left), or empty (none; unlocks return code insufficient_credits)."}},"required":["creditSpent","coveredBy","creditsRemaining","status"],"additionalProperties":false},"code":{"anyOf":[{"type":"string","enum":["insufficient_credits"]},{"type":"null"}],"description":"Why full results were not delivered on this call: insufficient_credits when an unlock found no credits (call prism_buy_credits). null otherwise."},"failureReason":{"type":["string","null"],"description":"Why Prism could not read the document, when status is FAILED."}},"required":["contractId","name","status","reviewUrl","nextStep","documentType","summary","access","deadlines","risks","withheldFacts","billing","code","failureReason"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"prism_list_contracts","title":"List contracts","description":"Returns every contract in this Prism account, newest first: contractId, name, status (PENDING, COMPLETE, FAILED), documentType, whether full results are unlocked, and when it was added. Paginated with nextCursor.","inputSchema":{"type":"object","properties":{"archived":{"type":"boolean","description":"true for archived contracts only; omit for active ones."},"cursor":{"type":"string","description":"Pagination cursor returned in the previous response as `nextCursor`. Omit for the first page. Pass the value verbatim — the format is opaque."},"limit":{"type":"integer","minimum":1,"maximum":500,"default":50,"description":"Max contracts to return in this page (1-500, default 50). When more exist, the response sets `nextCursor`; pass it back to fetch the next page."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"contracts":{"type":"array","items":{"type":"object","properties":{"contractId":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","description":"PENDING, COMPLETE or FAILED."},"documentType":{"type":["string","null"]},"unlocked":{"type":"boolean","description":"Whether full results are paid for."},"addedAt":{"type":"string","description":"ISO timestamp the contract was added."}},"required":["contractId","name","status","documentType","unlocked","addedAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"],"description":"Pass as cursor to get the next page; null on the last page."}},"required":["contracts","nextCursor"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"prism_upcoming_deadlines","title":"Upcoming deadlines","description":"Returns open deadlines across every contract in the account, soonest first, within the next withinDays (default 90). Each has contractId, contract name, kind, dueDate, daysUntilDue and what happens if it is missed. Unpaid contracts contribute only their preview deadlines; lockedDeadlines says how many more exist.","inputSchema":{"type":"object","properties":{"withinDays":{"type":"integer","minimum":1,"maximum":730,"description":"Look this many days ahead (default 90)."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"deadlines":{"type":"array","items":{"type":"object","properties":{"contractId":{"type":"string"},"contractName":{"type":"string"},"kind":{"type":"string"},"label":{"type":"string"},"dueDate":{"type":"string","description":"ISO date (YYYY-MM-DD)."},"daysUntilDue":{"type":"number"},"consequence":{"type":["string","null"]},"sourceQuote":{"type":["string","null"]}},"required":["contractId","contractName","kind","label","dueDate","daysUntilDue","consequence","sourceQuote"],"additionalProperties":false}},"lockedDeadlines":{"type":"number","description":"Deadlines in contracts that are not unlocked yet."},"nextStep":{"type":["string","null"],"description":"What the agent should do next, in plain words; null when nothing is needed."}},"required":["deadlines","lockedDeadlines","nextStep"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"prism_send_feedback","title":"Tell the Prism team something","description":"Sends a message to the people who build Prism and returns a confirmation. Use it when a result is wrong, when your user needed something Prism did not return, or when price is what stops your user from paying -- and say what they would pay. A person reads every message. Free: never spends credits. Found a result Prism got wrong? Send kind wrong_result with the contractId and the date, clause or consequence you expected; when the team reproduces it, the account gets 10 free credits.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["wrong_result","missing","price","other"],"description":"wrong_result: a date, consequence or quote is wrong. missing: something your user needed is not there. price: the price is the obstacle. other: anything else."},"message":{"type":"string","minLength":10,"maxLength":2000,"description":"What happened, in plain words. Do not paste the contract or your user's personal details."},"contractId":{"type":"string","description":"The contract this is about, if any."},"wouldPayUsd":{"type":"number","minimum":0,"maximum":1000,"description":"What your user would pay per contract for Prism to be worth it, in US dollars."}},"required":["kind","message"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"received":{"type":"boolean","description":"true once the message is stored."},"feedbackId":{"type":"string"},"nextStep":{"type":["string","null"],"description":"What the agent should do next, in plain words; null when nothing is needed."}},"required":["received","feedbackId","nextStep"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"prism_get_account","title":"Account and credits","description":"Returns this Prism account's credits and prices: credits remaining, the price per contract ($0.50), whether an Unlimited subscription covers everything, and how many contracts were added this month. creditStatus is unlimited, ok, low (2 or fewer left) or empty -- check it before a batch and, when it is low or empty, call prism_buy_credits. purchaseOptions says whether that returns a checkout link for your user, a purchase URL an agent wallet can pay, or both.","inputSchema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"creditsRemaining":{"type":"number"},"unlimitedSubscription":{"type":"boolean","description":"Whether an Unlimited subscription covers every contract."},"pricing":{"type":"object","properties":{"perContractCredit":{"type":"string","description":"Price of one credit, e.g. $0.50."},"freeCreditsForNewAccounts":{"type":"number"},"minimumCreditPurchase":{"type":"number"}},"required":["perContractCredit","freeCreditsForNewAccounts","minimumCreditPurchase"],"additionalProperties":false},"contractsAddedThisMonth":{"type":"number"},"monthlyContractLimit":{"type":"number"},"creditStatus":{"type":"string","enum":["unlimited","ok","low","empty"],"description":"Where the account's credits stand: unlimited (subscription), ok, low (2 or fewer left), or empty (none; unlocks return code insufficient_credits)."},"lowCreditThreshold":{"type":"number","description":"creditStatus is low at this many credits or fewer."},"purchaseOptions":{"type":"object","properties":{"checkoutLink":{"type":"boolean","description":"prism_buy_credits can return a checkout link for your user to pay."},"agentPayment":{"type":"boolean","description":"prism_buy_credits can return a purchase URL an agent with an MPP wallet can pay itself, no person needed."}},"required":["checkoutLink","agentPayment"],"additionalProperties":false,"description":"Which ways of buying credits are available right now."},"nextStep":{"type":["string","null"],"description":"What the agent should do next, in plain words; null when nothing is needed."}},"required":["creditsRemaining","unlimitedSubscription","pricing","contractsAddedThisMonth","monthlyContractLimit","creditStatus","lowCreditThreshold","purchaseOptions","nextStep"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"prism_buy_credits","title":"Get a link to buy credits","description":"Returns ways to buy credits ($0.50 each, 20-2000 at a time): a Stripe checkout link for your user, and, when available, an MPP (Machine Payments Protocol) purchase URL that an agent with its own MPP wallet can pay directly, in USDC or with a card via Stripe. This tool cannot pay: it only returns links. Credits are added as soon as a payment completes.","inputSchema":{"type":"object","properties":{"credits":{"type":"integer","minimum":20,"maximum":2000,"description":"How many credits, 20 or more."}},"required":["credits"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"checkoutUrl":{"type":["string","null"],"description":"Stripe checkout link to give the user; null when card checkout is unavailable."},"credits":{"type":"number"},"amount":{"type":"string","description":"Total price, e.g. $10.00."},"agentPayment":{"anyOf":[{"type":"object","properties":{"protocol":{"type":"string","const":"mpp"},"url":{"type":"string","description":"POST with an MPP wallet: HTTP 402 challenge, pay, retry."},"method":{"type":"string","const":"POST"},"amount":{"type":"string"},"credits":{"type":"number"},"accepts":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":"string","description":"ISO timestamp after which the URL no longer works."},"howToPay":{"type":"string"}},"required":["protocol","url","method","amount","credits","accepts","expiresAt","howToPay"],"additionalProperties":false},{"type":"null"}],"description":"Machine payment the agent can make itself, or null when MPP is not available."},"nextStep":{"type":"string"}},"required":["checkoutUrl","credits","amount","agentPayment","nextStep"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}}],"resources":[],"prompts":[]}