This page describes MCP transport and endpoint contracts in Revspire.
Base URL
Use the Backend Base URL displayed in Revspire > Setup > OAuth.
Example: https://demo.apac1.my.api.revspire.io
Endpoints
| Endpoint | Auth | Purpose |
|---|---|---|
GET /mcp/health |
No | Health + protocol + tool names |
GET /mcp |
OAuth | MCP transport metadata + tool catalog |
POST /mcp |
OAuth | JSON-RPC and direct tool invocation |
POST /mcp/salesforce/tools/call |
OAuth | Salesforce bridge execution |
JSON-RPC Methods
initializetools/listtools/call
How To Get the Tool List
Use either of these two options:
- Preferred for MCP clients:
POST /mcpwith JSON-RPC methodtools/list - Simple transport discovery:
GET /mcpand readdata.tools
Endpoint to list tools (JSON-RPC)
POST https://<backend_base_url>/mcp
Authorization: Bearer <access_token>
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": "tools-1",
"method": "tools/list",
"params": {}
}
Initialize
curl -X POST "https://<backend_base_url>/mcp" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"1","method":"initialize","params":{}}'
Tools List
curl -X POST "https://<backend_base_url>/mcp" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"2","method":"tools/list","params":{}}'
Tools Call (JSON-RPC)
curl -X POST "https://<backend_base_url>/mcp" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"3","method":"tools/call","params":{"name":"dealroom.list","arguments":{"page":1,"page_size":50}}}'
Direct Tool Mode
The same POST /mcp endpoint also supports direct payload mode:
{
"tool": "content.list_dashboard",
"arguments": {}
}
Standard Execution Envelope
{
"success": true,
"data": {},
"error": null,
"request_id": "...",
"permission_context": {
"viewer_id": "...",
"organisation_id": "...",
"token_client": 0,
"required_scopes": ["revspire.agentforce.tools.read"]
}
}
Pagination Contract
List tools return a consistent pagination block under data.pagination.
{
"items": [],
"pagination": {
"page": 1,
"page_size": 50,
"total_items": 318,
"total_pages": 7,
"has_more": true,
"next_page": 2,
"total_items_known": true,
"total_pages_known": true
}
}
Default page size is 50 (max 200). Continue fetching while has_more=true using next_page.
Request Identity Rules
viewer_idandorganisation_idare resolved from token context.- If caller supplies conflicting IDs, MCP rejects request with identity mismatch.
- Tool validators enforce schema before route execution.
May 2026 API Update
- New MCP tool families added: folder discovery, safe content access metadata, and full content change request workflows.
- Search and dashboard responses now include internal deep links by default.
- MCP response now consistently echoes
required_scopesandaccepted_scopesinpermission_context.
Internal Link Derivation
When MCP receives backend host context such as demo.apac1.my.api.revspire.io, it derives frontend app links in this format:
https://demo.my.revspire.io/content/content-portal?contentId=<content_id> https://demo.my.revspire.io/content/content-portal?folderId=<folder_id>
Updated Tool Groups
| Group | Tools |
|---|---|
| Search + Access | search.query_content, folder.find, content.get_thumbnails, content.get_access_info |
| Content Requests | content_request.create, content_request.list_my, content_request.list_queue, content_request.report, content_request.list_assignable_users, content_request.assign, content_request.respond, content_request.approve, content_request.reject, content_request.revoke, content_request.add_comment |
| Revenue Intelligence | content.get_revenue_influence, content.get_top_performing |
| Reporting & Dashboards | reporting.metadata.get, reporting.types.list, reporting.preview.run, reporting.save, reporting.saved.*, reporting.catalog.*, reporting.dashboard.* |
Standard Permission Context (Current)
{
"permission_context": {
"viewer_id": "...",
"organisation_id": "...",
"token_client": 0,
"required_scopes": ["revspire.agentforce.tools.read"],
"accepted_scopes": [
"revspire.agentforce.tools.read",
"revspire.mcp.tools.read"
]
}
}
Common Content Request Endpoints Through MCP
| MCP Tool | Backend Route | Primary Permission(s) |
|---|---|---|
content_request.create |
/send-change-request |
Request Content |
content_request.list_queue / content_request.report |
/approvals/change-requests/list |
Request Content, Assign Content Request, View All Content Requests |
content_request.assign |
/assign-change-request |
Assign Content Request |
content_request.respond |
/respond-change-request |
Request Content, Assign Content Request, View All Content Requests |
content_request.approve |
/accept-change-request |
Request Content, Assign Content Request, View All Content Requests |
Field-Level Tool Docs
Per-field argument definitions and rich request examples are maintained in Tool Reference. Use those pages when building MCP clients (ChatGPT, Claude, n8n, Zapier, HubSpot, and custom agents).
- Each tool entry includes argument type, required flag, description, and a concrete example value.
- Each tool entry includes JSON-RPC request examples plus success/error envelope examples.
- Tool docs are aligned to the backend MCP schema in
mcpToolRegistry.js.
Visual Summary Contract (Chat-Friendly)
MCP now includes optional visual_summary at the tool execution envelope level for numeric datasets, enabling compact chart rendering in ChatGPT/Codex.
- Tabular numeric responses render bar/table style summaries.
- Summary-object responses (without row arrays) render KPI-style summaries.
- When no numeric signals exist,
visual_summaryis returned asnull.
{
"success": true,
"data": { ... },
"visual_summary": {
"can_render_visual": true,
"recommended_chart": "bar",
"dimension_key": "owner",
"metric_keys": ["amount"],
"kpis": [{"metric_label": "amount", "aggregate": 1240000}],
"series": [{"metric_label": "amount", "points": [{"x": "Alice", "y": 120000}]}]
},
"error": null,
"request_id": "...",
"permission_context": { ... }
}
Reporting Lifecycle Tool Family
| Stage | MCP Tools |
|---|---|
| Build & Preview | reporting.metadata.get, reporting.types.list, reporting.preview.run |
| Save & Open | reporting.save, reporting.saved.list, reporting.saved.get, reporting.link.open |
| Access Management | reporting.saved.request_access, reporting.saved.respond_access |
| Catalog Management | reporting.catalog.* (folders, reports, dashboards, sharing, move/clone/delete) |
| Dashboard Operations | reporting.dashboard.get, reporting.dashboard.save, reporting.dashboard.request_access |