Interact with the Productive.io API for project management and productivity tasks.
An MCP (Model Context Protocol) server that enables Claude Desktop and other MCP-compatible clients to interact with the Productive.io API.
npm install
npm run build
Copy .env.example
to .env
:
cp .env.example .env
Add your Productive.io credentials:
PRODUCTIVE_API_TOKEN=your_api_token_here
PRODUCTIVE_ORG_ID=your_organization_id_here
To obtain these credentials:
To find your user ID:
Build the server:
npm run build
Add the server to your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"productive": {
"command": "node",
"args": ["/path/to/productive-mcp/build/index.js"],
"env": {
"PRODUCTIVE_API_TOKEN": "your_api_token_here",
"PRODUCTIVE_ORG_ID": "your_organization_id_here",
"PRODUCTIVE_USER_ID": "your_user_id_here"
}
}
}
}
Replace /path/to/productive-mcp
with the actual absolute path to your project directory.
Note: PRODUCTIVE_USER_ID
is optional but required for the my_tasks
tool to work.
Restart Claude Desktop
Get the current user context and check which user ID is configured for "me" operations.
Get a list of companies/customers from Productive.io
Parameters:
status
(optional): Filter by company status ('active' or 'archived')limit
(optional): Number of companies to return (1-200, default: 30)Get a list of projects from Productive.io
Parameters:
status
(optional): Filter by project status ('active' or 'archived')company_id
(optional): Filter projects by company IDlimit
(optional): Number of projects to return (1-200, default: 30)Get a list of boards from projects
Parameters:
project_id
(optional): Filter boards by project IDlimit
(optional): Number of boards to return (max 200, default: 30)Create a new board in a Productive.io project
Parameters:
project_id
(required): The ID of the project to create the board inname
(required): Name of the boarddescription
(optional): Description of the boardGet a list of task lists from boards
Parameters:
board_id
(optional): Filter task lists by board IDlimit
(optional): Number of task lists to return (max 200, default: 30)Create a new task list in a board
Parameters:
board_id
(required): The ID of the board to create the task list inproject_id
(required): The ID of the projectname
(required): Name of the task listdescription
(optional): Description of the task listGet a list of tasks from Productive.io
Parameters:
project_id
(optional): Filter tasks by project IDassignee_id
(optional): Filter tasks by assignee IDstatus
(optional): Filter by task status ('open' or 'closed')limit
(optional): Number of tasks to return (1-200, default: 30)Get all tasks for a specific project
Parameters:
project_id
(required): The ID of the projectstatus
(optional): Filter by task status ('open' or 'closed')Get detailed information about a specific task
Parameters:
task_id
(required): The ID of the task to retrieveCreate a new task in Productive.io
Parameters:
title
(required): Task titledescription
(optional): Task descriptionproject_id
(optional): ID of the project to add the task toboard_id
(optional): ID of the board to add the task totask_list_id
(optional): ID of the task list to add the task toassignee_id
(optional): ID of the person to assign (use "me" for configured user)due_date
(optional): Due date in YYYY-MM-DD formatstatus
(optional): Task status ('open' or 'closed', default: 'open')Update the assignee of an existing task
Parameters:
task_id
(required): ID of the task to updateassignee_id
(required): ID of the person to assign (use "me" for configured user, "null" to unassign)Get tasks assigned to you (requires PRODUCTIVE_USER_ID to be configured)
Parameters:
status
(optional): Filter by task status ('open' or 'closed')limit
(optional): Number of tasks to return (1-200, default: 30)Add a comment to a task
Parameters:
task_id
(required): ID of the task to add the comment tocomment
(required): Text content of the commentUpdate the status of a task using workflow status ID
Parameters:
task_id
(required): ID of the task to updateworkflow_status_id
(required): ID of the workflow status to setList workflow statuses available in Productive.io (used for task status updates)
Parameters:
workflow_id
(optional): Filter by workflow IDcategory_id
(optional): Filter by category (1=Not Started, 2=Started, 3=Closed)limit
(optional): Number of statuses to return (1-200, default: 50)List people in the organization with optional filters
Parameters:
company_id
(optional): Filter people by company IDproject_id
(optional): Filter people assigned to a specific projectis_active
(optional): Filter by active statusemail
(optional): Filter by email addresslimit
(optional): Maximum number of people to return (default: 50, max: 100)page
(optional): Page number for pagination (default: 1)Get all people assigned to a specific project
Parameters:
project_id
(required): The project ID to get people foris_active
(optional): Filter by active status (default: true)limit
(optional): Maximum number of people to return (default: 50, max: 100)page
(optional): Page number for pagination (default: 1)List activities and changes across your organization
Parameters:
task_id
(optional): Filter activities by task IDproject_id
(optional): Filter activities by project IDperson_id
(optional): Filter activities by person IDitem_type
(optional): Filter by item typeevent
(optional): Filter by event typeafter
(optional): Filter activities after this date (ISO 8601 format)before
(optional): Filter activities before this date (ISO 8601 format)limit
(optional): Number of activities to returnpage
(optional): Page number for paginationGet recent updates and activities in a summarized format
Parameters:
limit
(optional): Number of recent updates to return (default: 20)hours
(optional): Number of hours to look back (default: 24)To update a task's status, you need to use workflow status IDs rather than simple "open"/"closed" values:
First, list available workflow statuses:
list_workflow_statuses
This will show you all available statuses with their IDs and categories (Not Started=1, Started=2, Closed=3).
Then update the task status:
update_task_status {
"task_id": "12399194",
"workflow_status_id": "specific_status_id_from_step_1"
}
When PRODUCTIVE_USER_ID
is configured, you can use "me" in several tools:
create_task
with "assignee_id": "me"
update_task_assignment
with "assignee_id": "me"
my_tasks
to get your assigned taskswhoami
to verify your configured user contextcreate_board
create_task_list
create_task
add_task_comment
list_workflow_statuses
then update_task_status
list_activities
or get_recent_updates
npm run dev
npm run build
npm start
ISC
Integrates with the Minimax API for AI-powered image generation and text-to-speech.
A server for Taiga project management, enabling advanced sprint and issue tracking.
A spellchecker and grammar checker for developers, requiring a Hyperspell token for authentication.
Generates Decent Sampler drum kit configurations.
An MCP server that enables LLMs to create or update Notion pages and generate Markdown Books (mdbooks).
Converts Markdown to styled PDFs using VS Code's markdown styling and Python's ReportLab.
A universal interface to manage and interact with all your MCP servers from a single point, using external configuration files for mappings and credentials.
An MCP server to execute Coze workflows locally via a Python script.
Interact with Microsoft OneNote using AI language models like Claude and other LLMs.
A multi-agent mesh network designed for completing AI tasks in parallel.