less-annoying-crm
Ce que fait ce MCP
Reads and writes Less Annoying CRM contacts, companies, groups, notes, tasks, events, pipelines, and pipeline items.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id'], 'properties': {'group_id': {'type': 'string', 'minLength': 1, 'description': 'The group id (a long numeric Uid — always pass it as a string).'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}, 'group_name': {'type': 'string', 'description': 'The group name, if you do not have its id.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': "Full name of the person, or the company's name."}, 'email': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The value, e.g. an email address or phone number.'}, 'type': {'type': 'string', 'description': 'Type label, e.g. Work, Personal, Mobile. Must match a type in the CRM.'}}}, 'description': 'Email address(es).'}, 'phone': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The value, e.g. an email address or phone number.'}, 'type': {'type': 'string', 'description': 'Type label, e.g. Work, Personal, Mobile. Must match a type in the CRM.'}}}, 'description': 'Phone number(s).'}, 'address': {'type': 'array', 'items': {'type': 'object', 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string', 'description': 'Type label, e.g. Work, Home.'}, 'state': {'type': 'string'}, 'street': {'type': 'string'}, 'country': {'type': 'string'}}}, 'description': 'Address(es).'}, 'website': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Website URL(s).'}, 'birthday': {'type': 'string', 'description': 'Birthday, yyyy-mm-dd (or 0000-M-D for no year).'}, 'job_title': {'type': 'string', 'description': 'Job title (people only).'}, 'is_company': {'type': 'boolean', 'description': 'true to create a COMPANY record. Default false (a person).'}, 'assigned_to': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}], 'description': "UserId to assign the record to. Default: the API key's user."}, 'company_name': {'type': 'string', 'description': 'For a PERSON: the company they work at (created if it does not exist). Not used for company records.'}, 'custom_fields': {'type': 'object', 'description': 'Extra fields keyed by the account\'s field names exactly as LACRM shows them (e.g. {"Lead Source": "Referral"}). Use lacrm_list_custom_fields to find them. Merged verbatim into Parameters.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'background_info': {'type': 'string', 'description': 'The Background Info text.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'start_date', 'end_date'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Event name shown on the calendar.'}, 'end_date': {'type': 'string', 'description': 'End, ISO 8601 date-time.'}, 'location': {'type': 'string'}, 'attendees': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'ContactId (is_user=false) or UserId (is_user=true).'}, 'status': {'enum': ['IsAttending', 'Maybe', 'NotAttending'], 'type': 'string'}, 'is_user': {'type': 'boolean', 'description': 'true if this attendee is a CRM user. Default false (a contact).'}}}, 'description': 'Attendees: contacts and/or users.'}, 'is_all_day': {'type': 'boolean', 'description': 'All-day event (times ignored). Default false.'}, 'start_date': {'type': 'string', 'description': 'Start, ISO 8601 date-time, e.g. 2026-10-06T14:00:00-05:00.'}, 'calendar_id': {'type': 'string', 'minLength': 1, 'description': 'Calendar to put it on. Default: your primary (a long numeric Uid — always pass it as a string).'}, 'description': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id', 'note'], 'properties': {'note': {'type': 'string', 'minLength': 1, 'description': 'The note text.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}, 'date_displayed': {'type': 'string', 'description': 'When the note should appear in history, ISO 8601 date-time. Default: now.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id', 'pipeline_id', 'status_id'], 'properties': {'note': {'type': 'string', 'description': "Optional note shown in the item's history."}, 'status_id': {'type': 'string', 'minLength': 1, 'description': "The starting status id (from the pipeline's Statuses) (a long numeric Uid — always pass it as a string)."}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}, 'pipeline_id': {'type': 'string', 'minLength': 1, 'description': 'The pipeline id (from lacrm_list_pipelines) (a long numeric Uid — always pass it as a string).'}, 'run_status_automation': {'type': 'boolean', 'description': "Run the status's automation. Default false."}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Task name shown on the task list.'}, 'due_date': {'type': 'string', 'description': 'Due date, yyyy-mm-dd.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'Attach the task to this contact or company (a long numeric Uid — always pass it as a string).'}, 'assigned_to': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}], 'description': 'UserId to assign to. Default: you.'}, 'calendar_id': {'type': 'string', 'minLength': 1, 'description': 'Calendar to file it under. Default: your primary (a long numeric Uid — always pass it as a string).'}, 'description': {'type': 'string', 'description': 'Longer details.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id'], 'properties': {'name': {'type': 'string', 'description': 'New full name (person) or company name.'}, 'email': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The value, e.g. an email address or phone number.'}, 'type': {'type': 'string', 'description': 'Type label, e.g. Work, Personal, Mobile. Must match a type in the CRM.'}}}, 'description': 'Email address(es).'}, 'phone': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The value, e.g. an email address or phone number.'}, 'type': {'type': 'string', 'description': 'Type label, e.g. Work, Personal, Mobile. Must match a type in the CRM.'}}}, 'description': 'Phone number(s).'}, 'address': {'type': 'array', 'items': {'type': 'object', 'properties': {'zip': {'type': 'string'}, 'city': {'type': 'string'}, 'type': {'type': 'string', 'description': 'Type label, e.g. Work, Home.'}, 'state': {'type': 'string'}, 'street': {'type': 'string'}, 'country': {'type': 'string'}}}, 'description': 'Address(es).'}, 'website': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Website URL(s).'}, 'birthday': {'type': 'string', 'description': 'Birthday, yyyy-mm-dd (or 0000-M-D for no year).'}, 'job_title': {'type': 'string', 'description': 'Job title (people only).'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}, 'is_company': {'type': 'boolean', 'description': 'Set true if this record is a company, so `name` maps to its Company Name field.'}, 'assigned_to': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}], 'description': 'Reassign to this UserId.'}, 'company_name': {'type': 'string', 'description': 'For a PERSON: the company they work at (created if it does not exist). Not used for company records.'}, 'custom_fields': {'type': 'object', 'description': 'Extra fields keyed by the account\'s field names exactly as LACRM shows them (e.g. {"Lead Source": "Referral"}). Use lacrm_list_custom_fields to find them. Merged verbatim into Parameters.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'background_info': {'type': 'string', 'description': 'The Background Info text.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['task_id'], 'properties': {'name': {'type': 'string'}, 'task_id': {'type': 'string', 'minLength': 1, 'description': 'The task id (a long numeric Uid — always pass it as a string).'}, 'due_date': {'type': 'string', 'description': 'New due date, yyyy-mm-dd.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'Attach to this contact instead (a long numeric Uid — always pass it as a string).'}, 'assigned_to': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}], 'description': 'Reassign to this UserId.'}, 'calendar_id': {'type': 'string', 'minLength': 1, 'description': 'Move to this calendar (a long numeric Uid — always pass it as a string).'}, 'description': {'type': 'string'}, 'is_complete': {'type': 'boolean', 'description': 'true = mark complete, false = mark incomplete.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'minLength': 1, 'description': 'The contact or company id (a long numeric Uid — always pass it as a string).'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'group_id': {'type': 'string', 'minLength': 1, 'description': 'The group id (a long numeric Uid — always pass it as a string).'}, 'group_name': {'type': 'string', 'description': 'The group name, if you do not have its id.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'pipeline_id': {'type': 'string', 'minLength': 1, 'description': "For pipeline fields, only this pipeline's (a long numeric Uid — always pass it as a string)."}, 'record_type': {'enum': ['Contact', 'Company', 'Pipeline'], 'type': 'string', 'description': 'Only fields for this record type.'}, 'include_archived': {'type': 'boolean', 'description': 'Include deleted fields. Default false.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'end_date': {'type': 'string', 'description': 'End of the range (inclusive), ISO 8601 date or date-time.'}, 'user_ids': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}]}, 'description': 'Only events for these UserIds.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'Only events attached to this contact (a long numeric Uid — always pass it as a string).'}, 'start_date': {'type': 'string', 'description': 'Start of the range (inclusive), ISO 8601 date or date-time.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'calendar_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only events on these CalendarIds (your own calendars only).'}, 'sort_direction': {'enum': ['Ascending', 'Descending'], 'type': 'string', 'description': 'Sort direction.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'include_contact_counts': {'type': 'boolean', 'description': 'Also return the number of contacts in each group (slower).'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'date_end': {'type': 'string', 'description': 'Only notes on/before this date-time (ISO 8601).'}, 'user_ids': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}]}, 'description': 'Only notes entered by these UserIds.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'Only notes attached to this contact (a long numeric Uid — always pass it as a string).'}, 'date_start': {'type': 'string', 'description': 'Only notes on/after this date-time (ISO 8601).'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'sort_direction': {'enum': ['Ascending', 'Descending'], 'type': 'string', 'description': 'Sort direction.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['pipeline_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'sort_by': {'enum': ['Status', 'DateCreated', 'LastUpdate'], 'type': 'string', 'description': 'Default Status.'}, 'user_ids': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}]}, 'description': 'Only items whose contact is assigned to these UserIds.'}, 'status_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only items in these StatusIds.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'pipeline_id': {'type': 'string', 'minLength': 1, 'description': 'The pipeline id (from lacrm_list_pipelines) (a long numeric Uid — always pass it as a string).'}, 'sort_direction': {'enum': ['Ascending', 'Descending'], 'type': 'string', 'description': 'Sort direction.'}, 'advanced_filters': {'type': 'array', 'items': {'type': 'object', 'required': ['Name', 'Operation'], 'properties': {'Name': {'type': 'string', 'description': 'Filter name, e.g. FullName, FirstName, Group.'}, 'Value': {'description': 'Value for the operation (omit for IsEmpty-style operations).'}, 'Operation': {'type': 'string', 'description': 'Operation, e.g. Contains, IsExactly, IsInGroupList, IsEmpty.'}}}, 'description': 'AdvancedFilters, ANDed together. See https://account.lessannoyingcrm.com/api_docs/v2/Advanced/Filter_Contacts for the names/operations your account supports.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'include_archived': {'type': 'boolean', 'description': 'Include deleted pipelines. Default false.'}, 'include_custom_fields': {'type': 'boolean', 'description': "Include each pipeline's custom field definitions. Default here: false (they are verbose)."}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['start_date', 'end_date'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'end_date': {'type': 'string', 'description': 'Upper bound of due dates, yyyy-mm-dd.'}, 'user_ids': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}]}, 'description': 'Only tasks assigned to these UserIds.'}, 'contact_id': {'type': 'string', 'minLength': 1, 'description': 'Only tasks attached to this contact (a long numeric Uid — always pass it as a string).'}, 'start_date': {'type': 'string', 'description': 'Lower bound of due dates, yyyy-mm-dd.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'sort_direction': {'enum': ['Ascending', 'Descending'], 'type': 'string', 'description': 'Sort direction.'}, 'completion_status': {'enum': ['Both', 'Incomplete', 'Complete'], 'type': 'string', 'description': 'Default Both.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, 1-based. Default 1.'}, 'sort_by': {'enum': ['Relevance', 'FirstName', 'LastName', 'CompanyName', 'DateCreated', 'LastUpdate'], 'type': 'string', 'description': 'Sort field. Default Relevance.'}, 'max_results': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Results per page (MaxNumberOfResults), 1-10000. Default here: 50.'}, 'record_type': {'enum': ['Contacts', 'Companies'], 'type': 'string', 'description': 'Limit to people (Contacts) or Companies.'}, 'search_terms': {'type': 'string', 'description': 'Text to search for across record fields (name, email, phone, company...).'}, 'owner_user_ids': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}]}, 'description': 'Only records assigned to these UserIds.'}, 'sort_direction': {'enum': ['Ascending', 'Descending'], 'type': 'string', 'description': 'Sort direction.'}, 'advanced_filters': {'type': 'array', 'items': {'type': 'object', 'required': ['Name', 'Operation'], 'properties': {'Name': {'type': 'string', 'description': 'Filter name, e.g. FullName, FirstName, Group.'}, 'Value': {'description': 'Value for the operation (omit for IsEmpty-style operations).'}, 'Operation': {'type': 'string', 'description': 'Operation, e.g. Contains, IsExactly, IsInGroupList, IsEmpty.'}}}, 'description': 'AdvancedFilters, ANDed together. See https://account.lessannoyingcrm.com/api_docs/v2/Advanced/Filter_Contacts for the names/operations your account supports.'}, 'requires_write_access': {'type': 'boolean', 'description': 'Only records you can edit.'}}}
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['pipeline_item_id'], 'properties': {'note': {'type': 'string', 'description': "Note to add to the item's history."}, 'status_id': {'type': 'string', 'minLength': 1, 'description': 'The new status id (a long numeric Uid — always pass it as a string).'}, 'pipeline_item_id': {'type': 'string', 'minLength': 1, 'description': 'The pipeline item id (a long numeric Uid — always pass it as a string).'}, 'run_status_automation': {'type': 'boolean', 'description': 'If the status changes, run its automation. Default false.'}}}
Modifications récentes des outils
Serveurs MCP similaires
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
YouSpot
Connects personal contacts, companies, notes, files, CRM records, email, Slack, LinkedIn, and calendars, with search, relationshi…
Support Agent Admin by Nova (CIVAI)
Manages support-agent CRM sessions, labels, assignments, bulk follow-ups, and connected Google Calendar, Docs, and Sheets workflo…
Mob (Demo)
Manages personal CRM data including contacts, relationships, activities, notes, reminders, gifts, debts, preferences, tasks, sear…
momence
Manages studio members, classes, appointments, bookings, waitlists, memberships, check-ins, leads, and customer tags in Momence.
client-compass
Maintains client profiles and chat histories and generates behavioral communication guidance, personality insights, and relations…
EVERJUST
Manages CRM, sales, projects, email, documents, calendars, and invoicing in an EVERJUST workspace.
neuron
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, p…