Planfix MCP Server
Description
# Planfix MCP Server This MCP server provides integration with the Planfix API, allowing Model Context Protocol (MCP) clients to interact with Planfix CRM and task management system. ## Features - Lead management (create, search, convert to tasks) - Contact and company…
About
# Planfix MCP Server This MCP server provides integration with the Planfix API, allowing Model Context Protocol (MCP) clients to interact with Planfix CRM and task management system. ## Features - Lead management (create, search, convert to tasks) - Contact and company management - Task management (create, search…
Details
- Author
- popstas
- Downloads
- 355
- Categories
- Productivity, Project Management, Other
Jump to
- Lead management (create, search, convert to tasks)
- Contact and company management
- Task management (create, search, comment)
- Report generation and management
- Uses Planfix REST API v2.0
- Authentication via Bearer token
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Planfix MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install and run with npx using the package @popstas/planfix-mcp-server. Set the required environment variables (PLANFIX_ACCOUNT, PLANFIX_TOKEN, and several custom field IDs) before launching. Example command: PLANFIX_ACCOUNT=yourcompany PLANFIX_TOKEN=your-api-token ... npx @popstas/planfix-mcp-server.
planfix_add_to_lead_task
Create or update Planfix contact, task, and comment for a lead.
planfix_create_comment
Create a comment for a task in Planfix
planfix_create_contact
Create a new contact in Planfix
planfix_create_lead_task
Create a new lead task in Planfix
planfix_create_sell_task
Create a sell task in Planfix using textual data for agency and contact
planfix_create_sell_task_ids
Create a sell task in Planfix using numeric identifiers
planfix_create_task
Create a task using textual parameters
planfix_get_child_tasks
Get all child tasks of a specific parent task in Planfix
planfix_get_report_fields
Get fields of a specific report in Planfix
planfix_reports_list
List all available reports in Planfix with their IDs and names
planfix_request
Make a generic request to the Planfix API with the specified method, path, and body. Use when swagger.json was read.
planfix_run_report
Run a Planfix report by ID and return the report data.
planfix_search_company
Search for a company in Planfix by name
planfix_search_contact
Search for a contact in Planfix by name, phone, email, or telegram. Use name in 2 languages: Russian and English.
planfix_search_directory
Search for a Planfix directory by name
planfix_search_directory_entry
Search for directory entry id by directory name and entry name
planfix_search_lead_task
Search Planfix task by user data. Use name in 2 languages: Russian and English.
planfix_search_manager
Search for a manager in Planfix by email or id
planfix_search_project
Search for a project in Planfix by name
planfix_search_task
Search for a task in Planfix by title or client ID
planfix_update_contact
Update a contact in Planfix with new data
planfix_update_lead_task
Update a lead task in Planfix
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"planfix mcp server": {
"planfix-mcp-server": {
"command": "npx",
"args": [
"@popstas/planfix-mcp-server"
]
}
}
}
}
McpServers
{
"planfix-mcp-server": {
"command": "npx",
"args": [
"@popstas/planfix-mcp-server"
]
}
}
This MCP server provides integration with the Planfix API, allowing Model Context Protocol (MCP) clients to interact with Planfix CRM and task management system.
- Lead management (create, search, convert to tasks)
- Lead searches can reuse a knownclientIdto skip contact lookups
- Contact and company management
- Task management (create, search, comment)
- Report generation and management
- Uses Planfix REST API v2.0 (API docs)
- Authentication via Bearer token
The server requires the following environment variables for Planfix API access:
- PLANFIX_ACCOUNT– Your Planfix account name (e.g.,yourcompany)
- PLANFIX_TOKEN– Planfix API token with necessary permissions
- PLANFIX_BASE_URL– (optional) Override the REST API base URL. Defaults tohttps://<PLANFIX_ACCOUNT>.planfix.com/rest/. Set this for.ruand other regional installations, e.g.https://yourcompany.planfix.ru/rest/
- PLANFIX_ACCOUNT_URL– (optional) Override the web origin used for human-facing links (task/contact/user pages). Defaults toPLANFIX_BASE_URLwithout the trailing/rest/
- PLANFIX_FIELD_ID_EMAIL– Custom field ID for email
- PLANFIX_FIELD_ID_EMAIL_ADDITIONAL– (optional,no default) Numericcustomfield ID used to store additional email addresses (multi-value). Must point at a real multi-value custom field you created on your account; the system secondary-email field id124isnota valid write target. When unset, storing additional addresses is disabled (matching by the system field still works). The Planfixsystemsecondary-email field (additionalEmailAddresses) is read-only over the REST API, so additional addresses arewrittento this custom field;matchinguses both the system field (filter type 4221) and this custom field (filter type 4101), for any email search once this is set
- PLANFIX_FIELD_ID_PHONE– Custom field ID for phone
- PLANFIX_FIELD_ID_TELEGRAM– Set any value to use the system Telegram field
- PLANFIX_FIELD_ID_TELEGRAM_CUSTOM– Custom field ID for Telegram when using the custom field
- PLANFIX_FIELD_ID_CLIENT– Custom field ID for client
- PLANFIX_FIELD_ID_MANAGER– Custom field ID for manager
- PLANFIX_FIELD_ID_AGENCY– Custom field ID for agency
- PLANFIX_FIELD_ID_LEAD_SOURCE– Custom field ID for lead source
- PLANFIX_FIELD_ID_LEAD_SOURCE_VALUE– Value ID for default lead source
- PLANFIX_FIELD_ID_PIPELINE– Custom field ID for pipeline
- PLANFIX_FIELD_ID_TAGS– Custom field ID for task tags
- Missing tag names will be added automatically to the directory
Custom fields can also be configured viaconfig.yml. The default path is./data/config.yml. Override it with the--config=/abs/path/config.ymlCLI flag or thePLANFIX_CONFIGenvironment variable. You can also specify a different Planfix account when using a custom config:
PLANFIX_CONFIG=/etc/planfix-mcp.yml PLANFIX_ACCOUNT=demo \ npx @popstas/planfix-mcp-server
proxyUrl: "http://localhost:8080" webhook: enabled: false url: "https://example.com/hook" token: "<token>" skipPlanfixApi: false leadTaskFields: - id: "456" name: "id сделки" argName: lead_id type: number contactFields: - id: "123" name: "Резидентство" argName: resident type: enum values: ["резидент", "нерезидент", "иное"] userFields: - id: "789" name: "Департамент" argName: department type: string
proxyUrlroutes all Planfix REST API calls (including tool requests) through the specified HTTP proxy.
Values fromconfig.ymloverride matching entries from the legacy environment variables when merged byid. User custom fields from this list are requested individually by theplanfix_search_managertool so their values are available in responses. Managers can be searched either byemailor by numericidthrough this tool, enabling lookups when only an identifier is available.
To create tasks from chat messages, add achatApiblock toconfig.yml:
chatApi: useChatApi: true chatApiToken: "<token>" providerId: "<id>" baseUrl: "https://<account>.planfix.com/webchat/api"
- chatApiToken– token for Planfix Chat API requests.
- providerId– identifier of the chat provider configured in Planfix.
- useChatApi– enable Chat API integration. Whentrue, task creation proceeds as:
- A chat is created via Chat API with the initial message.
- getTaskretrieves the new task'staskId.
- Subsequent updates are made through the REST API.
To post lead task payloads to a webhook before creating or updating a task, add awebhookblock toconfig.yml:
webhook: enabled: true url: "https://example.com/hook" token: "<token>" skipPlanfixApi: false
- enabled– whether to send the lead task payload to the webhook URL.
- url– webhook endpoint URL.
- token– shared secret appended to the JSON payload astoken.
- skipPlanfixApi– whentrue, the webhook response must includetaskId, and the Planfix REST API call is skipped.
npx @modelcontextprotocol/inspector node d:/projects/expertizeme/planfix-mcp-server/dist/index.js
SetLOG_LEVEL=debugto enable detailed cache logs. Logs are written todata/mcp.log.
Runnpm run cache-clearto remove all cached Planfix API responses stored indata/planfix-cache.sqlite3and delete the objects cache filedata/planfix-cache.yml.
{ "mcpServers": { "planfix": { "command": "npx", "args": [ "-y", "@popstas/planfix-mcp-server" ], "env": { "PLANFIX_ACCOUNT": "yourcompany", "PLANFIX_TOKEN": "your-api-token", "PLANFIX_FIELD_ID_EMAIL": "123", "PLANFIX_FIELD_ID_PHONE": "124", "PLANFIX_FIELD_ID_TELEGRAM": "1", "PLANFIX_FIELD_ID_TELEGRAM_CUSTOM": "125", "PLANFIX_FIELD_ID_CLIENT": "126", "PLANFIX_FIELD_ID_MANAGER": "127", "PLANFIX_FIELD_ID_AGENCY": "128", "PLANFIX_FIELD_ID_TAGS": "129", "PLANFIX_FIELD_ID_LEAD_ID": "130", "PLANFIX_LEAD_TEMPLATE_ID": "42", "PLANFIX_TASK_TITLE_TEMPLATE": "{name} - работа с клиентом" } } } }
Run the server with the required environment variables set. Example (with npx):
PLANFIX_ACCOUNT=yourcompany \ PLANFIX_TOKEN=your-api-token \ PLANFIX_FIELD_ID_EMAIL=123 \ PLANFIX_FIELD_ID_PHONE=124 \ PLANFIX_FIELD_ID_TELEGRAM=1 \ PLANFIX_FIELD_ID_TELEGRAM_CUSTOM=125 \ PLANFIX_FIELD_ID_CLIENT=126 \ PLANFIX_FIELD_ID_MANAGER=127 \ PLANFIX_FIELD_ID_AGENCY=128 \ PLANFIX_FIELD_ID_LEAD_SOURCE=129 \ PLANFIX_FIELD_ID_LEAD_SOURCE_VALUE=130 \ PLANFIX_FIELD_ID_PIPELINE=131 \ PLANFIX_FIELD_ID_LEAD_ID=132 \ PLANFIX_FIELD_ID_TAGS=133 \ PLANFIX_LEAD_TEMPLATE_ID=42 \ PLANFIX_TASK_TITLE_TEMPLATE="{name} - работа с клиентом" \ npx @popstas/planfix-mcp-server
To run the server over Server-Sent Events (SSE), use theplanfix-mcp-server-ssecommand:
PLANFIX_ACCOUNT=yourcompany \ PLANFIX_TOKEN=your-api-token \ planfix-mcp-server-sse
The Planfix client provides a convenient way to interact with the Planfix API directly from the command line.
Make sure you have the following environment variables set in your.envfile:
PLANFIX_ACCOUNT=your-account PLANFIX_TOKEN=your-api-token
npm run planfix post task/ --data '{"name":"Test Task","description":"Test Description"}'
npm run planfix post object/list --data '{"filters":[{"type":1,"operator":"equal","value":"Продажа"}]}'
- Creates a sell task using textual information about the agency and employee.
- Resolves the client, parent lead task, assignees, and agency IDs automatically based on the provided strings.
- Input fields (all strings):
- name: Task title, e.g."Продажа {{ название товара }} на pressfinity.com".
- agency: Agency/company name (optional).
- email: Employee email used to locate the Planfix contact.
- contactName/employeeName: Employee full name (optional).
- telegram: Employee telegram username (optional).
- description: Description with the list of ordered products.
- project: Project name to associate with the sell task (optional).
- Creates a sell task when Planfix identifiers are already known.
- Requires numericclientIdand optionalleadTaskId,agencyId, andassignees(user IDs).
- Acceptsname,description, and optionalprojectstring values.
npm run planfix put task/123 --data '{"name":"Updated Task Name"}'
import { planfixClient } from './lib/planfix-client'; // Get current user const user = await planfixClient.get('user/current'); // Create a new task const newTask = await planfixClient.post('task/', { name: 'New Task', description: 'Task description', // ... other task properties }); // Search for objects const objects = await planfixClient.post('object/list', { filters: [ { type: 1, operator: 'equal', value: 'Продажа' } ] });
- leadToTask: Convert a lead to a task by creating/updating contact and task
- searchLeadTask: Search for lead tasks by contact information
- searchPlanfixContact: Search contacts by name, phone, email, or Telegram. When the primaryemaildoes not match the main email field, it is also matched against the system secondary-email field (filter type 4221) and, whenPLANFIX_FIELD_ID_EMAIL_ADDITIONALis set, against that custom field (filter type 4101). Both fallbacks apply to a plainemailsearch — the custom field is where this server writes extras, so a loneemailhas to be matched against it for a contact created here to be found again. The optionaladditionalEmails: string[]argument (max 10) adds each address to those same fallbacks, plus the main email field.
- createPlanfixContact: Create a new contact in Planfix. Accepts an optionaladditionalEmails: string[]argument (max 10) that is written to the additional-emails custom field (PLANFIX_FIELD_ID_EMAIL_ADDITIONAL), deduplicated and excluding the primaryemail. (The system secondary-email field is read-only via the API.)
- updatePlanfixContact: Update existing contact information. Accepts an optionaladditionalEmails: string[]argument (max 10) that is merged into the additional-emails custom field. Planfix custom-field writes replace the whole value, so the field is rewritten with the union of what is already stored there and the genuinely new addresses; nothing is lost. Addresses already on the contact — in the custom field, in the read-only system secondary-email field, or as the primaryemail— are not added again. WithforceUpdatethe field is instead rewritten with exactly the addresses you pass, so an empty array clears it; omittingadditionalEmailsleaves the field untouched either way.
- searchPlanfixCompany: Search for companies by name
- searchPlanfixTask: Search for tasks by title, client ID and optionaltemplateId
- createSellTask: Resolve contact/agency IDs and create a sell task
- createSellTaskIds: Create a sell task when IDs are already known
- createLeadTask: Create a new lead task. WhenchatApi.useChatApiis enabled, it sends the initial message through the Chat API, gets the resultingtaskIdviagetTask, and then updates the task using the REST API. AcceptsmessageandcontactNamefields.
- addToLeadTask: Create or update a lead task and update contact details. Accepts an optionaladditionalEmails: string[]argument (max 10) that threads through contact search, creation, and update (matched against the system secondary-email field and thePLANFIX_FIELD_ID_EMAIL_ADDITIONALcustom field; written to the custom field). Whenwebhook.enabledis true, it posts the input payload to the webhook endpoint, optionally skipping the Planfix API ifskipPlanfixApiis set.
- createTask: Create a task using text fields
- createComment: Add a comment to a task
- getChildTasks: Retrieve child tasks of a parent task. Userecursiveto fetch all descendant tasks as a flat list; returned tasks includeparent_task_id.
- updateLeadTask: Update an existing lead task (only empty fields are updated unlessforceUpdateis true)
- planfix_search_directory: Search directories by name
- planfix_search_directory_entry: Search directory entry by directory name and entry name
- listReports: List all available reports
- runReport: Generate and retrieve a specific report
- Planfix API Documentation
- Model Context Protocol
- Add toolgetTaskto retrieve task details
- Add toolgetContactto retrieve contact details
- Add toolgetManagerto retrieve manager details
- Add more comprehensive error handling and logging
- Add input validation for all API endpoints
- Add rate limiting and retry logic for API calls
AI-native trade business management for Australian tradies. 11 MCP tools for leads, quotes, jobs, invoicing, financials, and client CRM.
Interact with and manage your Bitrix24 CRM instance through a powerful set of tools.
The Bitrix24 MCP Server is designed to connect external systems to Bitrix24. It provides AI agents with standardized access to Bitrix24 features and data via the Model Context Protocol (MCP). The MCP server enables external AI systems to interact with Bitrix24 modules through a single standardized interface. You can connect the Bitrix24 MCP Server to the AI model you already use and manage Bitrix24 directly from it. The MCP server allows actions to be performed and data to be retrieved strictly within the access rights configured in your Bitrix24: the AI agent receives only the information and capabilities that are explicitly requested and authorized. Interaction with the Tasks module is supported (the list of supported modules and available actions is gradually expanding).
Qasper gives AI agents the tools to discover local service businesses, check availability, and book appointments in real time.
Australian trade business OS with 67 MCP tools across 23 domains — autonomous business formation, lead management, quoting, job scheduling, invoicing, crypto payments, and growth analytics for tradies.
Manage projects, time, expenses, and invoices
An MCP server for integrating with Clio practice management software, tailored for Australian legal professionals.
Corcava MCP lets AI clients work with projects, tasks, time tracking, and related agency operations through Corcava's remote MCP endpoint.
Freelance business manager — clients, proposals, invoices, time tracking, scope, and follow-ups. 37 MCP tools.
Interact with Monday.com boards, items, updates, and documents.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





