MCP Resources
Read-only data endpoints that AI assistants can load for context — dashboard stats, board data, project overviews, and member lists.
Overview
MCP resources are URI-addressable, read-only data endpoints. Unlike tools (which perform actions), resources let the AI assistant load structured context before deciding what to do next.
ProBeya exposes both static resources (fixed URIs, always available) and
resource templates (parameterized URIs for dynamic data). Resource templates include
list callbacks so the AI can auto-discover available boards and projects.
All resource handlers delegate to tRPC procedures via appRouter.createCaller(),
reusing the same business logic and tenant isolation as the web app.
Static Resources
probeya://dashboard
Organization-level statistics combining multiple dashboard queries into a single comprehensive snapshot.
| Property | Value |
|---|---|
| URI | probeya://dashboard |
| MIME Type | application/json |
| Authentication | Required (any valid API key) |
Response structure:
{
"stats": {
"totalItems": 142,
"totalProjects": 8,
"totalMembers": 23,
"completionRate": 64.7
},
"statusDist": [
{ "status": "Working on it", "count": 45 },
{ "status": "Done", "count": 92 },
{ "status": "Stuck", "count": 5 }
],
"priorityBreakdown": [
{ "priority": "Critical", "count": 3 },
{ "priority": "High", "count": 18 },
{ "priority": "Medium", "count": 67 },
{ "priority": "Low", "count": 54 }
]
}
When to use: Start here for a high-level understanding of the organization’s state before drilling into specific projects or boards.
probeya://members
All organization members with roles, IDs, and emails.
| Property | Value |
|---|---|
| URI | probeya://members |
| MIME Type | application/json |
| Authentication | Required (any valid API key) |
Response structure:
[
{
"id": "usr_abc123",
"name": "Jane Smith",
"email": "[email protected]",
"role": "admin"
},
{
"id": "usr_def456",
"name": "Bob Wilson",
"email": "[email protected]",
"role": "member"
}
]
When to use: Load this resource to find user IDs before assigning items or actions, or to understand team composition.
Resource Templates
Resource templates use parameterized URIs. The AI assistant substitutes the parameter
to access specific data. Both templates include list callbacks that enumerate all
available instances.
probeya://board/
Full board data including groups (columns/swimlanes), column definitions, items (tasks), and their cell values. This is the complete Kanban board snapshot.
| Property | Value |
|---|---|
| URI Pattern | probeya://board/{boardId} |
| MIME Type | application/json |
| Parameter | boardId — the board’s cuid2 identifier |
| Discovery | list callback enumerates all boards across all workspaces and projects |
Response structure:
{
"id": "brd_xyz789",
"name": "Production Line Alpha",
"groups": [
{ "id": "grp_001", "name": "To Do", "color": "#579bfc" },
{ "id": "grp_002", "name": "In Progress", "color": "#fdab3d" },
{ "id": "grp_003", "name": "Done", "color": "#00c875" }
],
"columns": [
{ "id": "col_001", "name": "Status", "type": "status" },
{ "id": "col_002", "name": "Priority", "type": "priority" },
{ "id": "col_003", "name": "Due Date", "type": "date" },
{ "id": "col_004", "name": "Assignee", "type": "person" }
],
"items": [
{
"id": "itm_aaa",
"name": "Calibrate sensor array",
"groupId": "grp_002",
"values": { ... }
}
]
}
When to use: Load this to understand a project’s current state — what tasks exist, where they are in the workflow, and what columns are available for setting values.
Discovery: The list callback walks the full workspace > project hierarchy and
returns all boards with item counts and group counts:
{
"resources": [
{
"uri": "probeya://board/brd_xyz789",
"name": "Brussels Site / Production Line Alpha",
"description": "Board with 42 items, 3 groups",
"mimeType": "application/json"
}
]
}
probeya://project/
Project overview with a board summary — item count, group breakdown, and column definitions. Lighter than the full board resource (no individual item data).
| Property | Value |
|---|---|
| URI Pattern | probeya://project/{projectId} |
| MIME Type | application/json |
| Parameter | projectId — the project’s cuid2 identifier |
| Discovery | list callback enumerates all projects across all workspaces |
Response structure:
{
"boardId": "brd_xyz789",
"boardName": "Production Line Alpha",
"totalGroups": 3,
"totalColumns": 8,
"totalItems": 42,
"groups": [
{ "id": "grp_001", "name": "To Do", "itemCount": 12 },
{ "id": "grp_002", "name": "In Progress", "itemCount": 18 },
{ "id": "grp_003", "name": "Done", "itemCount": 12 }
],
"columns": [
{ "id": "col_001", "name": "Status", "type": "status" },
{ "id": "col_002", "name": "Priority", "type": "priority" }
]
}
When to use: Get a quick overview of a project without loading all item data. Useful for deciding which project to drill into, or for summary reporting across multiple projects.
Discovery: The list callback returns all projects with workspace context:
{
"resources": [
{
"uri": "probeya://project/prj_abc123",
"name": "Brussels Site / Quality Improvement",
"description": "Pharma quality transformation project",
"mimeType": "application/json"
}
]
}
Resource Links in Tool Responses
Several tools return resource link content blocks that cross-reference related resources. For example:
get_boardincludes a link toprobeya://board/{boardId}create_itemincludes a link to view the parent boardanalyze_boardincludes a link to the analyzed board
These links allow the AI client to follow references and load additional context without the user needing to specify IDs manually.
{
"type": "resource_link",
"uri": "probeya://board/brd_xyz789",
"name": "Production Line Alpha",
"description": "Board with 42 items",
"mimeType": "application/json"
}
Was this page helpful?