MCP-Server

parabol

io.usefulapi/parabol
Kommunikation Produktivität Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Manages Parabol teams, meetings, retrospectives, standups, sprint poker, discussions, reflections, invitations, and tasks.

add_comment
Add a comment
MUTATES Parabol data: add a comment to a meeting discussion thread. Required: content (stringified TipTap/ProseMirror JSON document), discussionId, threadSortOrder (Int). Optionally isAnonymous or threadParentId (to reply). Parabol GraphQL: addComment(comment) → union. Requires COMMENTS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['content', 'discussionId'], 'properties': {'fields': {'type': 'object', 'description': "Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above).", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content': {'type': 'string', 'description': 'Comment body as a stringified TipTap/ProseMirror JSON document (required).'}, 'isAnonymous': {'type': 'boolean', 'description': 'Post the comment anonymously.'}, 'discussionId': {'type': 'string', 'description': 'The discussion (meeting thread) id (required).'}, 'threadParentId': {'type': 'string', 'description': 'Parent comment id, to post a threaded reply.'}, 'threadSortOrder': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Position within the thread (Int). Defaults to 0.'}}}
create_reflection
Create a reflection
MUTATES Parabol data: add a reflection card to a running retrospective's reflect phase. Required: meetingId, promptId (the reflect-prompt/column), sortOrder (Float). `content` (optional) is a stringified TipTap/ProseMirror JSON document (<=2000 chars). Parabol GraphQL: createReflection(input). Requires MEETINGS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['meetingId', 'promptId'], 'properties': {'fields': {'type': 'object', 'description': "Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above).", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'content': {'type': 'string', 'description': 'Reflection text as a stringified TipTap/ProseMirror JSON document.'}, 'promptId': {'type': 'string', 'description': 'The reflect-prompt (column) id (required).'}, 'meetingId': {'type': 'string', 'description': 'The retrospective meeting id (required).'}, 'sortOrder': {'type': 'number', 'description': 'Sort order within the column (Float). Defaults to 0.'}}}
create_task
Create a task
MUTATES Parabol data: create a task on a team. Required: teamId and status (active|stuck|done|future). Provide `plaintextContent` for the task text (and/or `content`, which is a stringified TipTap/ProseMirror JSON document). Optionally assign to a userId or link to a meetingId/discussionId. Parabol GraphQL: createTask(newTask, area). Requires TASKS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'area': {'type': 'string', 'description': "Optional AreaEnum context for the task (e.g. 'teamDash', 'meeting')."}, 'fields': {'type': 'object', 'description': "Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above).", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'enum': ['active', 'stuck', 'done', 'future'], 'type': 'string', 'description': "Task status (TaskStatusEnum). Defaults to 'active'."}, 'teamId': {'type': 'string', 'description': 'The team id to create the task on (required).'}, 'userId': {'type': 'string', 'description': 'Assign the task to this user id.'}, 'content': {'type': 'string', 'description': 'Rich-text content as a stringified TipTap/ProseMirror JSON document.'}, 'meetingId': {'type': 'string', 'description': 'Link the task to this meeting id.'}, 'sortOrder': {'type': 'number', 'description': 'Sort order (Float).'}, 'discussionId': {'type': 'string', 'description': 'Link the task to this discussion id (meeting thread).'}, 'plaintextContent': {'type': 'string', 'description': 'Plain-text task content.'}}}
get_meeting
Get a meeting
Fetch one meeting by id with its phases and stages. For a retrospective it also returns the reflection groups and reflections plus vote/topic/task/comment counts. Uses __typename so you can tell meeting types apart. Parabol GraphQL: viewer.meeting(meetingId). Requires MEETINGS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['meetingId'], 'properties': {'meetingId': {'type': 'string', 'description': 'The meeting id.'}}}
get_organization
Get an organization
Fetch one organization by id, including its teams. Parabol GraphQL: viewer.organization(orgId). Requires ORGS_READ (+ TEAMS_READ for teams).
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'orgId': {'type': 'string', 'description': 'The organization id.'}}}
get_team
Get a team
Fetch one team by id: metadata, its team members (with each member's user), active meetings, and organization. Parabol GraphQL: viewer.team(teamId). Requires TEAMS_READ (+ MEETINGS_READ for activeMeetings, ORGS_READ for organization).
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'teamId': {'type': 'string', 'description': 'The team id.'}}}
get_viewer
Get current user (viewer)
Fetch the authenticated Parabol user (the token owner): id, preferredName, email, tier, and the team ids (tms) they belong to. Parabol GraphQL: query { viewer { ... } }. Requires the USERS_READ scope. Start here to discover your identity and team ids.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
invite_to_team
Invite users to a team
MUTATES Parabol data: send team invitations by email. Required: teamId and invitees (an array of email addresses). Optionally scope to a meetingId. Parabol GraphQL: inviteToTeam(teamId, invitees). Requires TEAMS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId', 'invitees'], 'properties': {'teamId': {'type': 'string', 'description': 'The team id to invite into (required).'}, 'invitees': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Email addresses to invite (required).'}, 'meetingId': {'type': 'string', 'description': 'Optionally associate the invitation with a meeting id.'}}}
list_active_meetings
List active meetings
List a team's currently-active (in-progress) meetings. Parabol GraphQL: viewer.team(teamId).activeMeetings. Requires TEAMS_READ + MEETINGS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'teamId': {'type': 'string', 'description': 'The team id.'}}}
list_meetings
List meetings (history)
List past/ongoing meetings for one or more teams (Relay connection), newest first. `teamIds` is required. `meetingTypes` defaults to all four (retrospective, action, poker, teamPrompt). `before` bounds the window (defaults to now); paginate older with `after`. Parabol GraphQL: viewer.meetings. Requires MEETINGS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamIds'], 'properties': {'after': {'type': 'string', 'description': 'DateTime cursor — return meetings before this ISO timestamp (older page).'}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max meetings to return (default 20).'}, 'before': {'type': 'string', 'description': 'DateTime upper bound (ISO). Defaults to now.'}, 'teamIds': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Team ids to fetch meetings for (required).'}, 'meetingTypes': {'type': 'array', 'items': {'enum': ['retrospective', 'action', 'poker', 'teamPrompt'], 'type': 'string'}, 'description': 'Meeting types to include (MeetingTypeEnum). Defaults to all four.'}}}
list_organizations
List organizations
List the organizations the viewer belongs to: id, name, tier, billingTier. Parabol GraphQL: viewer.organizations. Requires ORGS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_organization_users
List organization users
List the users in an organization (Relay connection): each org-user's role, joinedAt, tier, and underlying user (preferredName, email). Paginate with `first` + `after` (pass the last edge's `cursor`). Parabol GraphQL: viewer.organization(orgId).organizationUsers. Requires ORGS_READ + USERS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'after': {'type': 'string', 'description': 'Cursor for the next page (the `cursor` of the last edge from a prior call).'}, 'first': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Max org-users to return (page size).'}, 'orgId': {'type': 'string', 'description': 'The organization id.'}}}
list_tasks
List tasks
List the viewer's tasks (Relay connection), optionally filtered by team, user, status, archived state, or a text query. Paginate with `first` + the `after` DateTime cursor. Parabol GraphQL: viewer.tasks. Requires TASKS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'after': {'type': 'string', 'description': "DateTime cursor for the next (older) page (the last edge's cursor)."}, 'first': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max tasks to return (default 20).'}, 'teamIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter to these team ids.'}, 'userIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter to tasks assigned to these user ids.'}, 'archived': {'type': 'boolean', 'description': 'Include archived tasks (default false).'}, 'filterQuery': {'type': 'string', 'description': 'Free-text filter on task content.'}, 'statusFilters': {'type': 'array', 'items': {'enum': ['active', 'stuck', 'done', 'future'], 'type': 'string'}, 'description': 'Filter by task status (TaskStatusEnum: active, stuck, done, future).'}, 'includeUnassigned': {'type': 'boolean', 'description': 'Include unassigned tasks (default false).'}}}
list_team_members
List team members
List the members of a team, each with role flags (isLead, isOrgAdmin) and the underlying user (preferredName, email). Parabol GraphQL: viewer.team(teamId).teamMembers. Requires TEAMS_READ.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'sortBy': {'type': 'string', 'description': "Optional field to sort members by (e.g. 'preferredName')."}, 'teamId': {'type': 'string', 'description': 'The team id.'}}}
list_teams
List teams
List the teams the viewer belongs to, with each team's id, name, orgId, tier, and team lead. Parabol GraphQL: viewer.teams. Requires the TEAMS_READ scope.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'includeArchived': {'type': 'boolean', 'description': 'Include archived teams (default false).'}}}
parabol_graphql
Run a GraphQL operation (query or mutation)
MUTATES Parabol data (potentially): escape hatch to run an arbitrary Parabol GraphQL operation — including any mutation — against action.parabol.co/graphql with optional variables. Use for operations not covered by the curated tools. Your token must carry the scope the operation requires. Prefer parabol_query for read-only calls.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'A GraphQL query or mutation document.'}, 'variables': {'type': 'object', 'description': 'Variables object for the operation.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
parabol_query
Run a GraphQL query (read-only)
Escape hatch: run an arbitrary Parabol GraphQL QUERY (read-only) against action.parabol.co/graphql with optional variables. Mutations are REJECTED — use the dedicated write tools or parabol_graphql for those. Useful for fields not covered by the curated read tools. Requires the matching read scope(s) on your token.
Nur Lesen
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'A GraphQL query document (must be a query, not a mutation).'}, 'variables': {'type': 'object', 'description': 'Variables object for the query.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
start_checkin
Start a check-in meeting
MUTATES Parabol data: start a new Check-in (Action) meeting for a team (returns the new meetingId). Required: teamId. Optionally name it. Parabol GraphQL: startCheckIn → union. Requires MEETINGS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'name': {'type': 'string', 'description': 'Optional meeting name.'}, 'teamId': {'type': 'string', 'description': 'The team id (required).'}}}
start_retrospective
Start a retrospective
MUTATES Parabol data: start a new retrospective meeting for a team (returns the new meetingId). Required: teamId. Optionally name it. Parabol GraphQL: startRetrospective → union. Requires MEETINGS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'name': {'type': 'string', 'description': 'Optional meeting name.'}, 'teamId': {'type': 'string', 'description': 'The team id to run the retro for (required).'}}}
start_team_prompt
Start a standup (team prompt)
MUTATES Parabol data: start a new async Standup (Team Prompt) meeting for a team. Required: teamId. Optionally name it (default 'Standup'). Parabol GraphQL: startTeamPrompt → union. Requires MEETINGS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['teamId'], 'properties': {'name': {'type': 'string', 'description': "Optional meeting name (default 'Standup')."}, 'teamId': {'type': 'string', 'description': 'The team id (required).'}}}
update_task
Update a task
MUTATES Parabol data: update an existing task. Required: id. Optionally change content (stringified TipTap JSON), status, assignee (userId), or sortOrder. Only included fields change. Parabol GraphQL: updateTask(updatedTask, area). Requires TASKS_WRITE.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The task id (required).'}, 'area': {'type': 'string', 'description': 'Optional AreaEnum context.'}, 'fields': {'type': 'object', 'description': "Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above).", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'enum': ['active', 'stuck', 'done', 'future'], 'type': 'string', 'description': 'New status (TaskStatusEnum).'}, 'userId': {'type': 'string', 'description': 'Reassign the task to this user id.'}, 'content': {'type': 'string', 'description': 'New rich-text content as a stringified TipTap/ProseMirror JSON document.'}, 'sortOrder': {'type': 'number', 'description': 'New sort order (Float).'}}}
Hinzugefügt
parabol_graphql
21. September 2026 02:44
Hinzugefügt
invite_to_team
21. September 2026 02:44
Hinzugefügt
start_team_prompt
21. September 2026 02:44
Hinzugefügt
start_checkin
21. September 2026 02:44
Hinzugefügt
start_retrospective
21. September 2026 02:44
Hinzugefügt
add_comment
21. September 2026 02:44
Hinzugefügt
create_reflection
21. September 2026 02:44
Hinzugefügt
update_task
21. September 2026 02:44
Hinzugefügt
create_task
21. September 2026 02:44
Hinzugefügt
parabol_query
21. September 2026 02:44
Hinzugefügt
list_tasks
21. September 2026 02:44
Hinzugefügt
list_active_meetings
21. September 2026 02:44
Hinzugefügt
get_meeting
21. September 2026 02:44
Hinzugefügt
list_meetings
21. September 2026 02:44
Hinzugefügt
list_organization_users
21. September 2026 02:44
Hinzugefügt
get_organization
21. September 2026 02:44
Hinzugefügt
list_organizations
21. September 2026 02:44
Hinzugefügt
list_team_members
21. September 2026 02:44
Hinzugefügt
get_team
21. September 2026 02:44
Hinzugefügt
list_teams
21. September 2026 02:44
Hinzugefügt
get_viewer
21. September 2026 02:44