Productive.io MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP server port (default: 3000) | 3000 |
| PRODUCTIVE_ORG_ID | Yes | Your Productive.io organization ID (found in account settings) | |
| PRODUCTIVE_API_TOKEN | Yes | Your Productive.io API token (generate in Settings → API integrations) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| productive_list_projectsA | List and search Productive.io projects. Supports filtering by company, project type, and archived status. Use this to find project IDs needed for other tools like productive_list_tasks or productive_list_deals. |
| productive_get_projectA | Get a single Productive.io project by ID with full details. Optionally include related resources like company, project_manager, and workflow. |
| productive_create_projectA | Create a new project in Productive.io. Requires a name and project_type_id. Optionally associate with a company. Use productive_list_companies to find company IDs. |
| productive_update_projectB | Update an existing Productive.io project. Use productive_get_project first to see current values. |
| productive_list_tasksB | List and filter tasks in Productive.io. Filter by project, assignee, task list, board, or status. Status values: 1=open, 2=closed. Use this to find task IDs and task_list IDs. |
| productive_get_taskA | Get a single task by ID from Productive.io with full details including description, dates, and time tracking info. |
| productive_create_taskA | Create a new task in Productive.io. Requires a title and task_list_id (which belongs to a project). Use productive_list_tasks with a project_id to find available task_list IDs. |
| productive_update_taskB | Update an existing task in Productive.io. Use productive_get_task first to see current values. |
| productive_list_time_entriesA | List time entries from Productive.io. Filter by person, service, project, or date range. Returns individual entries plus a summary with total hours. Date filters use 'after' and 'before' in YYYY-MM-DD format. |
| productive_log_timeA | Create a new time entry in Productive.io. Requires person_id, service_id, and date. You can specify duration either as 'time' in minutes OR as 'started_at'/'ended_at' times (HH:MM format). When started_at and ended_at are provided, the duration is auto-calculated and the entry shows as a time block. ALWAYS prefer started_at/ended_at when the user mentions start/end times (e.g. '9 to 5', '09:00-17:00'). Use productive_list_people to find person IDs. Use productive_list_services to find service IDs. |
| productive_list_peopleA | List all team members in Productive.io. Returns ID, full name, email, and title. Defaults to page_size=200 to get all members. Use this to find person IDs needed for task assignment or time logging. |
| productive_get_personC | Get details for a specific person by ID from Productive.io. |
| productive_list_dealsB | List budgets/deals from Productive.io. Filter by project, company, or deal status. Deal status values: 1=open, 2=won, 3=lost. Budgets are deals linked to projects for financial tracking. |
| productive_get_dealB | Get a single deal/budget by ID from Productive.io with full financial details. |
| productive_list_companiesB | List companies (clients) in Productive.io. Filter by status or search by name. Use this to find company IDs needed for creating projects or filtering deals. |
| productive_get_companyC | Get a single company by ID from Productive.io with full details. |
| productive_list_bookingsB | List resource bookings/scheduling from Productive.io. Filter by person, project, or date range to see who is booked and when. Booking methods: 1=per day, 2=percentage, 3=total hours. |
| productive_list_servicesA | List services (budget line items) in Productive.io. Filter by deal/budget ID. Services belong to a deal/budget and define what work is tracked. Billing types: 1=fixed, 2=time and materials, 3=not billable. Use this to find service IDs needed for logging time. |
| productive_list_invoicesA | List invoices from Productive.io with optional filters. Use this to find invoices for a client, filter by status, or find source invoices to clone. |
| productive_get_invoiceA | Get full invoice details by ID, including line items, attributions, company, document type, and subsidiary. Use this to inspect an invoice before cloning it. |
| productive_create_invoiceA | Creates a new draft invoice. The invoice will NOT be finalized or assigned a number — finalization must be done manually in the Productive.io UI. |
| productive_update_invoiceA | Update an existing draft invoice. Cannot be used to finalize an invoice. Only draft invoices (not yet finalized) can be updated. |
| productive_create_invoice_from_previousA | Creates a new draft invoice based on a previous invoice, copying line items and budget links. The new invoice is saved as a draft — it will not be finalized or assigned a number. Use productive_get_invoice first to inspect the source invoice. |
| productive_create_invoice_like_last_for_clientA | Creates a new draft invoice for a client based on their most recent invoice (or Nth most recent). Copies line items and budget links. The new invoice is saved as a draft — it will not be finalized or assigned a number. |
| productive_list_line_itemsA | List line items for a specific invoice. Line items determine the invoice amount (quantity x unit_price). |
| productive_create_line_itemA | Create a line item on a draft invoice. Line items define the billable rows (description, quantity, unit_price). Tax is set per line item via tax_rate_id. |
| productive_update_line_itemA | Update an existing line item on a draft invoice (description, quantity, unit_price, discount). |
| productive_delete_line_itemB | Delete a line item from a draft invoice. |
| productive_list_invoice_attributionsA | List invoice attributions (budget links) for a specific invoice. Attributions connect invoices to budgets/deals for financial tracking. |
| productive_create_invoice_attributionC | Link a draft invoice to a budget/deal with an allocated amount. This connects the invoice to a budget for financial tracking in Productive.io. |
| productive_list_document_typesA | List available document types in Productive.io. Document types determine the invoice template, locale, and tax defaults. Use this when creating invoices to find the correct document_type_id. |
| productive_list_subsidiariesA | List your company subsidiaries in Productive.io. Subsidiaries represent your company entities and determine the 'Bill From' on invoices. Use this when creating invoices to find the correct subsidiary_id. |
| productive_list_tax_ratesA | List available tax rates in Productive.io. Tax rates are applied per line item (not per invoice). Use this to find the correct tax_rate_id when creating line items. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 33 tools
Most tools target distinct resources and actions (e.g., get_task vs list_tasks, log_time vs list_time_entries). However, the three invoice-creation tools (create_invoice, create_invoice_from_previous, create_invoice_like_last_for_client) overlap in purpose and could be confused, though descriptions differentiate them.
All tools use the productive_ prefix followed by a consistent snake_case verb_noun pattern (list_projects, get_task, create_invoice, update_line_item, delete_line_item). No mixing of camelCase or inconsistent verb styles.
33 tools is heavy for a single server. While the broad domain (projects, tasks, time, invoices, budgets, etc.) might justify many tools, the count exceeds the typical 3-15 range and includes several granular read-only reference tools (document_types, subsidiaries, tax_rates) that contribute to bloat.
Coverage is heavily read-oriented. Many core resources lack full CRUD: no delete for projects, tasks, time entries, companies, people, deals, or bookings; no update for time entries, bookings, services, deals, people, or companies. Common workflows (e.g., updating a company, creating a deal) will fail.