Skip to main content
Glama
rubenlangeweg

productive-mcp-rb2

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PRODUCTIVE_ORG_IDYesYour organisation ID
PRODUCTIVE_USER_IDNoYour user ID — enables my_tasks, me shorthand in all tools, and the productive://me/* resources
PRODUCTIVE_API_TOKENYesYour Productive.io API token

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
whoamiA

Get the current user context. Shows which user ID is configured as "me" for all operations.

list_companiesA

List companies (clients) in your Productive organisation. Filter by active or archived status.

list_projectsA

List projects in your Productive organisation. Filter by status or company.

list_boardsB

Get a list of boards from Productive.io

create_boardB

Create a new board in a Productive.io project

list_task_listsA

Get a list of task lists from Productive.io. Task lists organize tasks within boards.

create_task_listA

Create a new task list in a Productive.io board. Task lists help organize tasks within boards.

get_task_listA

Get details of a specific task list by its ID.

update_task_listA

Rename an existing task list.

archive_task_listA

Archive a task list. This is reversible — use restore_task_list to undo.

restore_task_listA

Restore a previously archived task list.

reposition_task_listA

Reposition a task list within its board. Optionally move it before another task list.

list_tasksB

Get a list of tasks from Productive.io

get_project_tasksA

Get all tasks for a specific project. ALSO used as STEP 4 in timesheet workflow to find task_id for linking time entries to specific tasks. Workflow: list_projects → list_project_deals → list_deal_services → get_project_tasks → create_time_entry.

get_taskA

Get detailed information about a specific task by ID

create_taskB

Create a new task in Productive.io. If PRODUCTIVE_USER_ID is configured, you can use "me" to refer to the configured user when assigning.

update_task_assignmentA

Update the assignee of an existing task. If PRODUCTIVE_USER_ID is configured, you can use "me" to refer to the configured user. To unassign, use "null" as a string.

update_task_detailsA

Update the title (name) and/or description of an existing task. At least one field must be provided.

delete_taskA

Permanently delete a task in Productive.io. This action is destructive and irreversible.

add_task_commentB

Add a comment to a task in Productive.io.

list_commentsB

List comments on a task in Productive.io.

get_commentA

Get a single comment by ID, including its body and metadata.

update_commentB

Edit the body of an existing comment.

delete_commentB

Delete a comment from Productive.io. This action is destructive.

pin_commentA

Pin a comment so it stays at the top of the task discussion.

unpin_commentC

Unpin a previously pinned comment.

add_comment_reactionA

Add a reaction emoji (e.g. "like") to a comment.

update_task_statusA

Update the status of a task. Provide either workflow_status_id directly, or status_name (case-insensitive, partial match) to resolve it from list_workflow_statuses.

list_workflow_statusesA

List workflow statuses available in Productive.io. These are used to set task status (Not Started=1, Started=2, Closed=3).

my_tasksB

Get tasks assigned to the configured user. Requires PRODUCTIVE_USER_ID to be set.

list_activitiesA

List activities (changes/updates) from Productive.io with filtering options for tracking recent work

get_recent_updatesA

Get a summary of recent updates and changes in the last N days, with detailed breakdown by item type

list_time_entriesA

View existing time entries from Productive.io with detailed information including service and budget relationships. Use this to see what time has been logged and to which projects/services. If PRODUCTIVE_USER_ID is configured, you can use "me" to refer to the configured user for person_id.

create_time_entryA

STEP 5 (FINAL) of timesheet workflow: Create a time entry with detailed work description. COMPLETE WORKFLOW: 1) list_projects → 2) list_project_deals → 3) list_deal_services → 4) list_project_tasks (recommended) → 5) create_time_entry. You MUST provide: valid service_id from the hierarchy, detailed work notes (minimum 10 chars), and optionally link to a specific task_id. This tool requires confirmation before creating. If PRODUCTIVE_USER_ID is configured, use "me" for person_id.

get_dealA

Get details of a specific deal or budget by its ID.

list_project_dealsA

STEP 2 of timesheet workflow: Get deals/budgets for a specific project. COMPLETE WORKFLOW: 1) list_projects → 2) list_project_deals → 3) list_deal_services → 4) list_project_tasks (recommended) → 5) create_time_entry. This follows: Project → Deal/Budget → Service → Task → Time Entry.

list_deal_servicesA

STEP 3 of timesheet workflow: Get services for a specific deal/budget. COMPLETE WORKFLOW: 1) list_projects → 2) list_project_deals → 3) list_deal_services → 4) list_project_tasks (recommended) → 5) create_time_entry. After this, optionally use list_project_tasks to find specific tasks to link your time entry to.

list_servicesA

List all services in the organization. NOTE: For timesheet entries, use the proper workflow instead: list_projects → list_project_deals → list_deal_services → create_time_entry. This tool shows all services but does not indicate which project/budget they belong to.

get_project_servicesA

Get all services for a project by traversing its deals/budgets. Returns services grouped by deal/budget. Prefer using list_project_deals + list_deal_services for more control.

update_task_sprintA

Update the sprint(s) assigned to a task. Sprints are tracked using a custom field.

move_task_to_listA

Move a task to a different task list within the same project

add_to_backlogB

Add a task to the project backlog. Creates a Backlog task list if it doesn't exist.

reposition_taskA

Reposition a task in a task list

list_peopleA

List people (team members) in your Productive.io organization. Use to find person IDs for task assignment, time entries, and filtering. Supports filtering by company, project membership, active status, and email.

get_personA

Get detailed information about a specific person by their Productive ID.

update_time_entryA

Update an existing time entry in Productive.io. Only provide the fields you want to change.

delete_time_entryA

Delete a time entry from Productive.io. This action is irreversible.

list_invoicesA

List invoices in Productive.io. Filter by company, project, or status (1=draft, 2=sent, 3=paid, 4=canceled) and date range.

get_invoiceA

Get detailed information about a specific invoice by its Productive ID.

list_expensesA

List expenses in Productive.io. Filter by person, project, or date range. Use "me" for person_id if PRODUCTIVE_USER_ID is configured.

create_expenseA

Create a new expense record in Productive.io. Use get_project_services to find a valid service_id first.

list_membershipsA

List project memberships in Productive.io. Use to see which people are members of a project, or which projects a person belongs to.

list_bookingsA

List resource bookings/capacity planning entries in Productive.io. Bookings show planned work allocation for people on projects over date ranges. Use to check availability and planned capacity. Use "me" for person_id if PRODUCTIVE_USER_ID is configured.

get_budget_burnA

Analyse budget burn for rb2 projects. Returns budget value, amount spent, burn %, remaining, and RAG status per budget deal. RAG: 🟢 <70% / 🟡 70-90% / 🔴 >90%. Use min_burn_pct=70 to show only at-risk projects.

get_resource_planA

Get the rb2 resource plan for a date range. Shows bookings with person, project, hours/day, and utilisation %. Use person_name and project_id for focused planning views.

get_overbooked_peopleB

Detect people with overlapping bookings above a utilisation threshold in a date range. Calculates daily load and highlights over-capacity dates.

get_org_overviewA

Get an rb2 org-level overview: headcount per subsidiary (NL, SCAPE, Code Blue, CN, PT, NG) plus total active projects. Shows who works where across the organisation.

list_subtasksA

List all subtasks (child tasks) of a given parent task in Productive.io.

create_subtaskA

Create a new subtask under a parent task. If PRODUCTIVE_USER_ID is configured, "me" can be used for assignee_id.

list_todosB

List all todo/checklist items for a specific task in Productive.io.

create_todoA

Create a new todo/checklist item on a task in Productive.io.

update_todoA

Update a todo/checklist item — rename it or mark it as completed/incomplete.

delete_todoA

Delete a todo/checklist item from a task in Productive.io.

get_todoA

Get a single todo/checklist item by its ID.

list_task_dependenciesA

List all dependencies for a task in Productive.io (blocking, waiting_on, related).

add_task_dependencyB

Add a dependency relationship between two tasks in Productive.io.

remove_task_dependencyA

Remove a task dependency by its dependency ID. Use list_task_dependencies first to find the dependency ID.

get_task_dependencyA

Get a single task dependency by its ID.

create_tasks_batchA

Create multiple tasks at once in Productive.io. Each task is created independently — failures on individual tasks do not abort the others. Shared project/board/task_list can be set at the top level and overridden per task.

list_pagesA

List knowledge base pages in Productive.io. Filter by project to see project-specific docs.

get_pageA

Get the full content of a specific knowledge base page in Productive.io.

create_pageA

Create a new knowledge base page in a project. Optionally nest under a parent page.

update_pageA

Update the title and/or body of an existing page. At least one field must be provided.

delete_pageA

Delete a knowledge base page. This action is destructive.

move_pageB

Move a page so that it becomes a child of another page (a new parent).

copy_pageA

Copy a page to create a new page from a template. Optionally specify a destination project.

list_foldersA

List folders that group boards within projects. Filter by project and active/archived status.

get_folderA

Get details of a specific folder by its ID.

create_folderB

Create a new folder inside a project to group boards.

update_folderB

Rename an existing folder.

archive_folderA

Archive a folder. This is reversible — use restore_folder to undo.

restore_folderA

Restore a previously archived folder.

list_attachmentsA

List file attachments on a task or comment in Productive.io. Returns filenames, types, sizes, and download URLs.

Prompts

Interactive templates invoked by user choice

NameDescription
timesheet_entryGuided workflow for creating timesheet entries in Productive.io. Walks you through project → budget → service → task → time entry selection with proper validation.
timesheet_stepStep-by-step guidance for timesheet workflow. Use this to get specific help for each step: project, budget, service, task, or create.
weekly_reportGenerate a structured weekly status report — time logged, tasks completed, in-progress work
project_healthFull project health check: budget burn, open tasks, team capacity, and recent activity — produces a RAG-rated summary
sprint_planningWalk through sprint planning: review backlog, check capacity, select tasks, create new ones, and assign the team

Resources

Contextual data attached and managed by the client

NameDescription
Active ProjectsAll active projects in Productive.io
Org Overviewrb2 headcount per subsidiary and total active projects

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rubenlangeweg/productive-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server