follow-up-boss
What this MCP does
Searches and manages Follow Up Boss real-estate leads, contacts, calls, tasks, appointments, pipelines and deals.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['personId', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Note content.'}, 'isHtml': {'type': 'boolean', 'description': 'Render HTML tags in the body.'}, 'subject': {'type': 'string', 'description': 'Note title.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The person id.', 'exclusiveMinimum': 0}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'email': {'type': 'string', 'description': 'Email address to look for.'}, 'phone': {'type': 'string', 'description': 'Phone number to look for.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'stageId'], 'properties': {'name': {'type': 'string', 'description': 'Deal name.'}, 'price': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'stageId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Pipeline stage id.'}, 'userIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'description': 'User (agent) ids on the deal.'}, 'peopleIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'description': 'Contact ids on the deal.'}, 'description': {'type': 'string'}, 'possessionDate': {'type': 'string'}, 'teamCommission': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Team commission split.'}, 'agentCommission': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Agent commission split.'}, 'commissionValue': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'dueDiligenceDate': {'type': 'string'}, 'projectedCloseDate': {'type': 'string', 'description': 'Projected close date.'}, 'earnestMoneyDueDate': {'type': 'string'}, 'finalWalkThroughDate': {'type': 'string'}, 'mutualAcceptanceDate': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['personId'], 'properties': {'name': {'type': 'string', 'description': 'Task name.'}, 'type': {'enum': ['Follow Up', 'Call', 'Text', 'Email', 'Appointment', 'Showing', 'Closing', 'Open House', 'Thank You'], 'type': 'string'}, 'dueDate': {'type': 'string', 'description': 'YYYY-MM-DD.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The person id.', 'exclusiveMinimum': 0}, 'assignedTo': {'type': 'string', 'description': 'Full name of the user to assign (or give assignedUserId).'}, 'dueDateTime': {'type': 'string', 'description': 'With time, e.g. 2026-11-16T15:00:00-05:00.'}, 'isCompleted': {'type': 'boolean'}, 'assignedUserId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'User id to assign (or give assignedTo).'}, 'remindSecondsBefore': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Reminder lead time; only for tasks with a due time.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The person id.', 'exclusiveMinimum': 0}, 'fields': {'type': 'string', 'description': 'Comma-separated fields to return, or "allFields" / "allCustom".'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'end': {'type': 'string', 'description': 'Window end (ISO-8601). Must be combined with start.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'start': {'type': 'string', 'description': 'Window start (ISO-8601). Must be combined with end.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'userId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only appointments for this user.'}, 'personId': {'type': 'string', 'description': 'Person id, or a comma-separated list of ids.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'phone': {'type': 'string', 'description': "Calls to or from this person's number."}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only calls with this person.'}, 'toNumber': {'type': 'string', 'description': 'Calls to this number.'}, 'fromNumber': {'type': 'string', 'description': 'Calls from this number.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'label': {'type': 'string', 'description': 'Find a custom field by label.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'status': {'enum': ['Active', 'Archived', 'Deleted'], 'type': 'string', 'description': 'Only deals with this status.'}, 'userId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only deals for this user.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only deals for this person.'}, 'pipelineId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only deals in this pipeline.'}, 'includeDeleted': {'type': 'boolean', 'description': 'Include Deleted deals.'}, 'includeArchived': {'type': 'boolean', 'description': 'Include Archived deals.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'next': {'type': 'string', 'description': "Cursor from the previous page's _metadata.next. Recommended over offset."}, 'type': {'type': 'string', 'description': 'Comma-separated event types, e.g. "Registration,Property Inquiry". One of: Registration, Inquiry, Seller Inquiry, Property Inquiry, General Inquiry, Viewed Property, Saved Property, Visited Website, Incoming Call, Unsubscribed, Property Search, Saved Property Search, Visited Open House, Viewed Page.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only events for this person.'}, 'hasProperty': {'type': 'boolean', 'description': 'Only events with (or without) a property attached.'}, 'propertyAddress': {'type': 'string', 'description': 'Partial match on the property address.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Exact pipeline name.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'sort': {'enum': ['orderWeight', 'id', 'name'], 'type': 'string', 'description': 'Sort order.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'due': {'enum': ['today', 'overdue', 'upcoming'], 'type': 'string', 'description': 'Due window.'}, 'name': {'type': 'string', 'description': 'Partial match on task name.'}, 'type': {'type': 'string', 'description': 'Comma-separated types. One of: Follow Up, Call, Text, Email, Appointment, Showing, Closing, Open House, Thank You.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'dueEnd': {'type': 'string', 'description': 'Due at or before this time.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'dueStart': {'type': 'string', 'description': 'Due at or after this time.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only tasks for this person.'}, 'assignedTo': {'type': 'string', 'description': 'Only tasks assigned to this user (full name).'}, 'isCompleted': {'type': 'boolean', 'description': 'Completed or not.'}, 'assignedUserId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only tasks assigned to this user id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only texts with this person.'}, 'toNumber': {'type': 'string', 'description': 'Texts sent to this number.'}, 'fromNumber': {'type': 'string', 'description': 'Texts sent from this number.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Exact full name.'}, 'role': {'type': 'string', 'description': 'e.g. "Broker", "Agent", "Lender".'}, 'sort': {'enum': ['id', 'name', 'created'], 'type': 'string', 'description': 'Sort order.'}, 'email': {'type': 'string', 'description': 'Email address.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['personId', 'phone', 'isIncoming'], 'properties': {'note': {'type': 'string', 'description': 'Call notes.'}, 'phone': {'type': 'string', 'description': 'The number called or calling.'}, 'userId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'User who took the call (admins only).'}, 'outcome': {'enum': ['Interested', 'Not Interested', 'Left Message', 'No Answer', 'Busy', 'Bad Number'], 'type': 'string'}, 'duration': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Seconds.'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The person id.', 'exclusiveMinimum': 0}, 'toNumber': {'type': 'string'}, 'fromNumber': {'type': 'string'}, 'isIncoming': {'type': 'boolean', 'description': 'true for an incoming call, false for outgoing.'}, 'recordingUrl': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Partial match on full name.'}, 'next': {'type': 'string', 'description': "Cursor from the previous page's _metadata.next. Recommended over offset."}, 'sort': {'type': 'string', 'description': 'Sort field, e.g. "created", "lastActivity", "name"; prefix "-" for descending.'}, 'tags': {'type': 'string', 'description': 'Comma-separated tags; matches ANY ("Foo,Bar").'}, 'email': {'type': 'string', 'description': 'Exact email address.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1-100 (FUB default 10).'}, 'phone': {'type': 'string', 'description': 'Phone number.'}, 'stage': {'type': 'string', 'description': 'Stage name, e.g. "Lead", "Past Client" (see fub_list_stages).'}, 'fields': {'type': 'string', 'description': 'Comma-separated fields to return, or "allFields" / "allCustom".'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Rows to skip. For deep paging prefer `next`.'}, 'source': {'type': 'string', 'description': 'Lead source, e.g. "Zillow".'}, 'lastName': {'type': 'string', 'description': 'Partial match on last name.'}, 'contacted': {'type': 'boolean', 'description': 'Whether they have been contacted.'}, 'firstName': {'type': 'string', 'description': 'Partial match on first name.'}, 'assignedTo': {'type': 'string', 'description': 'Full name of the assigned agent.'}, 'priceAbove': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Price above this value.'}, 'priceBelow': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Price below this value.'}, 'smartListId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Only people matching this Smart List.'}, 'createdAfter': {'type': 'string', 'description': 'ISO-8601 UTC, e.g. 2026-07-01T00:00:00Z.'}, 'includeTrash': {'type': 'boolean', 'description': 'Include people in the Trash stage.'}, 'updatedAfter': {'type': 'string', 'description': 'ISO-8601 UTC.'}, 'assignedPondId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Assigned pond id.'}, 'assignedUserId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': "Assigned agent's user id."}, 'lastActivityAfter': {'type': 'string', 'description': 'e.g. "2026-01-31 00:00:00".'}, 'lastActivityBefore': {'type': 'string', 'description': 'e.g. "2026-01-31 00:00:00".'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['type', 'person'], 'properties': {'type': {'enum': ['Registration', 'Inquiry', 'Seller Inquiry', 'Property Inquiry', 'General Inquiry', 'Viewed Property', 'Saved Property', 'Visited Website', 'Incoming Call', 'Unsubscribed', 'Property Search', 'Saved Property Search', 'Visited Open House', 'Viewed Page'], 'type': 'string', 'description': 'Event type. "Inquiry" becomes Property or General Inquiry automatically.'}, 'person': {'type': 'object', 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Existing person id to attach this event to.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'stage': {'type': 'string'}, 'emails': {'type': 'array', 'items': {'type': 'object', 'required': ['value'], 'properties': {'type': {'type': 'string', 'description': 'e.g. "home", "work".'}, 'value': {'type': 'string', 'description': 'The email address.'}}}}, 'phones': {'type': 'array', 'items': {'type': 'object', 'required': ['value'], 'properties': {'type': {'type': 'string', 'description': 'e.g. "mobile", "home", "work".'}, 'value': {'type': 'string', 'description': 'The phone number, e.g. 888-555-1234.'}}}}, 'source': {'type': 'string'}, 'lastName': {'type': 'string'}, 'addresses': {'type': 'array', 'items': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'code': {'type': 'string', 'description': 'Postal/ZIP code, as a string.'}, 'type': {'type': 'string', 'description': 'e.g. "home", "work", "mailing".'}, 'state': {'type': 'string', 'description': 'Abbreviated state code, e.g. "CA".'}, 'street': {'type': 'string'}, 'country': {'type': 'string'}}}}, 'contacted': {'type': 'boolean'}, 'firstName': {'type': 'string'}, 'sourceUrl': {'type': 'string'}, 'assignedTo': {'type': 'string', 'description': 'Full name of the agent.'}, 'customFields': {'type': 'object', 'description': 'Account custom fields, keyed by their API name (e.g. {"customBirthday": "1990-02-16"}). See the `name` column of fub_list_custom_fields. null clears a value.', 'propertyNames': {'type': 'string', 'pattern': '^custom[A-Za-z0-9_]+$'}, 'additionalProperties': {'type': ['string', 'number', 'null']}}, 'assignedUserId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'assignedLenderId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'assignedLenderName': {'type': 'string'}}, 'description': 'The lead.'}, 'source': {'type': 'string', 'description': 'Lead source name, e.g. "MyWebsite.com". Used for Lead Flow routing.'}, 'system': {'type': 'string', 'description': 'Name of the system sending the lead.'}, 'message': {'type': 'string', 'description': 'A message from the lead.'}, 'pageUrl': {'type': 'string', 'description': 'For Viewed Page events.'}, 'property': {'type': 'object', 'properties': {'lot': {'type': 'string', 'description': 'Acres.'}, 'url': {'type': 'string'}, 'area': {'type': 'string', 'description': 'Square feet.'}, 'city': {'type': 'string'}, 'code': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'state': {'type': 'string'}, 'street': {'type': 'string'}, 'forRent': {'type': 'boolean'}, 'bedrooms': {'type': 'string'}, 'bathrooms': {'type': 'string'}, 'mlsNumber': {'type': 'string'}}, 'description': 'The property the event is about.'}, 'pageTitle': {'type': 'string', 'description': 'For Viewed Page events.'}, 'occurredAt': {'type': 'string', 'description': 'ISO-8601 time it happened. Events older than a day are historical and do not trigger workflows.'}, 'description': {'type': 'string', 'description': 'Any additional information.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The deal id.', 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'price': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'stageId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Move to this pipeline stage.'}, 'userIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'peopleIds': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'description': {'type': 'string'}, 'possessionDate': {'type': 'string'}, 'commissionValue': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'dueDiligenceDate': {'type': 'string'}, 'projectedCloseDate': {'type': 'string', 'description': 'Projected close date.'}, 'earnestMoneyDueDate': {'type': 'string'}, 'finalWalkThroughDate': {'type': 'string'}, 'mutualAcceptanceDate': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The person id.', 'exclusiveMinimum': 0}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'stage': {'type': 'string', 'description': 'Stage name (see fub_list_stages).'}, 'emails': {'type': 'array', 'items': {'type': 'object', 'required': ['value'], 'properties': {'type': {'type': 'string', 'description': 'e.g. "home", "work".'}, 'value': {'type': 'string', 'description': 'The email address.'}, 'isPrimary': {'type': 'boolean'}}}}, 'phones': {'type': 'array', 'items': {'type': 'object', 'required': ['value'], 'properties': {'type': {'type': 'string', 'description': 'e.g. "mobile", "home", "work".'}, 'value': {'type': 'string', 'description': 'The phone number, e.g. 888-555-1234.'}, 'isPrimary': {'type': 'boolean'}}}}, 'lastName': {'type': 'string'}, 'addresses': {'type': 'array', 'items': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'code': {'type': 'string', 'description': 'Postal/ZIP code, as a string.'}, 'type': {'type': 'string', 'description': 'e.g. "home", "work", "mailing".'}, 'state': {'type': 'string', 'description': 'Abbreviated state code, e.g. "CA".'}, 'street': {'type': 'string'}, 'country': {'type': 'string'}}}}, 'contacted': {'type': 'boolean'}, 'firstName': {'type': 'string'}, 'mergeTags': {'type': 'boolean', 'description': 'Merge `tags` into the existing tags instead of replacing them.'}, 'assignedTo': {'type': 'string', 'description': 'Full name of the agent.'}, 'background': {'type': 'string', 'description': 'Background notes (multi-line).'}, 'timeframeId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'customFields': {'type': 'object', 'description': 'Account custom fields, keyed by their API name (e.g. {"customBirthday": "1990-02-16"}). See the `name` column of fub_list_custom_fields. null clears a value.', 'propertyNames': {'type': 'string', 'pattern': '^custom[A-Za-z0-9_]+$'}, 'additionalProperties': {'type': ['string', 'number', 'null']}}, 'assignedPondId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'assignedUserId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'assignedLenderId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'assignedLenderName': {'type': 'string'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The task id.', 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'type': {'enum': ['Follow Up', 'Call', 'Text', 'Email', 'Appointment', 'Showing', 'Closing', 'Open House', 'Thank You'], 'type': 'string'}, 'personId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'assignedTo': {'type': 'string'}, 'isCompleted': {'type': 'boolean', 'description': 'Mark complete (true) or reopen (false).'}, 'assignedUserId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}}
Recent tool changes
Similar MCP servers
The Mine Works
Aggregates web research tools for company intelligence, leads, recruiting, social and review data, public records, jobs, securiti…
Scout
Searches real estate listings, agents, brokerages, market data, schools, seller leads, licensing information, and lead referral o…
PropertyList: Spanish Property MLS
Enables searching and valuing Spanish property listings, reviewing market data, and managing agency contacts, listings, leads, no…
inventory
Searches floating-home inventory, returns specifications, pricing, deposit policies, and registers buyer inquiries.
QuickCasa
Provides access to leasing leads, follow-ups, property inventory, and related sites.
Black Label Customer Tools
Provides lead search, parcel search, and audits for owned property-related products.
ActuallyCare
Supports real-estate listings, clients, leads, commissions, and escrow workflows.
neuron
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, p…