Dealroom
Draft and negotiate contracts clause by clause; a published formula proposes the compromise.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen join_negotiation
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"dealroom": {
"url": "https://dealroom.todo.law/api/v1/agent/mcp"
}
}
}Puntos de conexión remotos
https://dealroom.todo.law/api/v1/agent/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (12)
🟢list_contract_types(lang)
Every contract type Dealroom can make, with the code to use as contractType, the guide slug, the governing laws and languages it is offered in, the role the caller can take (DPA and BAA only) and the inputs it asks for. Call this first to know what to ask the user. No API key needed.
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"es"
],
"default": "en",
"description": "Language of names and labels"
}
},
"required": []
}🟢generate_contract(contractType, governingLaw, language, title, party, ...)
Make a finished contract in one call: give the contract type, your side's details and, if you know them, the other side's. Clauses you leave out take the standard option. One prepaid credit is spent (the same price as any contract); with no credit the answer is HTTP 402 with code PAYMENT_REQUIRED and nothing is created. Returns the contract as Markdown, then the deal id, the link where the person can read it in Dealroom and the Markdown, HTML, PDF, DOCX and TXT links (free to fetch again).
Esquema de entrada
{
"type": "object",
"properties": {
"contractType": {
"type": "string",
"description": "Code (for example NDA) or guide slug (for example nda), from list_contract_types"
},
"governingLaw": {
"type": "string",
"enum": [
"CALIFORNIA",
"NEW_YORK",
"ENGLAND_WALES",
"SPAIN"
],
"description": "Required when the contract type offers more than one"
},
"language": {
"type": "string",
"enum": [
"en",
"es"
],
"default": "en"
},
"title": {
"type": "string",
"description": "Name of the deal; made from the parties when left out"
},
"party": {
"type": "object",
"description": "Your side (the side the API key acts for)",
"properties": {
"legalName": {
"type": "string",
"description": "Full legal name of the company or person"
},
"address": {
"type": "string",
"description": "Registered or postal address"
},
"taxId": {
"type": "string",
"description": "Company or tax number, where the contract shows one"
},
"signatoryName": {
"type": "string",
"description": "Name of the person who signs"
},
"signatoryTitle": {
"type": "string",
"description": "Title of the person who signs, for example CEO"
},
"email": {
"type": "string",
"format": "email"
}
},
"required": [
"legalName"
]
},
"counterparty": {
"type": "object",
"description": "The other side. Left out: its block stays blank for it to complete.",
"properties": {
"legalName": {
"type": "string",
"description": "Full legal name of the company or person"
},
"address": {
"type": "string",
"description": "Registered or postal address"
},
"taxId": {
"type": "string",
"description": "Company or tax number, where the contract shows one"
},
"signatoryName": {
"type": "string",
"description": "Name of the person who signs"
},
"signatoryTitle": {
"type": "string",
"description": "Title of the person who signs, for example CEO"
},
"email": {
"type": "string",
"format": "email"
}
},
"required": [
"legalName"
]
},
"role": {
"type": "string",
"description": "DPA and BAA only: the role you take (see roles in list_contract_types)"
},
"terms": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Inputs by id (see inputs in list_contract_types); required ones must be given"
},
"clauses": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Optional clause choices: clause id to option code (see get_template)"
},
"inline": {
"type": "string",
"enum": [
"md",
"html",
"txt"
],
"default": "md",
"description": "The contract itself in the answer: md (Markdown, the default here), html or txt"
},
"idempotencyKey": {
"type": "string",
"description": "Send the same value when retrying, so a retry never makes or charges a second contract"
}
},
"required": [
"contractType",
"party"
]
}🟢list_templates(query)
List available contract templates with clauses, options, and bias values. Use this to understand which contract types are available and what options exist for each clause. Pass `query` to search by code, abbreviation or name in English or Spanish ("nda", "dpa", "hipaa", "confidencialidad"), best match first.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional search: contract code, abbreviation or name (English or Spanish)"
}
},
"required": []
}🟢get_template(contractType)
Get full details for a specific contract template including all clauses and their options with bias values.
Esquema de entrada
{
"type": "object",
"properties": {
"contractType": {
"type": "string",
"description": "Contract type identifier",
"enum": [
"A2A_API_ACCESS",
"ACTA_CONSEJO_ADMINISTRACION",
"ACTA_JUNTA_GENERAL",
"ADVERTISING_IO",
"ADVISORY",
"AFFILIATE_PROGRAM",
"A2A_MONITORING",
"PHANTOM_SHARES_GRANT",
"RESIDENTIAL_TENANCY_GB",
"RESIDENTIAL_TENANCY_US_CA",
"DELAWARE_CERT_OF_INCORPORATION",
"A2A_COMPUTE_PROCUREMENT",
"CONSULTING",
"A2A_CONTENT_LICENSE",
"RESIDENTIAL_TENANCY_ES",
"CONVERTIBLE_NOTE",
"DATA_LICENSING",
"DPA",
"A2A_DATA_SHARING",
"EMPLOYMENT",
"CONTRATO_LABORAL",
"EQUITY_INCENTIVE",
"FOUNDERS",
"BAA_NEGOTIATOR",
"CESION_PI",
"IP_ASSIGNMENT",
"INFLUENCER_MARKETING",
"JOINT_VENTURE",
"A2A_KNOWLEDGE_ACCESS",
"PHANTOM_SHARES_PLAN",
"A2A_MARKETPLACE",
"MSA",
"NDA",
"A2A_ORCHESTRATION",
"A2A_PAYMENT_AUTHORIZATION",
"PRIVACY_NOTICE",
"SAFE",
"SAAS",
"SEED_INVESTMENT",
"CONTRATO_SERVICIOS",
"SHAREHOLDERS",
"PACTO_SOCIOS",
"SOFTWARE_DEVELOPMENT",
"A2A_SUPPLY_CHAIN",
"A2A_TASK_DELEGATION",
"TECHNOLOGY_LICENSE",
"TEMPLATE",
"TERM_SHEET",
"A2A_TOOL_LICENSE",
"WHITE_LABEL_RESELLER"
]
}
},
"required": [
"contractType"
]
}🟡create_playbook(name, contractType, governingLaw, contractLanguage, entries)
Create a negotiation playbook defining preferences for each clause: preferred option, priority (1-5), flexibility (1-5), red lines, and acceptable alternatives.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Unique playbook name"
},
"contractType": {
"type": "string",
"description": "Contract type",
"enum": [
"A2A_API_ACCESS",
"ACTA_CONSEJO_ADMINISTRACION",
"ACTA_JUNTA_GENERAL",
"ADVERTISING_IO",
"ADVISORY",
"AFFILIATE_PROGRAM",
"A2A_MONITORING",
"PHANTOM_SHARES_GRANT",
"RESIDENTIAL_TENANCY_GB",
"RESIDENTIAL_TENANCY_US_CA",
"DELAWARE_CERT_OF_INCORPORATION",
"A2A_COMPUTE_PROCUREMENT",
"CONSULTING",
"A2A_CONTENT_LICENSE",
"RESIDENTIAL_TENANCY_ES",
"CONVERTIBLE_NOTE",
"DATA_LICENSING",
"DPA",
"A2A_DATA_SHARING",
"EMPLOYMENT",
"CONTRATO_LABORAL",
"EQUITY_INCENTIVE",
"FOUNDERS",
"BAA_NEGOTIATOR",
"CESION_PI",
"IP_ASSIGNMENT",
"INFLUENCER_MARKETING",
"JOINT_VENTURE",
"A2A_KNOWLEDGE_ACCESS",
"PHANTOM_SHARES_PLAN",
"A2A_MARKETPLACE",
"MSA",
"NDA",
"A2A_ORCHESTRATION",
"A2A_PAYMENT_AUTHORIZATION",
"PRIVACY_NOTICE",
"SAFE",
"SAAS",
"SEED_INVESTMENT",
"CONTRATO_SERVICIOS",
"SHAREHOLDERS",
"PACTO_SOCIOS",
"SOFTWARE_DEVELOPMENT",
"A2A_SUPPLY_CHAIN",
"A2A_TASK_DELEGATION",
"TECHNOLOGY_LICENSE",
"TEMPLATE",
"TERM_SHEET",
"A2A_TOOL_LICENSE",
"WHITE_LABEL_RESELLER"
]
},
"governingLaw": {
"type": "string",
"enum": [
"CALIFORNIA",
"NEW_YORK",
"ENGLAND_WALES",
"SPAIN"
]
},
"contractLanguage": {
"type": "string",
"enum": [
"en",
"es"
],
"default": "en"
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"clauseId": {
"type": "string"
},
"preferredOptionId": {
"type": "string"
},
"priority": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"flexibility": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"isRedLine": {
"type": "boolean"
},
"acceptableOptions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"clauseId",
"preferredOptionId"
]
}
}
},
"required": [
"name",
"contractType",
"governingLaw",
"entries"
]
}⚪initiate_negotiation(playbookId, dealName, initiatorEmail, initiatorCompany, respondentEmail, ...)
Start a new contract negotiation. Returns a negotiation token for the respondent to join.
Esquema de entrada
{
"type": "object",
"properties": {
"playbookId": {
"type": "string",
"description": "ID of your playbook"
},
"dealName": {
"type": "string",
"description": "Human-readable deal name"
},
"initiatorEmail": {
"type": "string",
"format": "email"
},
"initiatorCompany": {
"type": "string"
},
"respondentEmail": {
"type": "string",
"format": "email"
},
"respondentCompany": {
"type": "string"
}
},
"required": [
"playbookId",
"dealName",
"initiatorEmail"
]
}⚪join_negotiation(negotiationToken, playbookId, respondentEmail, respondentCompany)
Join an existing negotiation as the respondent. Triggers automatic compromise resolution and returns the result.
Esquema de entrada
{
"type": "object",
"properties": {
"negotiationToken": {
"type": "string",
"description": "Token from the initiator"
},
"playbookId": {
"type": "string",
"description": "ID of your playbook (must match contract type)"
},
"respondentEmail": {
"type": "string",
"format": "email"
},
"respondentCompany": {
"type": "string"
}
},
"required": [
"negotiationToken",
"playbookId",
"respondentEmail"
]
}🟢get_deal(dealId)
Get deal details including per-clause agreed options, satisfaction scores, and reasoning.
Esquema de entrada
{
"type": "object",
"properties": {
"dealId": {
"type": "string",
"description": "Agent deal room ID"
}
},
"required": [
"dealId"
]
}🟢download_contract(dealId, format)
Download the agreed contract as Markdown, HTML, PDF, DOCX or TXT (Markdown by default: agents read it best). Negotiation is free; the contract is paid when its document is first fetched: one prepaid credit of the customer is spent (any of its keys draws on the one balance). Later fetches of the same deal are free. With no credit left the answer is HTTP 402 with code PAYMENT_REQUIRED and the link to buy credits.
Esquema de entrada
{
"type": "object",
"properties": {
"dealId": {
"type": "string",
"description": "Agent deal room ID"
},
"format": {
"type": "string",
"enum": [
"pdf",
"docx",
"txt",
"md",
"html"
],
"default": "md",
"description": "md (Markdown) or html for agents and tools; pdf, docx or txt for people and printers"
}
},
"required": [
"dealId"
]
}⚪buy_credits(currency, returnUrl)
Open a hosted checkout for a pack of ten contract credits for this API key's customer (any of its keys can spend them). Returns checkoutUrl for a person to open in a browser; the credits arrive when the payment succeeds. Answers 409 where payments are off.
Esquema de entrada
{
"type": "object",
"properties": {
"currency": {
"type": "string",
"enum": [
"usd",
"eur"
],
"default": "usd"
},
"returnUrl": {
"type": "string",
"description": "URL to return to after checkout"
}
},
"required": []
}🟢get_credit_balance
Remaining contract credits of this API key's customer (one balance shared by all of its keys) and the latest ledger entries.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢get_subscriptions
List earlier per-skill subscriptions and their status. Skills are no longer sold one by one; every template is included.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}Comunidad
Evidencia