Mob (Demo)
What this MCP does
Manages personal CRM data including contacts, relationships, activities, notes, reminders, gifts, debts, preferences, tasks, searches, and notifications.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'type': {'enum': ['phone_call', 'video_call', 'text_message', 'in_person', 'email', 'activity', 'other'], 'type': 'string', 'description': 'Filter by interaction type'}, 'since': {'type': 'string', 'description': 'Show activities since this ISO date (uses activity log mode with participant names)'}, 'per_page': {'type': 'number', 'description': 'Results per page (default: 20)'}, 'days_back': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Look-back window in days (uses activity log mode with participant names). Ignored if since is provided.'}, 'contact_id': {'type': 'string', 'description': 'Filter by contact ID'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction by occurred_at (default: desc, only for activity log mode)'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted activities in results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The activity ID (required for "get", "update", "delete", "restore")'}, 'type': {'enum': ['phone_call', 'video_call', 'text_message', 'in_person', 'email', 'activity', 'other'], 'type': 'string', 'description': 'Type of interaction (required for "create", optional for "update")'}, 'title': {'type': 'string', 'description': 'Title (e.g. "Coffee at Blue Bottle")'}, 'action': {'enum': ['create', 'get', 'update', 'delete', 'restore'], 'type': 'string', 'description': 'Action to perform'}, 'location': {'type': 'string', 'description': 'Where it happened'}, 'description': {'type': 'string', 'description': 'Description or notes'}, 'occurred_at': {'type': 'string', 'description': 'When it happened (ISO date/datetime) (required for "create", optional for "update")'}, 'activity_type_id': {'type': 'string', 'description': 'Custom activity type ID'}, 'duration_minutes': {'type': 'number', 'description': 'Duration in minutes'}, 'participant_contact_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact IDs of participants (required for "create", optional for "update")'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'Activity type ID (required for "update" and "delete")'}, 'icon': {'type': 'string', 'description': 'Icon identifier'}, 'name': {'type': 'string', 'description': 'Activity type name (required for "create")'}, 'action': {'enum': ['list', 'create', 'update', 'delete'], 'type': 'string', 'description': 'Action to perform'}, 'category': {'type': 'string', 'description': 'Category (e.g. "Food & Drink", "Sports")'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The address ID (required for "update" and "remove")'}, 'city': {'type': 'string', 'description': 'City'}, 'label': {'type': 'string', 'description': 'Label (e.g. "Home", "Work")'}, 'action': {'enum': ['add', 'update', 'remove'], 'type': 'string', 'description': 'Action to perform'}, 'country': {'type': 'string', 'description': 'Country (ISO 3166-1 alpha-2 recommended)'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "add")'}, 'is_primary': {'type': 'boolean', 'description': 'Set as primary address'}, 'postal_code': {'type': 'string', 'description': 'Postal/ZIP code'}, 'street_line_1': {'type': 'string', 'description': 'Street address line 1'}, 'street_line_2': {'type': 'string', 'description': 'Street address line 2'}, 'state_province': {'type': 'string', 'description': 'State or province'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['activities'], 'properties': {'activities': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'occurred_at', 'participant_contact_ids'], 'properties': {'type': {'enum': ['phone_call', 'video_call', 'text_message', 'in_person', 'email', 'activity', 'other'], 'type': 'string', 'description': 'Type of interaction'}, 'title': {'type': 'string', 'description': 'Title (e.g. "Coffee at Blue Bottle")'}, 'location': {'type': 'string', 'description': 'Where it happened'}, 'description': {'type': 'string', 'description': 'Description or notes'}, 'occurred_at': {'type': 'string', 'description': 'When it happened (ISO date/datetime)'}, 'activity_type_id': {'type': 'string', 'description': 'Custom activity type ID'}, 'duration_minutes': {'type': 'number', 'description': 'Duration in minutes'}, 'participant_contact_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact IDs of participants'}}}, 'description': 'Array of activity creation inputs (max 50)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contacts'], 'properties': {'contacts': {'type': 'array', 'items': {'type': 'object', 'required': ['first_name'], 'properties': {'gender': {'type': 'string', 'description': 'Gender'}, 'status': {'enum': ['active', 'archived', 'deceased'], 'type': 'string', 'description': 'Contact status (default: active)'}, 'company': {'type': 'string', 'description': 'Company or organization'}, 'industry': {'type': 'string', 'description': 'Industry'}, 'nickname': {'type': 'string', 'description': 'Nickname'}, 'pronouns': {'type': 'string', 'description': 'Pronouns (e.g. she/her, he/him, they/them)'}, 'job_title': {'type': 'string', 'description': 'Job title'}, 'last_name': {'type': 'string', 'description': 'Last name'}, 'avatar_url': {'type': 'string', 'description': 'Avatar URL'}, 'first_name': {'type': 'string', 'description': 'First name (required)'}, 'work_notes': {'type': 'string', 'description': 'Notes about their work'}, 'is_favorite': {'type': 'boolean', 'description': 'Mark as favorite'}, 'maiden_name': {'type': 'string', 'description': 'Maiden name'}, 'met_at_date': {'type': 'string', 'description': 'Date you met this person (YYYY-MM-DD)'}, 'middle_name': {'type': 'string', 'description': 'Middle name'}, 'birthday_day': {'type': 'number', 'description': 'Birthday day (1-31), used with birthday_mode=month_day'}, 'birthday_date': {'type': 'string', 'description': 'Full birthday date (YYYY-MM-DD), used with birthday_mode=full_date'}, 'birthday_mode': {'enum': ['full_date', 'month_day', 'approximate_age'], 'type': 'string', 'description': 'Birthday mode: full_date (YYYY-MM-DD), month_day (month + day only), or approximate_age (birth year estimate)'}, 'deceased_date': {'type': 'string', 'description': 'Date of death (YYYY-MM-DD)'}, 'birthday_month': {'type': 'number', 'description': 'Birthday month (1-12), used with birthday_mode=month_day'}, 'met_at_location': {'type': 'string', 'description': 'Where you met this person'}, 'met_description': {'type': 'string', 'description': 'Story of how you met'}, 'met_through_contact_id': {'type': 'string', 'description': 'Contact ID of person who introduced you'}, 'birthday_year_approximate': {'type': 'number', 'description': 'Approximate birth year, used with birthday_mode=approximate_age'}}}, 'description': 'Array of contact creation inputs (max 50)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tag_name', 'contact_ids'], 'properties': {'tag_name': {'type': 'string', 'description': 'Tag name to apply'}, 'contact_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of contact IDs to tag (max 50)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['first_name'], 'properties': {'gender': {'type': 'string', 'description': 'Gender'}, 'status': {'enum': ['active', 'archived', 'deceased'], 'type': 'string', 'description': 'Contact status (default: active)'}, 'company': {'type': 'string', 'description': 'Company or organization'}, 'industry': {'type': 'string', 'description': 'Industry'}, 'nickname': {'type': 'string', 'description': 'Nickname'}, 'pronouns': {'type': 'string', 'description': 'Pronouns (e.g. she/her, he/him, they/them)'}, 'job_title': {'type': 'string', 'description': 'Job title'}, 'last_name': {'type': 'string', 'description': 'Last name'}, 'avatar_url': {'type': 'string', 'description': 'Avatar URL'}, 'first_name': {'type': 'string', 'description': 'First name (required)'}, 'work_notes': {'type': 'string', 'description': 'Notes about their work'}, 'is_favorite': {'type': 'boolean', 'description': 'Mark as favorite'}, 'maiden_name': {'type': 'string', 'description': 'Maiden name'}, 'met_at_date': {'type': 'string', 'description': 'Date you met this person (YYYY-MM-DD)'}, 'middle_name': {'type': 'string', 'description': 'Middle name'}, 'birthday_day': {'type': 'number', 'description': 'Birthday day (1-31), used with birthday_mode=month_day'}, 'birthday_date': {'type': 'string', 'description': 'Full birthday date (YYYY-MM-DD), used with birthday_mode=full_date'}, 'birthday_mode': {'enum': ['full_date', 'month_day', 'approximate_age'], 'type': 'string', 'description': 'Birthday mode: full_date (YYYY-MM-DD), month_day (month + day only), or approximate_age (birth year estimate)'}, 'deceased_date': {'type': 'string', 'description': 'Date of death (YYYY-MM-DD)'}, 'birthday_month': {'type': 'number', 'description': 'Birthday month (1-12), used with birthday_mode=month_day'}, 'met_at_location': {'type': 'string', 'description': 'Where you met this person'}, 'met_description': {'type': 'string', 'description': 'Story of how you met'}, 'met_through_contact_id': {'type': 'string', 'description': 'Contact ID of person who introduced you'}, 'birthday_year_approximate': {'type': 'number', 'description': 'Approximate birth year, used with birthday_mode=approximate_age'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'description': 'The contact ID to delete'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'description': 'The contact ID'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'search': {'type': 'string', 'description': 'Search contacts by name, company, or job title'}, 'status': {'enum': ['active', 'archived', 'deceased'], 'type': 'string', 'description': 'Filter by status'}, 'company': {'type': 'string', 'description': 'Filter by company'}, 'sort_by': {'enum': ['name', 'created_at', 'updated_at'], 'type': 'string', 'description': 'Sort field (default: name)'}, 'per_page': {'type': 'number', 'description': 'Results per page (default: 20)'}, 'tag_name': {'type': 'string', 'description': 'Filter by tag name'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort order (default: asc)'}, 'is_favorite': {'type': 'boolean', 'description': 'Filter by favorite'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted contacts in results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['primary_contact_id', 'secondary_contact_id'], 'properties': {'primary_contact_id': {'type': 'string', 'description': 'The contact ID to keep (primary)'}, 'secondary_contact_id': {'type': 'string', 'description': 'The contact ID to merge into the primary (will be soft-deleted)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The contact method ID (required for "update" and "remove")'}, 'type': {'type': 'string', 'minLength': 1, 'description': 'Type of contact method (required for "add"). Built-ins: email, phone, whatsapp, telegram, signal, twitter, instagram, facebook, linkedin, website, other. Custom values defined in Settings are also accepted.'}, 'label': {'type': 'string', 'description': 'Label (e.g. "Personal", "Work")'}, 'value': {'type': 'string', 'description': 'The value - email, phone number, handle (required for "add")'}, 'action': {'enum': ['add', 'update', 'remove'], 'type': 'string', 'description': 'Action to perform'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "add")'}, 'is_primary': {'type': 'boolean', 'description': 'Set as primary for this type'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'description': 'The contact ID to restore'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Max results to return (default: 20)'}, 'status': {'enum': ['active', 'archived'], 'type': 'string', 'description': 'Contact status filter (default: active)'}, 'tag_name': {'type': 'string', 'description': 'Filter to contacts with this tag (e.g., "close friends")'}, 'is_favorite': {'type': 'boolean', 'description': 'Filter to favorites only'}, 'days_since_last_interaction': {'type': 'number', 'description': 'Minimum days since last activity to be included (default: 30)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'per_page': {'type': 'number', 'description': 'Results per page (default: 20)'}, 'contact_id': {'type': 'string', 'description': 'The contact ID'}, 'entry_type': {'enum': ['activity', 'life_event', 'note', 'contact_created'], 'type': 'string', 'description': 'Filter by entry type'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'gender': {'type': 'string', 'description': 'Gender'}, 'status': {'enum': ['active', 'archived', 'deceased'], 'type': 'string', 'description': 'Contact status'}, 'company': {'type': 'string', 'description': 'Company'}, 'industry': {'type': 'string', 'description': 'Industry'}, 'nickname': {'type': 'string', 'description': 'Nickname'}, 'pronouns': {'type': 'string', 'description': 'Pronouns'}, 'job_title': {'type': 'string', 'description': 'Job title'}, 'last_name': {'type': 'string', 'description': 'Last name'}, 'avatar_url': {'type': 'string', 'description': 'Avatar URL'}, 'contact_id': {'type': 'string', 'description': 'The contact ID to update'}, 'first_name': {'type': 'string', 'description': 'First name'}, 'work_notes': {'type': 'string', 'description': 'Work notes'}, 'is_favorite': {'type': 'boolean', 'description': 'Mark as favorite'}, 'maiden_name': {'type': 'string', 'description': 'Maiden name'}, 'met_at_date': {'type': 'string', 'description': 'Date you met this person'}, 'middle_name': {'type': 'string', 'description': 'Middle name'}, 'birthday_day': {'type': 'number', 'description': 'Birthday day (1-31)'}, 'birthday_date': {'type': 'string', 'description': 'Full birthday date (YYYY-MM-DD)'}, 'birthday_mode': {'enum': ['full_date', 'month_day', 'approximate_age'], 'type': 'string', 'description': 'Birthday mode'}, 'deceased_date': {'type': 'string', 'description': 'Date of death (YYYY-MM-DD)'}, 'birthday_month': {'type': 'number', 'description': 'Birthday month (1-12)'}, 'met_at_location': {'type': 'string', 'description': 'Where you met this person'}, 'met_description': {'type': 'string', 'description': 'How you met'}, 'met_through_contact_id': {'type': 'string', 'description': 'Contact ID of person who introduced you'}, 'birthday_year_approximate': {'type': 'number', 'description': 'Approximate birth year'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The custom field ID (required for "update" and "remove")'}, 'action': {'enum': ['add', 'update', 'remove'], 'type': 'string', 'description': 'Action to perform'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "add")'}, 'field_name': {'type': 'string', 'description': 'Field name, e.g. "Favorite Color" (required for "add")'}, 'field_group': {'type': 'string', 'description': 'Group to organize fields, e.g. "Preferences"'}, 'field_value': {'type': 'string', 'description': 'Field value (required for "add")'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The debt ID (required for "update", "settle", "delete", "restore")'}, 'page': {'type': 'number', 'description': 'Page number for "list" (default: 1)'}, 'action': {'enum': ['create', 'list', 'update', 'settle', 'delete', 'restore', 'summary'], 'type': 'string', 'description': 'Action to perform'}, 'amount': {'type': 'number', 'description': 'Amount owed (required for "create", optional for "update")'}, 'reason': {'type': 'string', 'description': 'Reason for the debt'}, 'status': {'enum': ['active', 'settled'], 'type': 'string', 'description': 'Filter by status (for "list" only)'}, 'currency': {'type': 'string', 'description': 'Currency (default: USD)'}, 'per_page': {'type': 'number', 'description': 'Results per page for "list" (default: 20)'}, 'direction': {'enum': ['i_owe_them', 'they_owe_me'], 'type': 'string', 'description': 'Who owes whom (required for "create", optional for "update")'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "create" and "summary", optional filter for "list")'}, 'incurred_at': {'type': 'string', 'description': 'When the debt was incurred (ISO date)'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted debts in "list" results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'description': 'The contact ID'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'notes': {'type': 'string', 'description': 'Additional notes about food preferences'}, 'allergies': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Food allergies (e.g. ["peanuts", "shellfish"])'}, 'contact_id': {'type': 'string', 'description': 'The contact ID'}, 'disliked_foods': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Disliked foods'}, 'favorite_foods': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Favorite foods'}, 'dietary_restrictions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dietary restrictions (e.g. ["vegetarian", "gluten-free"])'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'status': {'enum': ['idea', 'planned', 'purchased', 'given', 'received'], 'type': 'string', 'description': 'Filter by status'}, 'sort_by': {'enum': ['date', 'created_at', 'estimated_cost'], 'type': 'string', 'description': 'Sort field (default: date for tracker mode, created_at otherwise)'}, 'occasion': {'type': 'string', 'description': 'Filter by occasion (fuzzy match, e.g. "birthday", "Christmas")'}, 'per_page': {'type': 'number', 'description': 'Results per page (default: 20)'}, 'direction': {'enum': ['giving', 'receiving'], 'type': 'string', 'description': 'Filter by direction'}, 'contact_id': {'type': 'string', 'description': 'Filter by contact ID'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction (default: desc)'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted gifts in results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The gift ID (required for "update", "delete", "restore")'}, 'url': {'type': 'string', 'description': 'Link to the gift'}, 'date': {'type': 'string', 'description': 'Date of giving/receiving (ISO date)'}, 'name': {'type': 'string', 'description': 'Gift name (required for "create")'}, 'action': {'enum': ['create', 'update', 'delete', 'restore'], 'type': 'string', 'description': 'Action to perform'}, 'status': {'enum': ['idea', 'planned', 'purchased', 'given', 'received'], 'type': 'string', 'description': 'Gift status (default: idea)'}, 'currency': {'type': 'string', 'description': 'Currency (default: USD)'}, 'occasion': {'type': 'string', 'description': 'Occasion (e.g. "Birthday", "Christmas")'}, 'direction': {'enum': ['giving', 'receiving'], 'type': 'string', 'description': 'Giving to or receiving from this contact (required for "create")'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "create")'}, 'description': {'type': 'string', 'description': 'Description'}, 'estimated_cost': {'type': 'number', 'description': 'Estimated cost'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search term'}, 'entity_types': {'type': 'array', 'items': {'enum': ['contacts', 'notes', 'activities', 'life_events', 'gifts', 'tasks', 'reminders', 'debts', 'relationships', 'contact_methods', 'addresses', 'custom_fields'], 'type': 'string'}, 'description': 'Optional: filter to specific entity types (default: all types)'}, 'limit_per_type': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Max results per entity type (default: 10)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The life event ID (required for "update", "delete", "restore")'}, 'page': {'type': 'number', 'description': 'Page number for "list" (default: 1)'}, 'title': {'type': 'string', 'description': 'Title (e.g. "Started at Google", "Moved to Berlin") - required for "create", optional for "update"'}, 'action': {'enum': ['create', 'list', 'update', 'delete', 'restore'], 'type': 'string', 'description': 'Action to perform'}, 'per_page': {'type': 'number', 'description': 'Results per page for "list" (default: 20)'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "create" and "list")'}, 'event_type': {'type': 'string', 'description': 'Event type (e.g. "new_job", "got_married", "moved") - required for "create", optional for "update"'}, 'description': {'type': 'string', 'description': 'Description (optional for "create" and "update")'}, 'occurred_at': {'type': 'string', 'description': 'When it happened (ISO date, optional for "create" and "update")'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted life events in "list" results (default: false)'}, 'related_contact_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'IDs of other contacts involved (optional for "create" and "update")'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'action': {'enum': ['get', 'update'], 'type': 'string', 'description': 'Action to perform'}, 'timezone': {'type': 'string', 'description': 'IANA timezone (e.g. "America/New_York", "Europe/London")'}, 'reminder_offsets': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Array of day offsets for custom reminder advance notice (e.g. [0,7,30] = day-of, 1 week before, 1 month before)'}, 'birthday_reminder_time': {'type': 'string', 'description': 'Time of day for birthday reminders in HH:MM 24-hour format (e.g. "09:00")'}, 'birthday_reminder_offsets': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Array of day offsets for birthday reminders (e.g. [0,7,30] = day-of, 1 week before, 1 month before)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'query': {'type': 'string', 'description': 'Search term matched against note title and body'}, 'sort_by': {'enum': ['created_at', 'updated_at'], 'type': 'string', 'description': 'Sort field (default: updated_at)'}, 'per_page': {'type': 'number', 'description': 'Results per page (default: 20)'}, 'tag_name': {'type': 'string', 'description': 'Filter to notes belonging to contacts with this tag'}, 'is_pinned': {'type': 'boolean', 'description': 'Filter by pinned status'}, 'contact_id': {'type': 'string', 'description': 'Filter by contact ID (optional - omit to search across all contacts)'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction (default: desc)'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted notes in results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The note ID (required for "update", "delete", "restore")'}, 'body': {'type': 'string', 'description': 'Note body, supports markdown (required for "create", optional for "update")'}, 'title': {'type': 'string', 'description': 'Note title (optional for "create" and "update")'}, 'action': {'enum': ['create', 'update', 'delete', 'restore'], 'type': 'string', 'description': 'Action to perform'}, 'is_pinned': {'type': 'boolean', 'description': 'Pin/unpin note (optional for "create" and "update")'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "create")'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['type', 'title'], 'properties': {'body': {'type': 'string', 'description': 'Notification body'}, 'type': {'enum': ['birthday', 'reminder', 'follow_up', 'custom'], 'type': 'string', 'description': 'Notification type'}, 'title': {'type': 'string', 'description': 'Notification title'}, 'contact_id': {'type': 'string', 'description': 'Related contact ID'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'per_page': {'type': 'number', 'description': 'Results per page (default: 20)'}, 'unread_only': {'type': 'boolean', 'description': 'Only show unread notifications'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'string', 'description': 'The notification ID (required unless all=true)'}, 'all': {'type': 'boolean', 'description': 'Mark all notifications as read (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The relationship ID (required for "update" and "remove")'}, 'notes': {'type': 'string', 'description': 'Notes about this relationship (optional for "add" and "update")'}, 'action': {'enum': ['add', 'update', 'remove', 'list'], 'type': 'string', 'description': 'Action to perform'}, 'contact_id': {'type': 'string', 'description': 'The source contact ID (required for "add" and "list")'}, 'relationship_type': {'type': 'string', 'description': 'Type of relationship (required for "add", optional for "update"). Canonical values: significant_other, spouse, date, lover, in_love_with, secret_lover, ex_boyfriend_girlfriend, ex_husband_wife, parent, child, sibling, grandparent, grandchild, uncle_aunt, nephew_niece, cousin, godparent, godchild, step_parent, step_child, friend, best_friend, colleague, boss, subordinate, mentor, protege. Custom values defined in Settings are also accepted.'}, 'related_contact_id': {'type': 'string', 'description': 'The related contact ID (required for "add")'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The reminder ID (required for "update", "complete", "snooze", "delete", "restore")'}, 'page': {'type': 'number', 'description': 'Page number for "list" (default: 1)'}, 'title': {'type': 'string', 'description': 'Reminder title (required for "create", optional for "update")'}, 'action': {'enum': ['create', 'list', 'update', 'complete', 'snooze', 'delete', 'restore'], 'type': 'string', 'description': 'Action to perform'}, 'status': {'enum': ['active', 'snoozed', 'completed', 'dismissed'], 'type': 'string', 'description': 'Filter by status (for "list" only)'}, 'new_date': {'type': 'string', 'description': 'New reminder date (ISO date YYYY-MM-DD) (required for "snooze")'}, 'per_page': {'type': 'number', 'description': 'Results per page for "list" (default: 20)'}, 'frequency': {'enum': ['one_time', 'weekly', 'monthly', 'yearly'], 'type': 'string', 'description': 'Frequency (default: one_time, optional for "create" and "update")'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for "create", optional filter for "list")'}, 'description': {'type': 'string', 'description': 'Description (optional for "create" and "update")'}, 'reminder_date': {'type': 'string', 'description': 'When to remind (ISO date YYYY-MM-DD) (required for "create", optional for "update")'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted reminders in "list" results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The tag ID (required for update, delete, untag_contact)'}, 'name': {'type': 'string', 'description': 'Tag name (required for create and tag_contact)'}, 'action': {'enum': ['list', 'create', 'update', 'delete', 'tag_contact', 'untag_contact'], 'type': 'string', 'description': 'Action to perform'}, 'contact_id': {'type': 'string', 'description': 'The contact ID (required for tag_contact and untag_contact)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['action'], 'properties': {'id': {'type': 'string', 'description': 'The task ID (required for "update", "complete", "delete", "restore")'}, 'page': {'type': 'number', 'description': 'Page number for "list" (default: 1)'}, 'title': {'type': 'string', 'description': 'Task title (required for "create", optional for "update")'}, 'action': {'enum': ['create', 'list', 'update', 'complete', 'delete', 'restore'], 'type': 'string', 'description': 'Action to perform'}, 'status': {'enum': ['pending', 'in_progress', 'completed'], 'type': 'string', 'description': 'Status (optional for "update", filter for "list")'}, 'due_date': {'type': 'string', 'description': 'Due date (ISO date, optional for "create" and "update")'}, 'per_page': {'type': 'number', 'description': 'Results per page for "list" (default: 20)'}, 'priority': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'Priority (optional for "create"/"update", filter for "list")'}, 'contact_id': {'type': 'string', 'description': 'Link to a contact (optional for "create"/"update", filter for "list")'}, 'description': {'type': 'string', 'description': 'Description (optional for "create" and "update")'}, 'include_deleted': {'type': 'boolean', 'description': 'Include soft-deleted tasks in "list" results (default: false)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'month': {'type': 'number', 'maximum': 12, 'minimum': 1, 'description': 'Optional: show all birthdays in a specific month (1-12) instead of using days_ahead'}, 'days_ahead': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Look-ahead window in days from today (default: 30). Ignored if month is provided.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'enum': ['active', 'snoozed'], 'type': 'string', 'description': 'Filter by reminder status (default: active)'}, 'days_ahead': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Look-ahead window in days from today (default: 14)'}, 'include_overdue': {'type': 'boolean', 'description': 'Include overdue reminders with reminder_date before today (default: true)'}}}
Recent tool changes
Similar MCP servers
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…
momence
Manages studio members, classes, appointments, bookings, waitlists, memberships, check-ins, leads, and customer tags in Momence.
less-annoying-crm
Reads and writes Less Annoying CRM contacts, companies, groups, notes, tasks, events, pipelines, and pipeline items.
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…