We Built an Open-Source MCP Server for Productive.io (and You Can Have It)
We built an open-source MCP server that connects your AI assistant to Productive.io. Over 40 tools for tasks, budgets, and more. Free, MIT-licensed, and ready to use.
We run everything at TSD through Productive.io. Projects, budgets, time tracking, the lot. When AI assistants gained the ability to connect to external tools through the Model Context Protocol (MCP), it was obvious where we'd start. Too much of our day was spent on repetitive tasks in Productive, things like monitoring our CRM, reporting on the state of budgets, or manually creating tickets after planning sessions. We wanted that gone.
So we built an MCP server that gives your AI assistant direct access to Productive.io. We use it with Claude, but it works with any LLM that supports MCP (ChatGPT, Gemini, and others are all adding support). We've had it running internally for months. Now we're putting it out there for other Productive users.
What's MCP?
MCP is an open standard that lets AI assistants talk to external tools and data sources. Easiest way to think about it: a USB port for AI. A standardised way to plug in new capabilities without building bespoke integrations every time.
Instead of copying data back and forth between your AI and your project management tool, MCP lets the AI read and write directly. You talk in plain English. It sorts out the API calls.
What can it do?
Over 40 tools, covering most of what you'd do day-to-day in Productive.
Task management is where we get the most out of it. Create tasks one at a time or bulk-create batches from a brief. Search and filter across projects. Update properties. All through conversation. Ask your AI to "create five tasks for the homepage redesign sprint" and it'll set them up with the right project, task list, assignees, and descriptions. No forms. No clicking through dropdowns.
Project discovery lets your AI find your projects, task lists, boards, and team members. Really handy when you're juggling multiple projects and can't remember where something sits.
Budget management covers listing, updating, and auditing. There's a budget audit tool that scans for the usual issues: missing revenue distributions, budgets without a responsible person, that kind of thing. It's been genuinely useful during our finance reviews.
Revenue distributions can be created, updated, extended, and reported on. The overdue report flags anything that needs attention, saving someone from manually checking each month.
Services (budget line items) and service types are covered too. Useful when you're setting up new budgets or adjusting existing ones.
Task dependencies handle blocking, waiting-on, and related relationships. There are also helper tools for marking tasks as blocked or as duplicates, which saves a few clicks.
Pages and comments let your AI create documentation inside Productive and pull task comments for context when it needs background on a ticket.
Attachments and checklists round things out. Upload files to tasks and manage to-do items without leaving the conversation.
How we actually use it
No single tool here is revolutionary on its own. The value comes from your AI being able to read context from Productive and act on it in the same breath.
Here's a typical example. We run our planning sessions with Otter recording the conversation. Afterwards, we feed the transcript into our AI and ask it to pull out the tasks, action points, estimates, and assignees that were discussed during the meeting. The AI then goes ahead and creates the tickets directly in Productive with proper descriptions, acceptance criteria as checklist items, and the right people assigned. What used to eat 20+ minutes of admin after every planning session is now handled in a couple of minutes. It's streamlined a fair chunk of the process for us.
Budget reviews are another good one. The AI pulls the data, checks whether revenue distributions are set up properly, and flags anything that looks wrong. No one has to log into Productive and click through dashboards to find problems.
Batch operations have saved us the most time overall. Setting up a new project with 15 or 20 tasks used to mean a lot of repetitive form-filling. Now we describe what we need and the AI handles it: task types, priorities, dependencies, the lot.
What it doesn't do
Honesty up front about the gaps.
No time tracking. You can't log time entries through the server. Productive's API supports it, but we haven't built it in. Our team logs time directly in Productive and frankly, we didn't want AI-generated time entries muddying the data.
No deal or sales pipeline management. The server covers budgets (the financial side) but not Productive's CRM or deal pipeline features.
No reporting or dashboards. Your AI can pull raw data and do ad-hoc analysis, but it won't generate Productive's built-in reports or access saved configurations.
No invoicing. Not covered.
Custom fields need a one-time setup. Productive uses custom fields for things like task type and priority, and the IDs are unique to each organisation. We've included an auto-setup script (npm run setup) that connects to your account and discovers these for you. Usually it just works. If your fields have unusual names you might need to tweak the config file, but you won't need to touch source code.
Rate limits apply. Productive allows 100 API requests per 10 seconds. The server handles this with built-in rate limiting. Very large batch operations might pause briefly, but it's barely noticeable in practice.
It's read-write, so go steady. This isn't a read-only dashboard. Your AI can create, update, and delete things in your Productive account. Start with read operations until you're comfortable. Then let it loose.
Getting started
You'll need Node.js 18+, a Productive.io account with API access, and an AI assistant that supports MCP (Claude Desktop, Claude Code, or whichever LLM you prefer).
Five minutes, roughly:
- Either download the files here or clone the repository and run
npm install - Add your Productive API token and organisation ID to a
.envfile - Run
npm run setupto auto-discover your custom fields and workflow statuses - Run
npm run build - Point your AI assistant at the built server in your MCP configuration
Full instructions (including how to find your custom field IDs) are in the README.
What it's built with
TypeScript, strict mode. The official MCP SDK for the protocol layer, Zod for input validation, Axios for API calls. Nothing exotic. Schemas validate what comes in, tool functions do the work, formatting utilities spit out Markdown or JSON.
It runs as a stdio-based server. Your AI assistant starts it automatically and talks to it through standard input/output. No ports. No web server. Nothing to configure beyond the initial setup.
Open source
MIT licence. Use it as-is, fork it, extend it. Whatever works.
If you run your projects through Productive.io and you've been looking for a way to bring AI into the workflow, give it a go. We've found it genuinely useful and we reckon you will too.