productive-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PRODUCTIVE_MCP_TOKEN | No | Your Productive.io API token | |
| PRODUCTIVE_MCP_ORG_ID | No | Your Productive.io organization ID | |
| PRODUCTIVE_MCP_PERSON_ID | No | Your Productive.io person ID |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| productive_list_projectsA | List all active Productive.io projects from local cache. Returns id, name, number, and company for each project. Cache refreshes automatically every hour, or call productive_refresh_cache to force it. |
| productive_find_projectA | Fuzzy-search projects by name or number. Args: query: Partial name or number (e.g. "Acme", "1099"). limit: Max matches to return (default 5). |
| productive_list_servicesA | List services (billable activity types) on a given project. Args: project: Project name (fuzzy) or numeric project id. |
| productive_log_timeA | Create a time entry on a Productive.io project. Args: project: Project name (fuzzy match, e.g. "1099 Acme") or numeric id. hours: Hours worked (float, e.g. 2.5). Converted to minutes internally. note: Optional description of the work. date: ISO date (YYYY-MM-DD). Defaults to today. service_hint: Optional service name/id if the project has multiple services. Once chosen, remembered as the project default. |
| productive_list_time_entriesA | List time entries, newest first. Args: after: ISO date (YYYY-MM-DD) — include entries on/after this date. before: ISO date (YYYY-MM-DD) — include entries on/before this date. project: Project name or id to filter by. mine_only: If True (default), only return entries for the authenticated user. |
| productive_update_time_entryA | Edit a time entry. Only provide fields you want to change. Args: entry_id: Time entry ID (from productive_list_time_entries). hours: New hours value. date: New ISO date (YYYY-MM-DD). note: New note text. service_hint: New service name or id. |
| productive_delete_time_entryB | Permanently delete a time entry. Args: entry_id: Time entry ID. |
| productive_refresh_cacheA | Force-refresh the projects/services/deals cache from Productive. Call after creating new projects or services in Productive so they're visible to find_project. |
| productive_set_default_serviceB | Explicitly set (or override) the remembered default service for a project. Args: project: Project name or id. service: Service name or id. Must belong to the project. |
| productive_find_personA | Fuzzy-search people in the organisation by name or email. Args: query: Partial name or email (e.g. "Alice", "alice@example.com"). limit: Max matches to return (default 5). |
| productive_get_time_reportA | Get a categorised hours summary (worked, client, internal, holidays). Args: period: Symbolic period — "this_month", "last_month", "this_week", "last_week". Affected by PRODUCTIVE_BILLING_CUTOFF_DAY. after: ISO date (YYYY-MM-DD). Ignored if period is set. before: ISO date (YYYY-MM-DD). Ignored if period is set. person: Person name, email, id, or "me" (default: "me"). project: Optional project name or id to scope the report. |
| productive_get_employee_hoursA | Get a named employee's hours summary for a period. Args: person: Person name, email, or "me" (fuzzy matched). period: Symbolic period — "this_month", "last_month", "this_week", "last_week". after: ISO date (YYYY-MM-DD). Ignored if period is set. before: ISO date (YYYY-MM-DD). Ignored if period is set. |
| productive_my_projectsA | List active projects where you have logged time in the last 30 days. Returns project id, name, number, and company for each. |
| productive_my_briefingA | Get a summary of your week: projects touched, hours logged, recent entries. Args: period: Symbolic period — defaults to "this_week". Also accepts "last_week", "this_month", "last_month". |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cameronfairbairn/productive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server