MCP Connection
Connect agent gateways and MCP clients to Breeks through the standalone Streamable HTTP adapter.
Breeks exposes agent access through apps/mcp. The MCP service is a thin adapter over Breeks API: it forwards tool calls to /api/agent/tools/{tool_name}, while the API resolves the singleton organization and still owns project isolation, permissions, tool-call logging, and audit logs.
Local Endpoint
Start the local stack, then connect to the MCP endpoint.
cp .env.example .env
docker compose up --buildURL: http://localhost:8767/mcp
Authorization: Bearer dev-mcp-tokenHealth check:
curl http://localhost:8767/healthzClient Config
Exact config keys vary by MCP client. The required values are Streamable HTTP transport, the MCP URL, and the bearer token.
{
"mcpServers": {
"breeks": {
"type": "http",
"url": "http://localhost:8767/mcp",
"headers": {
"Authorization": "Bearer dev-mcp-token"
}
}
}
}Tool Envelope
Every Breeks MCP tool call includes project, actor, and input fields. The organization is resolved internally.
{
"project_id": "project_tower",
"actor": {
"user_id": "user_site",
"channel": "web"
},
"input": {}
}MCP Tools
The Breeks MCP adapter currently exposes 51 tools. Every tool name is prefixed with breeks. at the MCP boundary and is forwarded to the matching Breeks API tool contract without the prefix.
Project
5 toolsbreeks.project.get_contextGet Project Context
Retrieve project context including members, recent records, tasks, documents, and open items.
breeks.project.getGet Project
Retrieve one project by project scope.
breeks.project.get_recent_activityGet Recent Project Activity
Retrieve recent audit/activity entries for the project.
breeks.project.list_tagsList Tags
List the tag catalog.
breeks.project.add_memberAdd Project Member
Add a user as a project member, optionally with assignment scope context.
Members
3 toolsbreeks.member.resolve_identityResolve Member Identity
Resolve or create a channel identity for a project user.
breeks.member.searchSearch Members
Search project members by text, role, status, scope, or Breeks perceival.
breeks.member.getGet Member
Retrieve one project member by member ID or user ID, including scope and Breeks perceival.
Documents
21 toolsbreeks.document.list_versionsList Drawing Versions
List one drawing chain, newest first. Requires document_id; drawing documents only.
breeks.document.compare_versionsCompare Drawing Versions
Read comparison metadata and page availability for document_id and other_document_id in the same drawing chain. Visual comparison is page-number aligned.
breeks.document.mark_currentMark Drawing Current
Explicitly promote a processed pending drawing revision. Requires document_id and expected_current_document_id from the reviewed history. A stale current ID returns conflict; refresh and obtain a new confirmation.
breeks.document.preview_carry_forwardPreview Drawing Carry Forward
Preview tags, annotations, record links, task links and blocked page mappings from document_id to target_document_id in the same drawing chain.
breeks.document.carry_forwardCarry Drawing Relationships Forward
Copy only explicitly selected project_tag_ids, annotation_ids, record_link_ids and task_ids from document_id to target_document_id. Preserves historical relationships; blocked selections fail atomically.
breeks.document.searchSearch Documents
Search project documents with text and metadata filters.
breeks.document.getGet Document
Retrieve document metadata, comments, tags, and activity.
breeks.document.get_pagesGet Document Pages
Retrieve page metadata for a document.
breeks.document.get_processing_statusGet Document Processing Status
Retrieve processing status and extraction summary for a document.
breeks.document.get_activityGet Document Activity
Retrieve audit activity for a document.
breeks.document.get_annotationsGet Document Annotations
List annotations for a document or page.
breeks.document.get_annotation_requestGet Annotation Request
Check question progress and saved annotation IDs for an annotation request.
breeks.document.revoke_annotation_requestRevoke Annotation Request
Revoke an active annotation request; requires confirm=true.
breeks.document.updateUpdate Document
Update editable document metadata.
breeks.document.add_commentAdd Document Comment
Add a comment to a document.
breeks.document.reprocessReprocess Document
Enqueue document reprocessing.
breeks.document.tagTag Document
Apply a tag to a document.
breeks.document.untagUntag Document
Remove a tag from a document.
breeks.document.create_annotationCreate Document Annotation
Create a normalized page annotation on a document.
breeks.document.update_annotationUpdate Document Annotation
Update a document annotation.
breeks.document.delete_annotationDelete Document Annotation
Delete a document annotation; requires confirm=true.
Record Types
2 toolsbreeks.record_type.listList Record Types
List active project record type definitions.
breeks.record_type.get_blueprintGet Record Type Blueprint
Retrieve a record type definition and fields.
Records
9 toolsbreeks.record.createCreate Record
Create a project record draft, including RFI records.
breeks.record.searchSearch Records
Search records by text, type, status, priority, trade, or tag.
breeks.record.getGet Record
Retrieve one record with comments, linked documents, tasks, and activity.
breeks.record.get_activityGet Record Activity
Retrieve audit activity for a record.
breeks.record.updateUpdate Record
Update a record; closing records still requires record.close permission.
breeks.record.add_commentAdd Record Comment
Add a comment to a record.
breeks.record.tagTag Record
Apply a tag to a record.
breeks.record.untagUntag Record
Remove a tag from a record.
breeks.record.link_documentLink Record Document
Link a document, page, or annotation to a record.
Tasks
8 toolsbreeks.task.createCreate Task
Create a project Kanban task or nested subtask.
breeks.task.searchSearch Tasks
Search tasks by text, hierarchy, and metadata filters.
breeks.task.getGet Task
Retrieve one task with comments and direct children.
breeks.task.updateUpdate Task
Update editable task fields.
breeks.task.assignAssign Task
Assign a task to a project member.
breeks.task.move_statusMove Task Status
Move a task between Kanban statuses.
breeks.task.link_documentLink Task Document
Link a document, page, or annotation to a task.
breeks.task.add_commentAdd Task Comment
Add a comment to a task.
Notifications
1 toolbreeks.notification.sendSend Notification
Queue a project notification.
Schedules
2 toolsbreeks.schedule.create_reminderCreate Reminder
Create a scheduled reminder.
breeks.schedule.cancel_reminderCancel Reminder
Cancel a scheduled reminder.
Retired annotation requests
Guided “Ask for markup” creation and the request_missing_drawing_information prompt have been removed from MCP. The breeks.document.get_annotation_request and breeks.document.revoke_annotation_request tools remain for authorized historical access; revocation requires confirm=true. New collaboration starts with Share in Documents. Existing tokens are not converted, and the old public request, image, and answer routes return 410 Gone. The separate /ask utility and Share comment workflow remain available.
Resources
breeks://projects/{project_id}/actors/{actor_user_id}/context
breeks://projects/{project_id}/actors/{actor_user_id}/records
breeks://projects/{project_id}/actors/{actor_user_id}/tasks
breeks://projects/{project_id}/actors/{actor_user_id}/documents
breeks://projects/{project_id}/actors/{actor_user_id}/members
breeks://projects/{project_id}/actors/{actor_user_id}/activityTokens
The MCP client uses MCP_ACCESS_TOKEN. The MCP service uses AGENT_TOOL_SERVICE_TOKEN to call the API.
MCP_ACCESS_TOKEN=dev-mcp-token
AGENT_TOOL_SERVICE_TOKEN=dev-agent-tool-token