Deal Rooms
Last updated:
Deal Rooms tools include field-level argument descriptions and runnable examples for MCP clients.
Tools Covered
| Tool | Mutation | Backend Routes |
|---|---|---|
| dealroom_list | No | /view-all-pitches-sorted |
| dealroom_open | No | /retrieve-pitch |
| dealroom_edit | Yes | – |
| dealroom_create_from_playbook | Yes | – |
dealroom_list
List deal rooms with search/sort/pagination.
Backend routes: /view-all-pitches-sorted
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
| sort_order | string (ASC | DESC) | No | Sort direction. | DESC |
| page | number | No | Pagination page number (1-based). Defaults to 1. | 1 |
| page_size | number | No | Number of rows per page. Defaults to 50, maximum 200. | 50 |
| search | string | No | Free-text search term for list endpoints. | banking |
| only_owner | boolean | No | When true, list only deal rooms owned by caller. | false |
| archived | boolean | No | When true, list archived records. | false |
| viewer_id | string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
| organisation_id | string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
Example Request
List active deal rooms
{
"jsonrpc": "2.0",
"id": "dealroom_list-1",
"method": "tools/call",
"params": {
"name": "dealroom_list",
"arguments": {
"page": 1,
"page_size": 50,
"sort_order": "DESC",
"search": "Mural",
"only_owner": false,
"archived": false
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "dealroom_list",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for dealroom_list.",
"status": 400,
"retryable": false
}
}
dealroom_open
Open deal room and return canonical metadata.
Backend routes: /retrieve-pitch
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
| pitch_id | string | Yes | Deal room / playbook pitch identifier. | PCH1774126974294428638749 |
| viewer_id | string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
| organisation_id | string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
Example Request
Open one deal room
{
"jsonrpc": "2.0",
"id": "dealroom_open-1",
"method": "tools/call",
"params": {
"name": "dealroom_open",
"arguments": {
"pitch_id": "PCH1774126974294428638749"
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "dealroom_open",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for dealroom_open.",
"status": 400,
"retryable": false
}
}
dealroom_edit
Edit a deal room using the same payload contract as /edit-pitch-with-sections-and-contents.
Backend routes: Derived/indirect handler route.
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
| pitch_id | string | Yes | Deal room / playbook pitch identifier. | PCH1774126974294428638749 |
| pitch_data | object | No | Direct payload object for `/edit-pitch-with-sections-and-contents` pitchData. Use this when you want to pass a full update object instead of individual top-level fields. | {"title":"Mural x Revspire Workspace","headline":"Updated buyer workspace","public_access":true} |
| sections | array | No | Deal room sections array sent to `/edit-pitch-with-sections-and-contents`. If omitted, MCP auto-loads existing sections from the current pitch. | [{"id":"SEC1774126974294428638749","name":"Security and Compliance","order":1,"visibility":"Internal & External","contents":[{"id":"HXP1774126974294428638749","content":"KBD0215806635290000000000","arrangement":1,"tagline":"Security Overview","visibility":"Internal & External"}]}] |
| content_groups | array | No | Optional content group payload array forwarded to `/edit-pitch-with-sections-and-contents` for grouped content layouts. | [{"id":"GRP1774126974294428638749","name":"Security Bundle","order":1}] |
| custom_field_values | object | No | Custom field key-value map sent during deal room edit. | {"budget_confirmed":"Yes","target_close_date":"2026-06-30"} |
| allow_empty_sections | boolean | No | When true and `sections` is explicitly empty, MCP allows sending an empty sections array instead of auto-filling from existing deal room sections. | false |
| dealroom_name | string | No | Display name for new deal room. If omitted, backend can derive from fallback `name`/playbook metadata. | Mural - Openspace Mid Market Deal Room |
| name | string | No | Alternate name field accepted by upstream create route. | Mural - Openspace Mid Market Deal Room |
| opportunity_id | string | No | Optional CRM opportunity ID associated with newly created deal room. | 006fk000000casSAAQ |
| account_id | string | No | Optional CRM account ID associated with newly created deal room. | 001fk000003Ja1xAAC |
| title | string | No | Optional title override shown in deal room hero/header. | Mural x Revspire Workspace |
| headline | string | No | Optional headline override for deal room cover section. | Everything your buying team needs in one place |
| description | string | No | Long-form description text for deal room metadata. | Mutual action plan, case studies, and security resources for evaluation. |
| public_access | boolean | No | If true, creates deal room with public access mode enabled. | true |
| primary_color | string | No | Brand primary color hex code for generated deal room. | #2C6BED |
| crm_type | string | No | CRM source hint forwarded to creation route. | salesforce |
| disable_otp | boolean | No | Disable OTP requirement for external viewers where policy permits. | false |
| published | boolean | No | When true, publish the created deal room immediately. | true |
| cta_config | object | No | Call-to-action configuration object expected by pitch create route. | {"primaryLabel":"Book a demo","primaryUrl":"https://calendly.com/revspire/demo"} |
| dynamic_profiling | boolean | No | Enable dynamic profiling features in created deal room. | false |
| ai_bot_questions | string | No | Seed questions for AI assistant in created deal room. | What does implementation timeline look like? |
| branding | object | No | Branding payload override object used during clone/create. | {"logo":"https://cdn.example.com/logo.png","theme":"light"} |
| pitch_content_option | object | No | Content inclusion options for playbook-to-dealroom cloning. | {"includeArchived":false} |
| crm_amount | number | No | Argument `crm_amount` for tool `dealroom_edit`. | 1 |
| crm_currency_iso | string | No | Argument `crm_currency_iso` for tool `dealroom_edit`. | example_crm_currency_iso |
| crm_stage_id | string | No | Argument `crm_stage_id` for tool `dealroom_edit`. | CRM_STAGE_ID_EXAMPLE |
| crm_stage_name | string | No | Argument `crm_stage_name` for tool `dealroom_edit`. | example_crm_stage_name |
| viewer_id | string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
| organisation_id | string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
| idempotency_key | string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Update deal room metadata without changing sections
{
"jsonrpc": "2.0",
"id": "dealroom_edit-1",
"method": "tools/call",
"params": {
"name": "dealroom_edit",
"arguments": {
"pitch_id": "PCH1774126974294428638749",
"dealroom_name": "Mural - Security Review Room",
"title": "Mural x Revspire Security Review",
"headline": "Updated stakeholder workspace",
"public_access": true
}
}
}
Update metadata and send explicit sections payload
{
"jsonrpc": "2.0",
"id": "dealroom_edit-2",
"method": "tools/call",
"params": {
"name": "dealroom_edit",
"arguments": {
"pitch_id": "PCH1774126974294428638749",
"pitch_data": {
"description": "Updated workspace for procurement and legal review."
},
"sections": [
{
"id": "SEC1774126974294428638749",
"name": "Procurement",
"order": 1,
"visibility": "Internal & External",
"contents": [
{
"id": "HXP1774126974294428638749",
"content": "KBD0215806635290000000000",
"arrangement": 1,
"tagline": "Pricing Pack",
"visibility": "Internal & External"
}
]
}
],
"content_groups": [],
"custom_field_values": {
"target_close_date": "2026-06-30"
},
"allow_empty_sections": false
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "dealroom_edit",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for dealroom_edit.",
"status": 400,
"retryable": false
}
}
dealroom_create_from_playbook
Create deal room from playbook with optional placeholder rendering and usage increment.
Backend routes: Derived/indirect handler route.
Arguments
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
| playbook_id | string | Yes | Source playbook pitch ID used for cloning into a deal room. | ITV8581355464240000000000 |
| dealroom_name | string | No | Display name for new deal room. If omitted, backend can derive from fallback `name`/playbook metadata. | Mural - Openspace Mid Market Deal Room |
| name | string | No | Alternate name field accepted by upstream create route. | Mural - Openspace Mid Market Deal Room |
| opportunity_id | string | No | Optional CRM opportunity ID associated with newly created deal room. | 006fk000000casSAAQ |
| account_id | string | No | Optional CRM account ID associated with newly created deal room. | 001fk000003Ja1xAAC |
| title | string | No | Optional title override shown in deal room hero/header. | Mural x Revspire Workspace |
| headline | string | No | Optional headline override for deal room cover section. | Everything your buying team needs in one place |
| description | string | No | Long-form description text for deal room metadata. | Mutual action plan, case studies, and security resources for evaluation. |
| public_access | boolean | No | If true, creates deal room with public access mode enabled. | true |
| primary_color | string | No | Brand primary color hex code for generated deal room. | #2C6BED |
| crm_type | string | No | CRM source hint forwarded to creation route. | salesforce |
| disable_otp | boolean | No | Disable OTP requirement for external viewers where policy permits. | false |
| published | boolean | No | When true, publish the created deal room immediately. | true |
| cta_config | object | No | Call-to-action configuration object expected by pitch create route. | {"primaryLabel":"Book a demo","primaryUrl":"https://calendly.com/revspire/demo"} |
| dynamic_profiling | boolean | No | Enable dynamic profiling features in created deal room. | false |
| ai_bot_questions | string | No | Seed questions for AI assistant in created deal room. | What does implementation timeline look like? |
| branding | object | No | Branding payload override object used during clone/create. | {"logo":"https://cdn.example.com/logo.png","theme":"light"} |
| pitch_content_option | object | No | Content inclusion options for playbook-to-dealroom cloning. | {"includeArchived":false} |
| placeholder_replacements | object | No | Template placeholder replacement key-value map used while rendering clone. | {"company_name":"Mural","renewal_date":"2026-09-30"} |
| content_option_selections | object | No | Map of slot content IDs (or slot instance IDs) to selected alternative content IDs from playbook content options. | {"KBD0215806635290000000000":"KBD5567454989590000000000"} |
| allow_placeholder_failures | boolean | No | When true, continue create flow even if some placeholders cannot be resolved. | true |
| copy_background_assets | boolean | No | When true, clone playbook public assets (main background, login background, and client logo) to the new deal room. | true |
| disable_auto_description | boolean | No | When true, skip MCP generated description and keep explicit/source description fallback behavior. | false |
| client_name | string | No | Optional client/company name used by MCP description generator for a more specific buyer-facing summary. | Mural |
| strict_usage_increment | boolean | No | When true, fail if playbook usage increment step cannot complete. | false |
| render_folder_id | string | No | Optional target folder ID for rendered cloned deal room assets. | WRS3019077808610000000000 |
| viewer_id | string | No | Optional explicit user context override. If omitted, MCP resolves this from the authenticated token/session. | IGH6969811447860000000000 |
| organisation_id | string | No | Optional explicit organisation context override. If omitted, MCP resolves this from the authenticated token/session. | PDX7478889578460000000000 |
| idempotency_key | string | No | Client supplied unique key for mutation safety. Re-using the same key returns the cached mutation result instead of executing again. | mcp-mutation-2026-05-13-001 |
Example Request
Create deal room from playbook template
{
"jsonrpc": "2.0",
"id": "dealroom_create_from_playbook-1",
"method": "tools/call",
"params": {
"name": "dealroom_create_from_playbook",
"arguments": {
"playbook_id": "ITV8581355464240000000000",
"dealroom_name": "Mural - Openspace Mid Market Deal Room",
"client_name": "Mural",
"public_access": true,
"content_option_selections": {
"KBD0215806635290000000000": "KBD5567454989590000000000"
},
"placeholder_replacements": {
"company_name": "Mural"
},
"allow_placeholder_failures": true,
"copy_background_assets": true
}
}
}
Example Success
{
"success": true,
"data": {
"tool": "dealroom_create_from_playbook",
"note": "Payload shape depends on tenant data and backend route output."
},
"error": null
}
Example Failure
{
"success": false,
"data": null,
"error": {
"code": "INVALID_ARGUMENTS",
"message": "Missing or invalid parameters for dealroom_create_from_playbook.",
"status": 400,
"retryable": false
}
}