parabol
Server Details
Start Parabol retrospectives, standups and sprint poker; read teams/meetings/tasks; create tasks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
21 toolsadd_commentAdd a commentDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above). | |
| content | Yes | Comment body as a stringified TipTap/ProseMirror JSON document (required). | |
| isAnonymous | No | Post the comment anonymously. | |
| discussionId | Yes | The discussion (meeting thread) id (required). | |
| threadParentId | No | Parent comment id, to post a threaded reply. | |
| threadSortOrder | No | Position within the thread (Int). Defaults to 0. |
create_reflectionCreate a reflectionDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above). | |
| content | No | Reflection text as a stringified TipTap/ProseMirror JSON document. | |
| promptId | Yes | The reflect-prompt (column) id (required). | |
| meetingId | Yes | The retrospective meeting id (required). | |
| sortOrder | No | Sort order within the column (Float). Defaults to 0. |
create_taskCreate a taskDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Optional AreaEnum context for the task (e.g. 'teamDash', 'meeting'). | |
| fields | No | Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above). | |
| status | No | Task status (TaskStatusEnum). Defaults to 'active'. | |
| teamId | Yes | The team id to create the task on (required). | |
| userId | No | Assign the task to this user id. | |
| content | No | Rich-text content as a stringified TipTap/ProseMirror JSON document. | |
| meetingId | No | Link the task to this meeting id. | |
| sortOrder | No | Sort order (Float). | |
| discussionId | No | Link the task to this discussion id (meeting thread). | |
| plaintextContent | No | Plain-text task content. |
get_meetingGet a meetingRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| meetingId | Yes | The meeting id. |
get_organizationGet an organizationRead-onlyInspect
Fetch one organization by id, including its teams. Parabol GraphQL: viewer.organization(orgId). Requires ORGS_READ (+ TEAMS_READ for teams).
| Name | Required | Description | Default |
|---|---|---|---|
| orgId | Yes | The organization id. |
get_teamGet a teamRead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | The team id. |
get_viewerGet current user (viewer)Read-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
invite_to_teamInvite users to a teamDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | The team id to invite into (required). | |
| invitees | Yes | Email addresses to invite (required). | |
| meetingId | No | Optionally associate the invitation with a meeting id. |
list_active_meetingsList active meetingsRead-onlyInspect
List a team's currently-active (in-progress) meetings. Parabol GraphQL: viewer.team(teamId).activeMeetings. Requires TEAMS_READ + MEETINGS_READ.
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | The team id. |
list_meetingsList meetings (history)Read-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | DateTime cursor — return meetings before this ISO timestamp (older page). | |
| first | No | Max meetings to return (default 20). | |
| before | No | DateTime upper bound (ISO). Defaults to now. | |
| teamIds | Yes | Team ids to fetch meetings for (required). | |
| meetingTypes | No | Meeting types to include (MeetingTypeEnum). Defaults to all four. |
list_organizationsList organizationsRead-onlyInspect
List the organizations the viewer belongs to: id, name, tier, billingTier. Parabol GraphQL: viewer.organizations. Requires ORGS_READ.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_organization_usersList organization usersRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Cursor for the next page (the `cursor` of the last edge from a prior call). | |
| first | No | Max org-users to return (page size). | |
| orgId | Yes | The organization id. |
list_tasksList tasksRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | DateTime cursor for the next (older) page (the last edge's cursor). | |
| first | No | Max tasks to return (default 20). | |
| teamIds | No | Filter to these team ids. | |
| userIds | No | Filter to tasks assigned to these user ids. | |
| archived | No | Include archived tasks (default false). | |
| filterQuery | No | Free-text filter on task content. | |
| statusFilters | No | Filter by task status (TaskStatusEnum: active, stuck, done, future). | |
| includeUnassigned | No | Include unassigned tasks (default false). |
list_team_membersList team membersRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sortBy | No | Optional field to sort members by (e.g. 'preferredName'). | |
| teamId | Yes | The team id. |
list_teamsList teamsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived teams (default false). |
parabol_graphqlRun a GraphQL operation (query or mutation)DestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A GraphQL query or mutation document. | |
| variables | No | Variables object for the operation. |
parabol_queryRun a GraphQL query (read-only)Read-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A GraphQL query document (must be a query, not a mutation). | |
| variables | No | Variables object for the query. |
start_checkinStart a check-in meetingDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional meeting name. | |
| teamId | Yes | The team id (required). |
start_retrospectiveStart a retrospectiveDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional meeting name. | |
| teamId | Yes | The team id to run the retro for (required). |
start_team_promptStart a standup (team prompt)DestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional meeting name (default 'Standup'). | |
| teamId | Yes | The team id (required). |
update_taskUpdate a taskDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task id (required). | |
| area | No | Optional AreaEnum context. | |
| fields | No | Additional documented GraphQL input fields to send verbatim in this mutation's input (merged OVER the typed fields above). | |
| status | No | New status (TaskStatusEnum). | |
| userId | No | Reassign the task to this user id. | |
| content | No | New rich-text content as a stringified TipTap/ProseMirror JSON document. | |
| sortOrder | No | New sort order (Float). |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!