Connect your agent to RoadOps.
Use the RoadOps MCP server for platform capabilities and the documentation MCP server for API reference content.
RoadOps provides two MCP servers for agents and MCP-compatible clients.
RoadOps MCP Server
MCP URL: https://api.roadops.app/mcp
Review and update your RoadOps tour days, schedules, lodging, venues, guest lists, and tasks across your teams. The server supports authenticated read and write operations with existing RoadOps permission and visibility rules enforced.
Before an agent calls update_day, update_item_visibility, or any delete tool, it must show the exact target, team, day/date when applicable, and consequences and obtain your explicit approval. These tools require userConfirmed: true and apply commands directly after confirmation. Cancellation sends no command; changing the target requires fresh approval. Confirmation is reported by your agent; the host provides the approval prompt, and RoadOps does not independently verify a human approved it. Day timezone edits propagate to matching child schedule items; visibility updates replace or clear the complete selection.
Bulk operations
Use execute_bulk_operations to submit several independent writes to one RoadOps team in a single tool call. Supply teamId and an operations array; each entry has a unique caller-generated operationId UUID, an existing write-tool name in tool, and complete arguments containing the same teamId. Discover supported names and argument schemas through tools/list. Each entry keeps its existing permission, visibility, and confirmation requirements, including userConfirmed: true where required. Reads and nested bulk calls are unavailable.
Entries run in order and continue after definite failures. The response includes ordered results, outcome counts, and stopReason. Entry statuses are succeeded, failed, partial, not_started, or unknown. Each result preserves existing tool output and individual command outcomes, including successful commands from a partially applied entry. An accepted command does not mean its projection has finished. Partial results remain in structuredContent; isError is set unless every entry succeeded.
A time limit or uncertain outcome stops later entries. An already-started command may still finish after the response. Automatically resubmit only not_started entries. Review definite failures before replacement, and inspect current RoadOps state and individual command outcomes before retrying unknown or partial entries. Never replay the whole batch blindly; deletion replacements require fresh approval. For day timezone edits, preserve the underlying update_day recovery ID and call get_day_update_status to reconcile its outcome.
Bulk operation IDs identify results only and are not idempotency keys. There is no durable bulk status endpoint: if the whole response is lost, inspect state before retrying. Entries are independent and must contain complete arguments; there are no dependencies, result references, rollback, or automatic retries.
Confirmed deletion
Each delete tool removes one exact RoadOps record:
delete_eventanddelete_venuerequire Events/Venues management.delete_schedule_itemcovers all schedule types;delete_rental_carremoves an entire rental entry. Both require Schedule/Travel management.delete_guest_requestrequires Guest List manage-own. You may delete only your own pending requests unless you have manage-all access.delete_lodgingremoves the entire stay and rooming list and requires Lodging management.delete_noteremoves a day note. Notes manage-own allows your own notes; manage-all allows other non-private notes. Private notes remain owner-only.delete_day_filerequires Files management.delete_task,delete_task_note,delete_task_subtask, anddelete_task_attachmentfollow existing Task assignment and manage-all rules. Only the latest Task note can be deleted, by its author or a member with Tasks Manage All.
All tools require teamId, the exact resource ID, and userConfirmed: true. Day-bound tools also require dayId and a visible parent day; Task child tools require taskId. Lodging, rental cars, and venues are team-level records without a required parent day ID. Optional display-name hints must match the resolved record; IDs remain authoritative.
Deleting an event or venue does not cascade-delete related records. Existing RoadOps Connect share handling still applies. Removing a RoadOps travel, lodging, or rental record does not cancel an external booking. Attachment deletion is permanent and irreversible: delete_task_attachment removes the attachment and its stored file and requires userConfirmed: true. This cannot be undone. Attachment deletion records the command first; projection and storage cleanup follow asynchronously, so acceptance does not mean immediate erasure.
Deletion of Days and Set Lists is unavailable. A conflict, rejection, or timeout is not successful deletion. After an uncertain timeout, the command may have committed: inspect current RoadOps state and obtain fresh approval before a replacement attempt; do not retry automatically.
Existing Task delete calls now require userConfirmed: true. Refresh tool discovery before using these tools. Task update inputs are unchanged.
Team-member profile responses always exclude passport and allergy fields, including for the profile owner and team Admins. Other profile fields follow their sharing settings.
RoadOps Claude Connector
- Add a custom connector. In Claude, open Settings, select Connectors, click Add, and choose Custom Connector.
- Enter the connection details. Set Name to
RoadOpsand Remote MCP server URL tohttps://api.roadops.app/mcp. - Configure authentication. Choose Always required, select Use your own OAuth client, and enter OAuth Client ID
tpc_jvz6Zf7kJwJF2G265H4SCa. Leave OAuth Client Secret empty. - Finish setup. Click Add, then sign in to RoadOps when Claude prompts you.
Documentation MCP Server
MCP URL: https://developer.roadops.app/mcp/rcp
Use the documentation MCP server to search RoadOps Developer API documentation, inspect generated schemas, and retrieve operation details.
Connection
{
"mcpServers": {
"roadops-docs": {
"url": "https://developer.roadops.app/mcp/rcp"
},
"roadops": {
"url": "https://api.roadops.app/mcp"
}
}
}