Bring Your Own AI
Connect Claude, Cursor, LM Studio, Claude Desktop, and any MCP-compatible AI agent to your PrimeTask workspace - locally, on your terms.
PrimeTask doesn't subscribe you to an AI model. It doesn't lock you into one vendor. Instead, it speaks MCP - the Model Context Protocol - so the AI tool you already use can read and interact with your workspace directly. Claude Code, Cursor, LM Studio, Claude Desktop, and any other MCP-compatible client - you pick the brain; PrimeTask supplies the hands.
The server runs on your computer. Your data stays on your computer. You choose what the agent can see, what it can change, which Spaces it can touch, and which tools it can call. Every command is written to an audit log you can review.
For the Integrations category hub, see Integrations Overview. For what the agent can do specifically on PrimeFlow canvases, see PrimeFlow and MCP.
Local only
The MCP server runs on your machine. PrimeTask never sends your data to any server. The AI agent you connect may send data to its own cloud provider (Anthropic, OpenAI, and so on) - only connect agents you trust.
Agents work on the active Space
Tools operate on the currently active Space. Tell the agent to switch Spaces first, or switch in the UI. Space Access settings control which Spaces the agent is allowed to touch.
What you can do
Connect any MCP-compatible AI tool
to PrimeTask.
Let the agent read your workspace
tasks, projects, notes, CRM, canvases, focus sessions, time entries, and more.
Let the agent make changes
create tasks, build projects, run focus sessions, update CRM, build canvases - or keep it read-only.
Scope access per Space
the agent sees only the Spaces you allow.
Choose which tools are exposed
with preset profiles or per-category toggles, so small models aren't overwhelmed.
Review everything
in the audit log.
Disconnect at any time
by toggling the server off.
Quick Start
1. Enable the server
Step 1
Open Settings → External Integrations.
Step 2
Enable the MCP Server.
A consent explainer appears
enable after reading it.
Step 4
PrimeTask generates your API key automatically.
2. Connect Your AI Tool
Streamable HTTP (recommended):
Use the Streamable HTTP option in Quick Setup to copy the config:
{
"primetask": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:24842/mcp",
"--header",
"Authorization: Bearer pt_mcp_your_key_here"
]
}
}This uses mcp-remote as a bridge between the AI tool and PrimeTask's HTTP server. It handles authentication automatically.
Paste into your AI tool's MCP config file:
- Claude Code:
~/.claude.jsonunderprojects → your-project → mcpServers - Cursor:
~/.cursor/mcp.json - LM Studio: MCP server settings (JSON config)
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.jsonundermcpServers
mcp-remote is installed automatically via npx on first use. Requires Node.js.
Stdio (alternative):
Use the Stdio option to copy the config. The AI tool launches PrimeTask as a separate process:
{
"primetask": {
"type": "stdio",
"command": "/Applications/PrimeTask.app/Contents/MacOS/PrimeTask",
"args": ["--mcp-server"]
}
}3. Start Using
Once connected, your AI tool can access your tasks, projects, CRM, and more. Try asking:
- "What are my overdue tasks?"
- "Create a task called Review proposal with high priority"
- "Start a 30-minute focus session on Write documentation"
- "Show me the status of the Website Redesign project"
Security & Permissions
Authentication
Every HTTP request requires a Bearer token. The token is auto-generated when you first enable MCP and shown in Settings - copy it along with the config.
Regenerate the token from Settings when you want to rotate it. Update your AI tool's config with the new token afterwards.
Read / Write Permissions
- Read (on by default) - list, search, and view tasks, projects, CRM data
- Write (off by default) - create, update, delete, complete tasks and other data
Enable write permissions in Settings → MCP Server → Write toggle.
Space Access
Control which spaces AI agents can access:
- All spaces - agent can access any space
- Selected only - choose specific spaces from the checkbox list
Requests targeting a space not in the allowed list are rejected with a clear error.
Audit Logging
Every MCP tool call is logged. View the audit log in Settings → External Integrations → Audit Log. Each entry shows the tool name, parameters, timestamp, and whether it succeeded or was blocked.
Sensitive Field Filtering
PrimeTask automatically strips sensitive fields from all MCP responses: PIN hashes, encryption keys, passwords, secrets, and tokens are never exposed.
Feature Gating
Some tools require a Pro licence.
Tool Catalog & Profiles
PrimeTask exposes up to 100+ tools, which can be a lot for AI clients with limited context windows. The Tool Catalog in Settings lets you control which tools are registered, using either preset profiles or per-category toggles.
Why profiles exist
Some AI tools (like LM Studio or smaller local models) perform better with a focused set of tools rather than the full catalog. Profiles let you expose only the tools relevant to your workflow, reducing noise and improving tool selection accuracy.
Preset Profiles
Select a profile card to instantly configure the tool catalog:
| Profile | What's included | Best for |
|---|---|---|
| Full | Every tool available on your plan | Claude Code, Cursor, Claude Desktop - clients that handle large tool sets well |
| Core Tasks | Tasks, projects, notes, goals, time, focus, quick notes, reminders, utility | General productivity - no CRM, no canvas, no dependencies |
| Projects | Tasks, projects, notes, goals, milestones, dependencies, team, time, reminders, utility | Project planning workflows |
| PrimeFlow | Tasks, projects, PrimeFlow canvas tools, utility | Canvas-focused work with minimal surrounding context |
| CRM | Projects, CRM (contacts, companies, activities, tasks), team, reminders, utility | Sales and relationship management (Pro) |
| Custom Fields | Tasks, projects, custom field tools, utility | Field management workflows (Pro) |
| Minimal | Tasks, checklist, utility | Lightest catalog for constrained clients |
Profiles marked (Pro) are part of the Pro tier - see License Settings to upgrade.
Per-Category Customisation
Click "Customise categories" below the profiles to expand individual category toggles. Each toggle enables or disables a group of related tools (e.g. "Notes", "Focus", "Time"). Toggling any category manually switches the profile to Full (custom configuration).
Some categories (CRM, Custom Fields, Dependencies, Team) are part of the Pro tier.
Applying changes
- Streamable HTTP: Profile changes take effect on the next client reconnect - no app restart needed.
- Stdio: The tool list is set at process launch. Changing profiles requires the AI tool to reconnect.
Tools Reference (100+ tools)
Spaces (4 tools)
| Tool | Description |
|---|---|
list_spaces | List all spaces |
get_active_space | Get the currently active space |
switch_space | Switch the active space |
list_space_members | List members of the active space (for collaborative assignment) |
Tasks (9 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_tasks | List and filter tasks | project_id, status_id, priority_id, due_before, due_after, tags[], search, limit |
get_task | Get task with subtasks and checklist | task_id |
get_today | Today's tasks and overdue | - |
search_tasks | Full-text search | query, limit |
create_task | Create a new task | name*, project_id, status_id, priority_id, due_date, start_date, duration, tags[], description, assignees[], checklist[] |
update_task | Update task fields | task_id*, name, status_id, priority_id, due_date, start_date, duration, description, tags[], assignees[], completion_percentage, project_id, milestone_id |
set_task_recurrence | Set or remove recurring schedule | task_id*, frequency (daily/weekly/monthly/yearly/custom), interval, unit, days_of_week[], end_date |
complete_task | Mark task as complete | task_id* |
delete_task | Delete a task. For recurring tasks, the optional intent parameter controls whether only this occurrence is deleted or the entire recurring series is ended. | task_id*, intent (occurrence_only or this_and_all_following) |
Name resolution: project_id accepts a project name or UUID. assignees accepts display names or member IDs.
Subtasks & Dependencies (4 tools)
| Tool | Description |
|---|---|
create_subtask | Create a subtask under a parent task |
list_subtasks | List subtasks for a task |
add_dependency | Add a prerequisite dependency (accepts task name or ID) |
remove_dependency | Remove a prerequisite dependency (accepts task name or ID) |
Checklist (3 tools)
| Tool | Description | Key Parameters |
|---|---|---|
update_checklist_item | Complete, uncomplete, or rename a checklist item | task_id* (name or ID), item* (text or index), completed, text |
add_checklist_item | Add a new item to a task's checklist | task_id* (name or ID), text* |
remove_checklist_item | Remove an item from a task's checklist | task_id* (name or ID), item* (text or index) |
Projects (8 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_projects | List projects (filter by status) | status |
get_project | Get project details with task count, progress, and health | project_id* |
create_project | Create a new project | name*, color, description, status, deadline, start_date, crm_enabled, crm_mode |
update_project | Update project fields | project_id* (name or ID), name, description, color, status, deadline, start_date, crm_enabled, crm_mode |
archive_project | Archive a project | project_id* (name or ID) |
unarchive_project | Unarchive a project | project_id* (name or ID) |
get_project_stats | Comprehensive progress breakdown with weighted metrics | project_id* (name or ID) |
get_project_health | Health status, trend, recommendations, overdue count, next milestone | project_id* (name or ID) |
get_project_stats returns: weighted progress across tasks/milestones/goals/CRM, per-bucket breakdown (progress, count, completed), overdue count, status/priority distribution, and project timeline.
get_project_health returns: health status (on_track/at_risk/behind/critical), progress vs expected, trend (improving/stable/declining), overdue task count, next milestone with progress, and up to 5 actionable recommendations. Same calculation as the in-app Health Assistant.
Notes (6 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_notes | List notes for a project | project_id* |
get_note | Get full note content | note_id* |
create_note | Create a project note (HTML supported) | project_id*, content*, status |
update_note | Update note content/status | note_id*, content, status, pinned |
convert_project_note_to_task | Convert a note to a task - uses content as description, links to same project | note_id*, task_name, priority, delete_note (default: true) |
delete_note | Delete a note | note_id* |
Goals & Milestones (6 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_goals | List goals for a project | project_id* |
create_goal | Create a goal with key results | project_id* (name or ID), name*, description, type (outcome/output/process), priority (low/medium/high/critical), linked_milestone_ids[], key_results[] (name, metric, start_value, target) |
update_goal | Update goal fields | goal_id*, name, description, type, priority, status (not_started/on_track/at_risk/behind/completed), progress, linked_milestone_ids[] |
list_milestones | List milestones for a project | project_id* |
create_milestone | Create a milestone | project_id* (name or ID), name*, description, type (phase/deliverable/decision/external/release), priority, due_date, linked_goal_ids[] |
update_milestone | Update milestone fields | milestone_id*, name, description, type, priority, due_date, completed, linked_goal_ids[] |
Linking tasks to milestones: Use update_task with milestone_id to link a task to a milestone (or null to unlink).
Project Team (3 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_team_members | List team members | project_id* (name or ID) |
add_team_member | Add a member to the team | project_id*, name*, email, role (owner/admin/member/viewer), contact_id, company_id |
remove_team_member | Remove a member | project_id*, member_id* (name or ID) |
Note: Linking CRM contacts/companies as team members requires Pro. Manual members work on Standard.
CRM - Contacts (5 tools) - Pro
| Tool | Description |
|---|---|
list_contacts | List/search contacts |
get_contact | Get contact details with linked tasks |
create_contact | Create contact (supports isolated CRM via project_id) |
update_contact | Update contact fields |
delete_contact | Delete a contact |
Name resolution: company_id accepts company name or UUID. project_id for isolated CRM accepts project name or UUID.
CRM - Companies (5 tools) - Pro
| Tool | Description |
|---|---|
list_companies | List/search companies |
get_company | Get company details |
create_company | Create company (supports isolated CRM via project_id) |
update_company | Update company fields |
delete_company | Delete a company |
CRM - Tasks (4 tools) - Pro
| Tool | Description |
|---|---|
list_crm_tasks | List CRM tasks |
create_crm_task | Create a CRM task |
update_crm_task | Update a CRM task |
complete_crm_task | Complete a CRM task |
CRM - Activities (3 tools) - Pro
| Tool | Description |
|---|---|
list_activities | List CRM activities |
log_activity | Log a call, email, meeting, or note |
delete_activity | Delete an activity |
CRM - Message Templates (7 tools) - Pro
Reusable LinkedIn outreach templates with placeholders ({first_name}, {company}, fallbacks like {first_name|there}, namespaced like {company.industry}). The agent can build your library, personalise messages for any contact, and optionally log the activity on the contact's timeline so success rates stay accurate.
| Tool | Description |
|---|---|
list_crm_templates | List or search templates, filter by type or by project's isolated CRM |
get_crm_template | Read one template's full content and usage stats |
create_crm_template | Create a new template (supports isolated CRM via project_id) |
update_crm_template | Edit name, type, content, or tags |
delete_crm_template | Remove a template |
render_crm_template | Preview a template against a contact, no recording (returns rendered text + which placeholders are missing) |
copy_crm_personalised_template | Render against a contact, record the usage, and optionally log the activity on the contact's timeline |
Try these prompts
"Write me three follow-up templates for SaaS founders, using the contact's first name and company. Save them in my library." "Show me a personalised version of my 'Quick check in' template for Sarah Lee at Acme. Don't send it, just show me what it would look like." "Send my 'Connection request - value-led' template to Sarah Lee, log it on her timeline, and include 'their recent funding round' as the specific opening line." "Which of my follow-up templates has the highest reply rate? Suggest two improvements to the lowest-performing one."
Tags, Statuses, Priorities (3 tools)
| Tool | Description |
|---|---|
list_tags | All tags in the active space |
list_statuses | All status configurations |
list_priorities | All priority configurations |
Time Tracking (4 tools)
| Tool | Description |
|---|---|
start_timer | Start a timer on a task |
stop_timer | Stop the active timer (optional note) |
get_active_timer | Get the currently running timer |
list_time_entries | List time entries (filter by task, project, date range) |
Focus Mode (4 tools)
| Tool | Description |
|---|---|
start_focus | Start a focus session on a task (name or ID, default 25 min) |
stop_focus | End the current focus session |
take_break | Toggle break - if active, starts a break; if on break, resumes focus |
get_focus_status | Get current session: task, elapsed time, breaks, status |
PrimeFlow (11 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_canvases | List all canvases | include_archived |
get_canvas | Get canvas with all nodes and edges | canvas_id* |
create_canvas | Create an empty canvas | name* |
rename_canvas | Rename a canvas | canvas_id*, name* |
add_node | Add a node to a canvas | canvas_id*, type*, position* {x,y}, data* |
update_node | Update a node's data or position | canvas_id*, node_id*, position, data (partial merge) |
remove_node | Remove a node | canvas_id*, node_id* |
add_edge | Connect two nodes | canvas_id*, source_node_id*, target_node_id*, label |
remove_edge | Remove a connection | canvas_id*, edge_id* |
bulk_canvas_update | Add/remove multiple nodes and edges in one atomic operation | canvas_id*, nodes[], edges[], remove_nodes[], remove_edges[] |
delete_canvas | Delete a canvas | canvas_id* |
bulk_canvas_update is the recommended way to build complex canvases. Use ref on nodes and "ref:<refName>" in edge source/target to reference nodes created in the same batch - no need to know IDs ahead of time. Mind map nodes get default colors automatically.
27 supported node types:
| Category | Types |
|---|---|
| Mind Map | centralTopic, mainTopic, subTopic, floatingTopic |
| Project | project, projectGoal, projectMilestone, projectNote |
| Tasks/CRM | task, checklist, contact, company, activity |
| Stickers | emojiSticker, textSticker, stickyNote |
| Media | youtube, twitter, image, link, pdf, file, folder |
| Structure | group, quickNotes, portal, crossSpacePortal |
| Advanced | documentation, thirdPartyApp, mermaid |
Node data examples:
Documentation node:
{"type": "documentation", "data": {"title": "API Docs", "content": "<h2>Auth</h2><p>Use Bearer tokens</p>", "nodeType": "documentation"}}Mermaid diagram from text:
{"type": "mermaid", "data": {"label": "User Flow", "code": "graph TD
A[Login] --> B{Auth?}
B -->|Yes| C[Dashboard]", "nodeType": "mermaid"}}Portal (link to another canvas):
{"type": "portal", "data": {"label": "Backend Design", "targetCanvasId": "canvas-id", "targetCanvasName": "Backend", "nodeType": "portal"}}Mind map node:
{"type": "centralTopic", "data": {"label": "Project Overview"}}The agent can build interconnected canvas systems - create multiple canvases, add mind maps, documentation, diagrams, and link them with portal nodes and edges.
Custom Fields (11 tools) - Pro
Field Values:
| Tool | Description | Key Parameters |
|---|---|---|
list_custom_fields | List field definitions for the space | - |
get_field_values | Get custom field values for an entity | entity_type* (task/project/contact/company), entity_id* |
set_field_value | Set a custom field value | entity_type*, entity_id*, field_id*, value* |
clear_field_value | Clear a custom field value | entity_type*, entity_id*, field_id* |
Field Definitions:
| Tool | Description | Key Parameters |
|---|---|---|
create_custom_field | Create a field definition | name*, type* (14 types), description, required, entity_scope[], options[], currency_code, currency_role, relationship config with rollup |
update_custom_field | Update a field definition | field_id*, name, description, required, show_in_card, show_in_list |
delete_custom_field | Delete a field and all its values | field_id* |
Field Tabs (per-project):
| Tool | Description | Key Parameters |
|---|---|---|
list_field_tabs | List tabs for a project | project_id* (name or ID) |
create_field_tab | Create a tab to organize fields | project_id*, name*, color, field_ids[] |
update_field_tab | Rename, recolor, reassign fields | tab_id*, name, color, field_ids[] |
delete_field_tab | Remove a tab | tab_id* |
Supported field types: text, textarea, number, currency, date, datetime, dropdown, multi_select, checkbox, rating, progress, url, email, phone, relationship.
Relationship fields support bidirectional links and rollup aggregations (sum, avg, min, max, count) across linked entities.
Financial setup example:
Step 1
create_custom_field with type: "currency", currency_code: "USD", currency_role: "budget"
Step 2
create_custom_field with type: "currency", currency_role: "expense"
Step 3
create_field_tab on the project with name "Finance" containing both fields
Step 4
set_field_value to set budget amount on the project
Quick Notes (4 tools)
| Tool | Description | Key Parameters |
|---|---|---|
list_quick_notes | List quick notes in the active space | - |
add_quick_note | Add a quick note - appears in dashboard widget | text* |
convert_note_to_task | Convert a quick note to a task (tagged "QuickNote") | note_id* (ID or text) |
delete_quick_note | Delete a quick note | note_id* (ID or text) |
Reminders (6 tools)
| Tool | Description | Key Parameters |
|---|---|---|
set_reminder | Add a reminder to a task. Resolves the right kind (before-due, at-time-on-due-day, or absolute) from the spec and the task's due date automatically. | task_id* (name or ID), spec* |
list_reminders | List reminders on a task with their computed fire time and a fired/not-fired indicator | task_id* (name or ID) |
update_reminder | Re-anchor an existing reminder to a new spec. Preserves the reminder's id and original author. | task_id*, reminder_id*, spec* |
delete_reminder | Remove a reminder from a task | task_id*, reminder_id* |
snooze_reminder | Push a reminder forward. Replaces the original with a fresh absolute reminder. Defaults to 15 minutes if spec is omitted. | task_id*, reminder_id*, spec |
list_upcoming_reminders | Scan all tasks for reminders firing in a time window. Returns task name, fire time, and a plain-language label. Sorted by fire time. | window (today / this-week / next-24h), space_id |
spec formats: relative offsets (5m, 30m, 1h, 2h, 1d, 1w), clock times (9am, 9:30am, 14:30, 5pm), or full ISO timestamps (2026-05-20T14:30:00.000Z). The agent doesn't need to know whether the task has a due date. The handler picks the right anchoring automatically. On a task with no due date, a relative offset like 30m means "30 minutes from now".
Reminders in shared spaces are personal. When the agent sets a reminder on your behalf, it's stamped with your identity, so only your devices fire. Teammates in the same space won't be paged.
Utility (4 tools)
| Tool | Description |
|---|---|
get_dashboard_stats | Overview stats: total, completed, overdue, in progress |
get_system_info | App version, tier, active space, available features |
search_docs | Search PrimeTask documentation - returns matching articles with summaries |
get_doc | Get a specific documentation article by slug |
Documentation search lets AI agents answer questions about PrimeTask features using the built-in docs. Ask your agent "How do I use Quick Add?" or "Show me the docs for recurring tasks" - it searches PrimeDocs and returns the relevant article.
Prompts (5 templates)
MCP prompts are pre-built templates that give AI agents structured context from your workspace. The agent calls prompts/get and PrimeTask gathers the relevant data automatically.
| Prompt | Description | Parameters |
|---|---|---|
daily_standup | Yesterday's completed, today's planned, blockers | - |
weekly_review | Progress by project, completed tasks, upcoming deadlines | - |
project_status | Project health, milestones, goals, blockers | project (name or ID) |
crm_summary | Recent activities, follow-ups, pipeline (Pro) | - |
overdue_triage | Overdue tasks with suggested actions | - |
Example Usage
Ask your AI agent:
- "Use the daily_standup prompt to generate my standup"
- "Run project_status for Website Redesign"
- "Help me triage overdue tasks"
You can also browse prompts in the Command Explorer (Settings → External Integrations → Commands → Prompts tab).
Transport Options
Streamable HTTP (recommended)
- Runs inside the PrimeTask app - no separate process needed
- Multiple AI tools connect simultaneously
- Auto-starts when MCP is enabled
- Port:
24842(fixed, localhost only) - Bearer token authentication via
mcp-remotebridge - Uses
npx mcp-remoteto bridge between AI tools and the HTTP server
Stdio
- AI tool launches PrimeTask as a separate process (
--mcp-server) - One client per process
- No authentication needed (local pipe)
- Good for CLI-based tools
Examples
Create a task with a checklist
AI: "Create a task called 'Sprint Planning' with high priority in the API project,
with a checklist: review backlog, assign stories, estimate points"The agent calls create_task with:
{
"name": "Sprint Planning",
"priority_id": "high",
"project_id": "API Project",
"checklist": [
{"text": "Review backlog"},
{"text": "Assign stories"},
{"text": "Estimate points"}
]
}Start a focus session
AI: "Start a 45-minute focus session on the Design Review task"The agent calls start_focus with:
{
"task_id": "Design Review",
"duration": 45
}Add a task dependency
AI: "Make 'Write tests' depend on 'Implement API'"The agent calls add_dependency with:
{
"task_id": "Write tests",
"prerequisite_id": "Implement API"
}Set a reminder
AI: "Remind me about the John Doe call in 30 minutes"The agent calls set_reminder with:
{
"task_id": "John Doe call",
"spec": "30m"
}Log a CRM activity Pro
AI: "Log a 30-minute call with John Smith about the Q2 proposal"The agent calls log_activity with:
{
"type": "call",
"contact_id": "John Smith",
"subject": "Q2 proposal discussion",
"duration": 30
}Troubleshooting
"MCP server disabled"
Enable the MCP Server in Settings → External Integrations.
"Invalid API key"
Copy the current API key from Settings → External Integrations → MCP Server and paste it into your AI tool's config as the Bearer token.
"Write operations not allowed"
Turn on the Write permission in Settings → External Integrations → MCP Server.
"Space access denied"
The active Space isn't in your allowed list. Open Settings → External Integrations → MCP Server → Space Access and add the Space.
"Feature requires PrimeTask Pro"
CRM and Custom Fields tools require Pro. Tasks, projects, focus mode, and time tracking work on every license.
"Needs authentication" error in Claude Code
Use the Streamable HTTP config with mcp-remote - it handles auth correctly. The direct type: "http" format triggers OAuth, which PrimeTask doesn't use.
Connection fails in Claude Code
Step 1
Make sure PrimeTask is running with MCP enabled.
Step 2
Verify mcp-remote is available: npx mcp-remote --help.
Step 3
Check the API key in your config matches the one in PrimeTask Settings.
Confirm PrimeTask is the source of truth
if you regenerated the key, update the client config.
Tools not showing up
Restart your AI tool after adding or changing the MCP config. Tools are discovered at session start.
Claude Desktop won't connect
If Claude Desktop (or another MCP client) can't reach PrimeTask, work through this once, in order:
Step 1
In PrimeTask, open Settings → External Integrations and confirm the MCP Server is on.
Step 2
If you want the agent to create or change things, not just read, turn on the Write permission in the same place. See Read / Write Permissions above.
Step 3
Make sure the Space you want the agent to work in is allowed under Space Access, and switch to it - the agent works on the active Space.
Step 4
Pick a Tool Catalog profile if you haven't, so the agent sees the tools you expect.
Step 5
Copy the current API key from Settings → External Integrations → MCP Server.
Step 6
In your AI tool's config (for Claude Desktop, claude_desktop_config.json under mcpServers), paste the key into the Authorization: Bearer header exactly as shown in Connect Your AI Tool above. The connection uses port 24842.
Save the config and **fully quit and reopen** your AI tool
most clients only read their MCP config at startup.
Step 8
Confirm it connected: PrimeTask shows the MCP Server as on, and your AI tool lists the PrimeTask connector as connected. Some tools show this under a developer or connectors view.
Smaller tool set for fussy clients
If your AI tool connects but behaves erratically, switch to a smaller Tool Catalog profile such as Core Tasks, Projects, or Minimal. See Tool Catalog & Profiles above.
It worked before, and stopped after an update
Updating your AI tool can drop the PrimeTask connection or reset where it looks for its config. If task creation suddenly stops after you update Claude Desktop or another client:
Restart the AI tool first
that alone often restores the connection.
Step 2
If it's still failing, reopen the AI tool's config and confirm the PrimeTask entry and the API key are still there and unchanged.
Step 3
As a reset, toggle the MCP Server off and back on in PrimeTask, then restart the AI tool.
After you regenerate the API key
Regenerating your key replaces it immediately, and the old key stops working right away. Any AI tool still using the old key will fail until you update it:
Step 1
Copy the new key from Settings → External Integrations → MCP Server.
Step 2
Paste it into your AI tool's config in place of the old one.
Step 3
Fully restart the AI tool so it picks up the new key.
Regenerating can't be undone
A new key replaces the old one for good, and every connected tool using the old key stops working until you update each one. PrimeTask asks you to confirm first, so you won't trigger it by accident.
First request fails, then a retry works
If the first thing you ask fails but the same request works on a second try - or the connection seems to drop part-way through a session - that's usually the AI tool re-establishing its link to PrimeTask, most often right at the start of a session. Nothing in PrimeTask is lost. If it keeps happening:
Step 1
Restart the AI tool so it connects fresh.
Step 2
Make sure PrimeTask is open and the MCP Server is on before you start the session.
Step 3
For a scheduled or automated run, give the connection a moment to settle before the first request.
Things worth knowing
Your data stays on your computer
PrimeTask's MCP server runs locally and never sends data to any server. When you connect an AI agent, that agent's cloud model may receive whatever it sends to its provider - that's the agent's business, not PrimeTask's. Read-only mode is the safe default if you're not sure.
Start Read-only, upgrade when ready
Out of the box the server is read-only. Most useful patterns - standups, reviews, triage, research - work in read-only. Turn Write on when you want the agent to actually make changes.
Try the built-in prompts first
The five prompt templates (daily_standup, weekly_review, project_status, crm_summary, overdue_triage) are the fastest way to get useful output from a new agent connection. They gather the right data automatically.
Profiles help small models
A 7B local model doesn't need to see 100+ tools. Pick a smaller profile (Core Tasks, Projects, Minimal) to improve tool-selection accuracy on constrained clients. Claude Code and Claude Desktop handle Full without issue.
Audit log is your friend
Every tool call is logged. Review the audit log when you want to know exactly what the agent did, when, and with what parameters.
Disconnect any time
Toggle the server off in Settings and the agent can't reach PrimeTask. No other cleanup needed.
Common questions
"Which AI models can use this?"
Any MCP-compatible client. Today that includes Claude Code, Claude Desktop, Cursor, LM Studio, and more. Support for MCP is spreading quickly - if your AI tool adds MCP, it can connect.
"Do I need Pro?"
No for the server itself. Some tools require Pro because they touch Pro features (CRM, Custom Fields, Dependencies). Everything else works on every PrimeTask license.
"Can I use this with a local model?"
Yes - LM Studio is an example. Local models keep your data entirely on your machine; no cloud involved. Pair a local model with a smaller profile (Core Tasks or Minimal) for best results.
"Can I connect more than one agent at once?"
Yes - with Streamable HTTP, multiple AI tools connect simultaneously. Stdio is one client per process.
"How do I know what the agent did?"
Open the audit log in Settings → External Integrations → Audit Log. Every tool call is there with timestamp, parameters, and outcome.
"Does connecting an agent count against my tier?"
No. The MCP server itself doesn't consume anything. Your AI provider may charge for its own usage - that's between you and them.
Where to go next
| If you want to… | Read this |
|---|---|
| See what AI can do with PrimeFlow canvases | PrimeFlow and MCP |
| Configure MCP toggles and audit log | External Integrations Settings |
| Use deep links (without an AI agent) | External Integrations |
| Understand every integration PrimeTask offers | Integrations Overview |
| Upgrade for CRM and Custom Fields tools | License Settings |
