← All lab projects

Lab · Project

Productive data as a conversation: the MCP connector

Two weeks · from documented time sink to production

Starting point: the answers sit in the system, nobody can reach them

With every new client, Productive accumulated what eventually nobody could oversee: budgets per client, open tickets, clients waiting for a reply, follow-ups coming due, logged hours, upsell opportunities. Every one of these questions had an answer – behind its own click path through reports and views. Together they made a time sink that came back every single day.

So the first step was not code. I documented and analyzed the time sink: which questions does the team actually ask, how often, and how many clicks does each answer cost? The tool grew out of that list.

Concept: build instead of upgrading the plan

Productive offers its own MCP server – but only in the Ultimate plan at $33 per seat and month. The team worked on the Essential plan at $10 (both billed annually). For ten people, the upgrade would have cost $230 for MCP access alone, every month.

I built the connector instead of buying the upgrade. And a custom connector does something a standard one cannot: it knows our questions.

Architecture

The connector is a standalone MCP server on a cloud VPS: TypeScript, nine strictly read-only tools against Productive’s JSON:API, secured by its own OAuth provider. Every team member signs in with an individual login and sees only their own clients. Claude or any other LLM connects via MCP; questions are asked in plain language.

Read-only means the connector writes nothing back to Productive. Hours, tickets, and budgets are maintained there, not here. It all runs on our own infrastructure, with our own service access. No upgrade, no license, no vendor in between.

What the team asks the connector

The value depends on the role. In sales, the most frequent question is: “What is this client struggling with?” The answer has been sitting in the tickets all along. If a client has been delaying implementation for months because nobody in-house knows how to get the changes onto their website, that is not a project problem – it is an upsell. Offer IT services, remove the blocker.

In project management, the connector replaces the daily click path with four questions: Which clients have written and are waiting for a reply, and since when? Who needs a follow-up because they have gone quiet? What are my tasks this week across all clients? And how many hours were logged per client this month? The monthly report comes out of the same place – tied to specific tickets, as an audit: what is actually finished, what is not.

And for everyone who works with clients: a daily briefing. One question in the morning about what needs to happen for which client today.

Rough edges: three places where it got stuck

The first access pulled every client of the agency at once. Each answer turned into a data soup; tokens and context window burned on clients that did not concern the person asking. The fix: individual access scoped to one’s own client list – role separation at the data level, defining which data each team member may retrieve at all.

Productive does not mark who is a client and who is a colleague. The fields external, employee, and person_type are empty for all 148 people in the system. The connector derives the distinction from company affiliation instead.

Comments cannot be filtered by date through the API – the request bounces with status 422. So the connector pages from newest to oldest and cuts the time window itself. That is exactly where the question comes from that nobody could answer before: Where has a client been waiting on us since yesterday?

From internal tool to product

From analyzing the time sink to running in production took two weeks, testing included. Since then, the connector has been running free of charge as an internal tool for the agency team.

It has since become a product, open to other agencies working with Productive.

It started with a documented list of questions that cost clicks every day. Count your own: which question do you answer by hand every week, even though the data has long been in the system? Write to me.