_ registry / mcp http-sse · checked 3h ago

dealmachine

https://mcp.dealmachine.com

Registry code: 8c654f02e66d7a6a

api record

Use DealMachine to find who owns US properties, including LLC and company owners, to get owner phones and emails, and for the property research, prospect, list, task, driving or direct mail work the user requests.

The user connects their own DealMachine account through OAuth sign-in from ChatGPT, Claude or another agent; every tool except signup needs that connection.

endpoint
https://mcp.dealmachine.com
protocol
http-sse ·2025-06-18
authentication
bearer
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is dealmachine live?
Yes — it answered the hub's last check (checked 3h ago). It answered 100% of checks over the last 30 days.
Is dealmachine free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does dealmachine have?
129 tools: dealmachine_get_webhooks_id, dealmachine_webhook_list, dealmachine_account, dealmachine_property_search, dealmachine_property_count, dealmachine_delete_mail_designs_id, dealmachine_delete_mail_return_addresses_id, dealmachine_get_mail_campaigns_id, ….
Is dealmachine safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.6%

90 days 99.4%· all time 99.4%

latency
1,274ms

last good check

priced tools
0

of 129 tools

_ answered our checks, 90 days 359 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • down → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • search us property data
  • find property owners
  • enrich leads
takes → gives
text → data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 129 tools
129 auth-required 129 of 129 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • dealmachine_get_webhooks_id auth-required never probed

    Get webhook. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_webhook_list auth-required never probed

    Lists the workspace’s outbound webhooks with their event types and delivery health, plus the catalog of event types when asked. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "include_events": {
          "type": "boolean",
          "description": "Also return the event catalog with example bodies"
        }
      }
    }
    arguments 10 lines
  • dealmachine_account auth-required 19d ago

    Read your active plan and remaining data credits. Free accounts can use this. After Stripe payment, check plan.is_paid and the current balance before retrying approved enrichment. A checkout URL or the user saying they paid is not proof of activation.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • dealmachine_property_search auth-required never probed

    Finds US properties matching locations (required) and filters from the filter list, such as is_corporate_owned for properties owned by a corporation, LLC or business. Returns the properties with their owner contacts (names, phones and emails) by default, or with anchor=people one result per contact. contact_audience selects whose contacts and `none` leaves them out; require_phone keeps contacts with a phone. `estimate_cost=true` returns a credit estimate without records or credit use. Needs a connected DealMachine account with paid access. Returned property data and contacts can consume credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "locations"
      ],
      "properties": {
        "page": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "field_id",
              "direction"
            ],
            "properties": {
              "field_id": {
                "type": "string"
              },
              "direction": {
                "enum": [
                  "asc",
                  "desc"
                ],
                "type": "string"
              }
            }
          }
        },
        "anchor": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string",
          "description": "Default properties; people returns contacts of matching properties"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id",
              "value"
            ],
            "properties": {
              "value": {},
              "operator": {
                "type": "string"
              },
              "filter_id": {
                "type": "string",
                "description": "Valid DealMachine filter ID"
              }
            }
          }
        },
        "per_page": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
              },
              "east": {
                "type": "number"
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string"
              },
              "west": {
                "type": "number"
              },
              "north": {
                "type": "number"
              },
              "south": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "polygon: [[lng,lat],...]"
              },
              "radius_miles": {
                "type": "number"
              }
            },
            "description": "Search area. Locations OR together across the array."
          },
          "minItems": 1
        },
        "estimate_cost": {
          "type": "boolean",
          "description": "true = preview cost, no data returned"
        },
        "require_phone": {
          "type": "boolean",
          "description": "With anchor=people, only contacts with a phone"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "default: owners; \"none\" skips contacts"
        }
      }
    }
    arguments 154 lines
  • dealmachine_property_count auth-required 19d ago

    Counts properties matching locations (required) and filters, such as is_corporate_owned for corporation, LLC or business owners, or with anchor=people their matching contacts. Use the same anchor, contact_audience and require_phone as the search. Needs a connected DealMachine account; counting consumes no credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "locations"
      ],
      "properties": {
        "anchor": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string"
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id",
              "value"
            ],
            "properties": {
              "value": {},
              "operator": {
                "type": "string"
              },
              "filter_id": {
                "type": "string",
                "description": "Valid DealMachine filter ID"
              }
            }
          }
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
              },
              "east": {
                "type": "number"
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string"
              },
              "west": {
                "type": "number"
              },
              "north": {
                "type": "number"
              },
              "south": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "polygon: [[lng,lat],...]"
              },
              "radius_miles": {
                "type": "number"
              }
            },
            "description": "Search area. Locations OR together across the array."
          },
          "minItems": 1
        },
        "require_phone": {
          "type": "boolean",
          "description": "With anchor=people, count only contacts with a phone"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "Required for anchor=people; cannot be none"
        }
      }
    }
    arguments 111 lines
  • dealmachine_delete_mail_designs_id auth-required never probed

    Delete design. Delete a design. Designs used in active campaigns cannot be deleted. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_delete_mail_return_addresses_id auth-required never probed

    Delete return address. Delete a return address. The default return address cannot be deleted — set another as default first. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_get_mail_campaigns_id auth-required 11d ago

    Get campaign. Get a single campaign by ID with steps. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_mail_campaigns_id_recipients auth-required 11d ago

    List campaign recipients. List recipients enrolled in a campaign with their delivery status. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string"
            },
            "per_page": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • dealmachine_get_prospects_id_files_file_id_download auth-required never probed

    Download prospect file. Redirects to a 5-minute signed URL. Pass `?redirect=false` to get the URL as JSON instead. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "file_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "file_id": {
              "type": "string",
              "example": "file_2",
              "description": "File ID, e.g. `file_2`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "redirect": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 39 lines
  • dealmachine_get_prospects_counts auth-required never probed

    Count prospects. Prospect counts by lifecycle and record type, for the workspace or one list. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "list_id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • dealmachine_get_subscription auth-required never probed

    Get subscription status. Get your current subscription status, including plan details, billing cycle, and credit caps. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • dealmachine_patch_webhooks_id auth-required never probed

    Update webhook. Change the URL, events, batch size, contact opt-in, or turn the webhook on or off. Re-enabling clears its failure count. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "maxLength": 2048,
              "minLength": 1
            },
            "batch_max": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1
            },
            "is_active": {
              "type": "boolean",
              "description": "`true` re-enables an endpoint that was turned off or disabled after failures."
            },
            "description": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "event_types": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 60,
                "minLength": 1
              },
              "example": [
                "prospect.added",
                "prospect.lifecycle_changed"
              ],
              "maxItems": 50,
              "minItems": 1,
              "description": "Event types to send, e.g. `[\"prospect.added\"]`. `prospect.*` subscribes to every prospect event and `*` to everything."
            },
            "include_contacts": {
              "type": "boolean"
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 77 lines
  • dealmachine_post_prospects_id_files_upload_url auth-required never probed

    Get file upload URL. Step one of attaching a file: returns a presigned URL to PUT the bytes to (valid 5 minutes, max 25 MB) and the `s3_key` to register afterwards with `POST /files`. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "file_name"
          ],
          "properties": {
            "file_name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "file_size": {
              "type": "integer",
              "maximum": 26214400,
              "minimum": 0
            },
            "content_type": {
              "type": "string",
              "default": "application/octet-stream",
              "maxLength": 100,
              "minLength": 1
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • dealmachine_post_prospects_id_photos auth-required never probed

    Add prospect photo. Attach a photo to the prospect’s property from base64 (small images) or a public https URL (up to 10 MB). Needs an API key created by a user. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "caption": {
              "type": "string",
              "maxLength": 500
            },
            "latitude": {
              "type": "number",
              "maximum": 90,
              "minimum": -90
            },
            "image_url": {
              "type": "string",
              "format": "uri",
              "description": "Public https URL of the image to copy in (max 10 MB)."
            },
            "longitude": {
              "type": "number",
              "maximum": 180,
              "minimum": -180
            },
            "photo_type": {
              "enum": [
                "street_view",
                "property_front",
                "property_side",
                "property_back",
                "condition",
                "damage",
                "other"
              ],
              "type": "string",
              "default": "other"
            },
            "image_base64": {
              "type": "string",
              "minLength": 1,
              "description": "Base64 image (JPEG, PNG, or WebP). Keep the request under 1 MB; use `image_url` for larger files."
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 71 lines
  • dealmachine_post_tags auth-required never probed

    Create tag. Add a workspace tag. Names are unique per workspace and cannot reuse a built-in tag’s name. Up to 200 tags per workspace. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "sort_order": {
              "type": "integer",
              "maximum": 65535,
              "minimum": 0
            },
            "description": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "badge_variant": {
              "enum": [
                "default",
                "secondary",
                "info",
                "warning",
                "destructive"
              ],
              "type": "string",
              "description": "How the tag chip is colored in the app."
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 52 lines
  • dealmachine_post_tags_reorder auth-required never probed

    Reorder tags. Set the display order of workspace tags. IDs not listed keep their order after the listed ones. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "tag_ids"
          ],
          "properties": {
            "tag_ids": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "number"
                ]
              },
              "maxItems": 200,
              "minItems": 1
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • dealmachine_post_webhooks_id_test auth-required never probed

    Send test event. Sends one `ping` event to the URL right now, signed like a real delivery, and returns what came back. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • dealmachine_prospect_search auth-required never probed

    Lists the workspace prospects by lifecycle and source, optionally scoped to a list or a tag, starred only, matching address or name words, by status, by who added them, or by when they were added. Paged, up to 100 per page. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "page": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1
        },
        "sort": {
          "enum": [
            "newest",
            "oldest"
          ],
          "type": "string"
        },
        "search": {
          "type": "string",
          "maxLength": 120,
          "description": "Address words for properties; name or city words for people"
        },
        "source": {
          "enum": [
            "direct",
            "list",
            "favorite",
            "driving",
            "import",
            "opportunity",
            "mail",
            "api",
            "zapier",
            "cli",
            "mcp"
          ],
          "type": "string",
          "description": "How the prospect was added. Use driving for prospects added during drives."
        },
        "status": {
          "type": "array",
          "items": {
            "enum": [
              "hot",
              "warm",
              "cold",
              "follow_up",
              "do_not_contact",
              "none"
            ],
            "type": "string"
          },
          "minItems": 1,
          "description": "Only prospects with any of these statuses; none means no status set"
        },
        "tag_id": {
          "type": "string",
          "description": "Only prospects with this tag, such as `tag_31`"
        },
        "list_id": {
          "type": "string",
          "description": "Only members of this list"
        },
        "added_by": {
          "type": "array",
          "items": {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          },
          "maxItems": 100,
          "minItems": 1,
          "description": "Only prospects added by these user IDs, such as [7, 12]"
        },
        "per_page": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "lifecycle": {
          "enum": [
            "active",
            "opportunity",
            "archived"
          ],
          "type": "string",
          "description": "Defaults to active"
        },
        "added_after": {
          "type": "string",
          "description": "Only prospects added on or after this ISO 8601 date or date-time. A date such as 2026-10-01 means midnight UTC"
        },
        "record_type": {
          "enum": [
            "property",
            "person"
          ],
          "type": "string",
          "description": "Defaults to property"
        },
        "added_before": {
          "type": "string",
          "description": "Only prospects added before this ISO 8601 date or date-time (not including it). A date means midnight UTC"
        },
        "source_group": {
          "enum": [
            "d4d",
            "map"
          ],
          "type": "string",
          "description": "d4d for prospects added while driving; map for prospects added any other way"
        },
        "favorites_only": {
          "type": "boolean"
        }
      }
    }
    arguments 116 lines
  • dealmachine_get_prospects_id_files auth-required never probed

    List prospect files. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_property_export auth-required never probed

    Creates a downloadable CSV of properties or property-owner contacts matching locations and filters. Defaults to owner contact rows (`contact_audience=owners`, `anchor=person`) with names, phones, emails, and property addresses. `contact_audience=none` or `anchor=property` produces property rows without contacts. Exported records can consume credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "locations"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Maximum records to export"
        },
        "anchor": {
          "enum": [
            "person",
            "phone",
            "email",
            "property"
          ],
          "type": "string",
          "description": "default: person for property-owner contact rows"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Additional fields to include. Omit for the owner-contact default fields."
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id",
              "value"
            ],
            "properties": {
              "value": {},
              "operator": {
                "type": "string"
              },
              "filter_id": {
                "type": "string",
                "description": "Valid DealMachine filter ID"
              }
            }
          }
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
              },
              "east": {
                "type": "number"
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string"
              },
              "west": {
                "type": "number"
              },
              "north": {
                "type": "number"
              },
              "south": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "polygon: [[lng,lat],...]"
              },
              "radius_miles": {
                "type": "number"
              }
            },
            "description": "Search area. Locations OR together across the array."
          },
          "minItems": 1
        },
        "scrub_dnc": {
          "type": "boolean",
          "description": "Exclude contacts on the Do Not Call registry"
        },
        "mobile_only": {
          "type": "boolean",
          "description": "Only include wireless phone numbers"
        },
        "landline_only": {
          "type": "boolean",
          "description": "Only include landline phone numbers"
        },
        "require_email": {
          "type": "boolean",
          "description": "Only include contacts with an email address"
        },
        "require_phone": {
          "type": "boolean",
          "description": "Only include contacts with a phone number"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "default: owners; \"none\" creates a property-only export"
        },
        "active_phones_only": {
          "type": "boolean",
          "description": "Only include phone numbers with active reported phone activity"
        }
      }
    }
    arguments 147 lines
  • dealmachine_delete_prospects_id_files_file_id auth-required never probed

    Delete prospect file. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "file_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "file_id": {
              "type": "string",
              "example": "file_2",
              "description": "File ID, e.g. `file_2`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • dealmachine_delete_prospects_id_tags_tag_id auth-required never probed

    Remove tag from prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "tag_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "tag_id": {
              "type": "string",
              "example": "tag_31",
              "description": "Tag ID, e.g. `tag_31`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • dealmachine_delete_tasks_id auth-required never probed

    Delete task. Delete a task. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Task ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_patch_mail_designs_id auth-required never probed

    Update design. Update a design. Supplied HTML is validated before saving. Publishing revalidates both effective draft sides and requires complete front and back HTML. Custom HTML with one outer div declaring inline width and height: 4x6 = 1800 x 1200, 6x9 = 2700 x 1800, 6x11 = 3300 x 1800 CSS pixels. Use inline styles only. Stylesheets, scripts, SVG and embedded documents are unsupported. Put spacing, borders and layout inside the outer div; root transforms, margins and padding are unsupported. Each side must be nonempty and at most 2 MB. Invalid or ambiguous canvases return 400 VALIDATION_ERROR before saving. The API parses and sanitizes HTML without running a browser. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "theme": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 100
                },
                {
                  "type": "null"
                }
              ]
            },
            "layout": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 100
                },
                {
                  "type": "null"
                }
              ]
            },
            "publish": {
              "type": "boolean",
              "description": "Publish the current draft (copies draft HTML to published)"
            },
            "html_back": {
              "type": "string",
              "description": "Custom HTML with one outer div declaring inline width and height: 4x6 = 1800 x 1200, 6x9 = 2700 x 1800, 6x11 = 3300 x 1800 CSS pixels. Use inline styles only. Stylesheets, scripts, SVG and embedded documents are unsupported. Put spacing, borders and layout inside the outer div; root transforms, margins and padding are unsupported. Each side must be nonempty and at most 2 MB. Invalid or ambiguous canvases return 400 VALIDATION_ERROR before saving. The API parses and sanitizes HTML without running a browser."
            },
            "html_front": {
              "type": "string",
              "description": "Custom HTML with one outer div declaring inline width and height: 4x6 = 1800 x 1200, 6x9 = 2700 x 1800, 6x11 = 3300 x 1800 CSS pixels. Use inline styles only. Stylesheets, scripts, SVG and embedded documents are unsupported. Put spacing, borders and layout inside the outer div; root transforms, margins and padding are unsupported. Each side must be nonempty and at most 2 MB. Invalid or ambiguous canvases return 400 VALIDATION_ERROR before saving. The API parses and sanitizes HTML without running a browser."
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 72 lines
  • dealmachine_usage auth-required never probed

    Returns live credit usage for the current billing cycle, including the total cap, spendable balance, monthly and additional pools, and usage by entity type. This read-only request is free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • dealmachine_people_search auth-required never probed

    Returns people matching locations (required) and filters, with their names, phones, emails and primary address plus any requested fields. Filters use the people catalog; property filters return filter_source_mismatch. `estimate_cost=true` returns a credit estimate without records or credit use. Needs a connected DealMachine account with paid access. Returned records can consume credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "locations"
      ],
      "properties": {
        "page": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "field_id",
              "direction"
            ],
            "properties": {
              "field_id": {
                "type": "string"
              },
              "direction": {
                "enum": [
                  "asc",
                  "desc"
                ],
                "type": "string"
              }
            }
          }
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id",
              "value"
            ],
            "properties": {
              "value": {},
              "operator": {
                "type": "string"
              },
              "filter_id": {
                "type": "string",
                "description": "Valid DealMachine filter ID"
              }
            }
          }
        },
        "per_page": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
              },
              "east": {
                "type": "number"
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string"
              },
              "west": {
                "type": "number"
              },
              "north": {
                "type": "number"
              },
              "south": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "polygon: [[lng,lat],...]"
              },
              "radius_miles": {
                "type": "number"
              }
            },
            "description": "Search area. Locations OR together across the array."
          },
          "minItems": 1
        },
        "estimate_cost": {
          "type": "boolean"
        }
      }
    }
    arguments 130 lines
  • dealmachine_people_get auth-required never probed

    Returns one person by DealMachine person ID (id, required), with their name, phones, emails, optional extended fields and associated properties. Needs a connected DealMachine account with paid access. The person costs one people credit; chargeable property fields or associated properties can consume property credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100
        },
        "property_limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "include_properties": {
          "type": "boolean"
        }
      }
    }
    arguments 27 lines
  • dealmachine_delete_lists_list_id auth-required never probed

    Delete list. Delete a list and all its items. This action cannot be undone. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_delete_prospects_id_notes_note_id auth-required never probed

    Delete prospect note. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "note_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "note_id": {
              "type": "string",
              "example": "note_9",
              "description": "Note ID, e.g. `note_9`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • dealmachine_get_driving_drives auth-required 12d ago

    List drives. List recorded drives for the workspace. Each drive reports how many prospects were added. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "mode": {
              "enum": [
                "free_drive",
                "route_plan",
                "area_drive"
              ],
              "type": "string"
            },
            "page": {
              "type": "string"
            },
            "per_page": {
              "type": "string"
            },
            "started_after": {
              "type": "string"
            },
            "driver_user_id": {
              "type": "integer",
              "maximum": 9007199254740991,
              "exclusiveMinimum": 0
            },
            "started_before": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • dealmachine_get_driving_drives_id auth-required 12d ago

    Get drive. Get a recorded drive with its route, events, visits, and links to prospects added during it. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "drive_session_501",
              "description": "Drive ID, e.g. `drive_session_501` or `drive_route_7`."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_exports auth-required never probed

    List exports. List past exports for your organization with optional pagination and status filtering. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "string",
              "description": "Number of exports to return (1-100, default 25)"
            },
            "offset": {
              "type": "string",
              "description": "Number of exports to skip (default 0)"
            },
            "status": {
              "type": "string",
              "description": "Filter by export status (pending, processing, completed, failed)"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • dealmachine_get_lists auth-required 12d ago

    List all lists. List all saved lists for your organization with pagination, search, filtering, and sorting. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "sort": {
              "enum": [
                "newest",
                "oldest",
                "name",
                "name_desc",
                "count",
                "count_asc"
              ],
              "type": "string",
              "description": "Sort order (default: newest)"
            },
            "search": {
              "type": "string",
              "description": "Search lists by name (partial match)"
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            },
            "source_type": {
              "enum": [
                "properties",
                "people"
              ],
              "type": "string",
              "description": "Filter by source type"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • dealmachine_get_lists_list_id_items auth-required 12d ago

    Get list items. Retrieve paginated items in a list. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • dealmachine_get_mail_campaigns_id_analytics auth-required 11d ago

    Campaign analytics. Get delivery and engagement analytics for a campaign. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_mail_return_addresses auth-required never probed

    List return addresses. List all return addresses for your organization. Default address is listed first. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • dealmachine_get_mail_return_addresses_id auth-required never probed

    Get return address. Get a single return address by ID. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_prospects_id_activity auth-required never probed

    List prospect activity. Everything that happened to the prospect’s record in this workspace, newest first: prospect changes, notes, tags, files, lists, mail, and CRM events. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number. Defaults to 1."
            },
            "since": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "description": "Only activity after this ISO 8601 time."
            },
            "category": {
              "type": "string",
              "maxLength": 30,
              "description": "Only this activity category, e.g. `note`, `tag`, `communication`."
            },
            "per_page": {
              "type": "string",
              "description": "Results per page. Defaults to 25. Maximum 100."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 49 lines
  • dealmachine_get_prospects_id_notes auth-required never probed

    List prospect notes. Notes on the prospect, newest first. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number. Defaults to 1."
            },
            "per_page": {
              "type": "string",
              "description": "Results per page. Defaults to 25. Maximum 100."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • dealmachine_get_prospects_id_photos auth-required never probed

    List prospect photos. Photos of the prospect’s property, newest first. Property prospects only. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_tasks auth-required never probed

    List tasks. List all tasks for the organization. Optionally filter by status, search, or assignee. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "search": {
              "type": "string",
              "description": "Search tasks by title"
            },
            "status": {
              "enum": [
                "open",
                "completed",
                "all"
              ],
              "type": "string",
              "description": "Filter by status (default: all)"
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            },
            "assigned_to_user_id": {
              "type": "string",
              "description": "Filter by assigned user ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • dealmachine_get_webhooks_id_deliveries_delivery_id auth-required never probed

    Get webhook delivery. One delivery with the full event body that was (or will be) sent. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "delivery_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            },
            "delivery_id": {
              "type": "string",
              "example": "dlv_9001",
              "description": "Delivery ID, e.g. `dlv_9001`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • dealmachine_post_lists_list_id_build auth-required never probed

    Build list from search filters. Add the records matching the given filters and locations to this list. Records already on the list stay, so building again adds to it. Runs asynchronously: the response is this list with status `building`; poll `GET /v1/lists/{list_id}` until status is `completed`. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "filters": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "filter_id"
                ],
                "properties": {
                  "value": {
                    "example": {
                      "max": 500000,
                      "min": 200000
                    },
                    "description": "Filter value (shape depends on filter type and operator)"
                  },
                  "operator": {
                    "type": "string",
                    "example": "range",
                    "description": "Comparison operator. Optional for BOOLEAN filters (automatically defaults to is_boolean)."
                  },
                  "filter_id": {
                    "type": "string",
                    "example": "estimated_value",
                    "description": "Filter identifier (use GET /v1/filters to discover available filters)"
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 50
            },
            "locations": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "example": "29189",
                    "description": "Location code. Use a state abbreviation, county FIPS, city place ID or exact \"City, ST\" name, or 5-digit ZIP."
                  },
                  "east": {
                    "type": "number",
                    "description": "East longitude of the bounding box (for bounds locations)"
                  },
                  "name": {
                    "type": "string",
                    "example": "Springfield",
                    "description": "Exact city name when a city place ID is unknown."
                  },
                  "type": {
                    "enum": [
                      "state",
                      "county",
                      "city",
                      "zip_code",
                      "school_district",
                      "radius",
                      "polygon",
                      "bounds"
                    ],
                    "type": "string",
                    "example": "county",
                    "description": "Location type"
                  },
                  "west": {
                    "type": "number",
                    "description": "West longitude of the bounding box (for bounds locations)"
                  },
                  "north": {
                    "type": "number",
                    "description": "North latitude of the bounding box (for bounds locations)"
                  },
                  "south": {
                    "type": "number",
                    "description": "South latitude of the bounding box (for bounds locations)"
                  },
                  "state": {
                    "type": "string",
                    "example": "IL",
                    "maxLength": 2,
                    "minLength": 2,
                    "description": "Two-letter state abbreviation used to disambiguate a city name."
                  },
                  "latitude": {
                    "type": "number",
                    "description": "Center latitude for radius locations"
                  },
                  "longitude": {
                    "type": "number",
                    "description": "Center longitude for radius locations"
                  },
                  "coordinates": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    },
                    "description": "Array of [longitude, latitude] coordinate pairs for polygon locations. Minimum 3 points."
                  },
                  "radius_miles": {
                    "type": "number",
                    "description": "Radius in miles for radius locations"
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 15
            },
            "add_as_prospects": {
              "type": "boolean",
              "default": true,
              "description": "Whether the records filed here also become prospects in the workspace. Default true; pass false to build the list without tracking its records as prospects."
            },
            "prospect_search_id": {
              "type": "string",
              "description": "A saved search to record on the list. The build does not read its criteria, so send filters or locations as well."
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 155 lines
  • dealmachine_post_lists_list_id_import auth-required never probed

    Import IDs into list. Add property or person ids to this list, matching the list's source_type. Records already on the list stay, so importing again adds to it. Runs asynchronously: the response is this list with status `building`; poll `GET /v1/lists/{list_id}` until status is `completed`. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "ids"
          ],
          "properties": {
            "ids": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "exclusiveMinimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "^[1-9]\\d*$"
                  }
                ],
                "example": "4611686018455854538",
                "description": "A record id: a positive integer, or the same id as a decimal string. Person ids can exceed the JSON safe integer range (2^53 - 1), so pass those as strings."
              },
              "maxItems": 1000000,
              "minItems": 1
            },
            "source_type": {
              "enum": [
                "properties",
                "people"
              ],
              "type": "string",
              "description": "What the ids are. Defaults to the list's own source_type; any other value is rejected."
            },
            "add_as_prospects": {
              "type": "boolean",
              "default": true,
              "description": "Whether the records filed here also become prospects in the workspace. Default true; pass false to build the list without tracking its records as prospects."
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 69 lines
  • dealmachine_post_mail_designs auth-required never probed

    Create design. Create a mail design from custom HTML, or save a prompt as a draft. Custom HTML with one outer div declaring inline width and height: 4x6 = 1800 x 1200, 6x9 = 2700 x 1800, 6x11 = 3300 x 1800 CSS pixels. Use inline styles only. Stylesheets, scripts, SVG and embedded documents are unsupported. Put spacing, borders and layout inside the outer div; root transforms, margins and padding are unsupported. Each side must be nonempty and at most 2 MB. Invalid or ambiguous canvases return 400 VALIDATION_ERROR before saving. The API parses and sanitizes HTML without running a browser. Publishing requires complete validated front and back HTML. Prompt-only designs cannot be auto-published. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1,
              "description": "Design name"
            },
            "size": {
              "enum": [
                "4x6",
                "6x9",
                "6x11"
              ],
              "type": "string",
              "default": "4x6"
            },
            "theme": {
              "type": "string",
              "maxLength": 100,
              "description": "Theme preset (e.g., professional, warm-friendly)"
            },
            "layout": {
              "type": "string",
              "maxLength": 100,
              "description": "Layout preset (e.g., l-left-image, l-split-equal)"
            },
            "prompt": {
              "type": "string",
              "maxLength": 5000,
              "minLength": 1,
              "description": "Prompt saved with a draft. Supply complete HTML for both sides before publishing."
            },
            "html_back": {
              "type": "string",
              "description": "Custom HTML with one outer div declaring inline width and height: 4x6 = 1800 x 1200, 6x9 = 2700 x 1800, 6x11 = 3300 x 1800 CSS pixels. Use inline styles only. Stylesheets, scripts, SVG and embedded documents are unsupported. Put spacing, borders and layout inside the outer div; root transforms, margins and padding are unsupported. Each side must be nonempty and at most 2 MB. Invalid or ambiguous canvases return 400 VALIDATION_ERROR before saving. The API parses and sanitizes HTML without running a browser."
            },
            "html_front": {
              "type": "string",
              "description": "Custom HTML with one outer div declaring inline width and height: 4x6 = 1800 x 1200, 6x9 = 2700 x 1800, 6x11 = 3300 x 1800 CSS pixels. Use inline styles only. Stylesheets, scripts, SVG and embedded documents are unsupported. Put spacing, borders and layout inside the outer div; root transforms, margins and padding are unsupported. Each side must be nonempty and at most 2 MB. Invalid or ambiguous canvases return 400 VALIDATION_ERROR before saving. The API parses and sanitizes HTML without running a browser."
            },
            "orientation": {
              "type": "string",
              "const": "landscape",
              "default": "landscape",
              "description": "Postcard orientation. Portrait is temporarily unavailable."
            },
            "auto_publish": {
              "type": "boolean",
              "default": false,
              "description": "Publish only when both sides have complete validated HTML; prompt-only designs remain drafts"
            },
            "include_street_view": {
              "type": "boolean",
              "default": true,
              "description": "Include a Street View image placeholder in the design"
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 75 lines
  • dealmachine_post_mail_return_addresses_id_default auth-required never probed

    Set default return address. Set a return address as the default for your organization. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_post_phones_dnc auth-required never probed

    Check DNC status. Check Do Not Call (DNC) registry status and phone type for an array of phone numbers. Returns DNC status and phone type without performing a full person enrichment. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "phones"
          ],
          "properties": {
            "phones": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "number"
                ],
                "properties": {
                  "number": {
                    "type": "string",
                    "example": "5125551234",
                    "description": "Phone number (digits only or with formatting)"
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 1000,
              "minItems": 1,
              "description": "Array of phone numbers to check (max 1,000)"
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 43 lines
  • dealmachine_post_webhooks_id_rotate_secret auth-required never probed

    Rotate webhook secret. Issue a new signing secret. The old one keeps validating signatures for 24 hours so your consumer can switch over. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • dealmachine_prospect_add auth-required never probed

    Tracks one record or up to 1,000 records as prospects in the workspace. Records that are prospects already are returned unchanged; archived ones come back to active. Free; no credits are charged.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "record_ids"
      ],
      "properties": {
        "favorite": {
          "type": "boolean",
          "description": "Also star them for the connected user"
        },
        "record_ids": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "number"
            ]
          },
          "maxItems": 1000,
          "minItems": 1,
          "description": "Record IDs such as `prop_12345` or `person_777`, or bare numbers"
        },
        "record_type": {
          "enum": [
            "property",
            "person",
            "company"
          ],
          "type": "string",
          "description": "What kind of record. Defaults to property."
        }
      }
    }
    arguments 34 lines
  • dealmachine_mail_campaign_send auth-required never probed

    Launches a draft mail campaign and spends wallet dollars for its recipients and scheduled steps.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_id",
        "confirmed"
      ],
      "properties": {
        "confirmed": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the user approves the current cost estimate"
        },
        "campaign_id": {
          "type": "string",
          "minLength": 1
        }
      }
    }
    arguments 19 lines
  • dealmachine_mail_campaign_cancel auth-required never probed

    Cancels a mail campaign, kept for existing clients. A started campaign ends as with dealmachine_mail_campaign_end; a draft is cancelled; a campaign that has already ended is returned unchanged. Unsent mail stops, while mail already submitted still delivers.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_id",
        "confirmed"
      ],
      "properties": {
        "confirmed": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the user approves cancelling this campaign"
        },
        "campaign_id": {
          "type": "string",
          "minLength": 1
        }
      }
    }
    arguments 19 lines
  • dealmachine_get_webhooks_events auth-required never probed

    List webhook event types. Every event a webhook can subscribe to, with a description and a full example request body. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • dealmachine_post_enrichment_reverse_geocode auth-required never probed

    Reverse geocode. Look up properties by latitude/longitude coordinates (reverse geocoding). Returns the closest property within 300 feet. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "data"
          ],
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "latitude",
                  "longitude"
                ],
                "properties": {
                  "latitude": {
                    "type": "number",
                    "example": 30.25,
                    "description": "Latitude"
                  },
                  "longitude": {
                    "type": "number",
                    "example": -97.75,
                    "description": "Longitude"
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 250,
              "minItems": 1,
              "description": "Array of coordinates to look up (max 250)"
            },
            "fields": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [],
              "example": [
                "estimated_household_income",
                "estimated_value"
              ],
              "maxItems": 100,
              "description": "Field IDs from GET /v1/fields. People fields return on each person; property fields return under property."
            },
            "contact_audience": {
              "enum": [
                "owners",
                "owners_and_family",
                "renters",
                "residents",
                "none"
              ],
              "type": "string",
              "description": "Which contacts to include with matched properties. Returned contacts consume people credits. Use \"none\" for property data only with zero people credits."
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 73 lines
  • dealmachine_signup auth-required never probed

    Start a free DealMachine account. Returns the secure browser signup URL. Ask the user to finish signup and connect DealMachine using OAuth. Never ask for passwords, payment details or API keys in chat. Signup does not purchase a plan.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • dealmachine_enrich_address auth-required never probed

    Finds who owns a US property from its street address, given as full_address or as street, city, state and zip. Returns the property details; with contact_audience=owners it also returns the owners with their names, phones (with DNC flags) and emails. Contacts are left out unless contact_audience is set. Needs a connected DealMachine account with paid access. A matched property costs one property credit and returned contacts cost people credits; nothing is charged when no property matches.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "zip": {
          "type": "string",
          "description": "5-digit ZIP code"
        },
        "city": {
          "type": "string",
          "description": "City name"
        },
        "state": {
          "type": "string",
          "description": "Two-letter state code"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine property field IDs to include in results"
        },
        "street": {
          "type": "string",
          "description": "Street address component only (e.g. \"123 Main St\"); separate city, state, and ZIP fields are available"
        },
        "full_address": {
          "type": "string",
          "description": "Complete address string (e.g. \"123 Main St, Austin, TX 78701\"), as an alternative to the parsed address fields"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "`none` returns property-only data with zero people credits; other values include matching contacts"
        }
      }
    }
    arguments 45 lines
  • dealmachine_enrich_latlng auth-required never probed

    Finds the property closest to a latitude and longitude, within 300 feet, and who owns it. Returns the property details; with contact_audience=owners it also returns the owners with their names, phones (with DNC flags) and emails. Contacts are left out unless contact_audience is set. Needs a connected DealMachine account with paid access. A matched property costs one property credit and returned contacts cost people credits; nothing is charged when no property matches.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "latitude",
        "longitude"
      ],
      "properties": {
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine property field IDs to include in results"
        },
        "latitude": {
          "type": "number",
          "description": "Latitude"
        },
        "longitude": {
          "type": "number",
          "description": "Longitude"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "`none` returns property-only data with zero people credits; other values include matching contacts"
        }
      }
    }
    arguments 37 lines
  • dealmachine_enrich_apn auth-required never probed

    Finds who owns a property from its Assessor's Parcel Number: one apn, or up to 250 in data sharing the same location and options. A location narrows the match, and APN formatting is normalized automatically. Returns the property details; with contact_audience=owners it also returns the owners with their names, phones (with DNC flags) and emails. Contacts are left out unless contact_audience is set. Needs a connected DealMachine account with paid access. Each matched property costs one property credit and returned contacts cost people credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "apn": {
          "type": "string",
          "description": "Assessor's Parcel Number (e.g. \"0123-45-6789\")"
        },
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "apn"
            ],
            "properties": {
              "apn": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "maxItems": 250,
          "minItems": 1,
          "description": "Batch of parcel lookups sharing the location and requested fields. Prefer one batch when the user requests multiple lookups."
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine property field IDs to include in results"
        },
        "location": {
          "type": "object",
          "required": [
            "type",
            "code"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
            },
            "type": {
              "enum": [
                "state",
                "zip_code",
                "county",
                "city"
              ],
              "type": "string",
              "description": "Location type"
            }
          },
          "description": "Optional location to narrow results, including a city place ID"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "`none` returns property-only data with zero people credits; other values include matching contacts"
        }
      }
    }
    arguments 71 lines
  • dealmachine_enrich_email auth-required never probed

    Looks up a person by email address (email, required). Returns their name, contact information including phones and emails, and demographics; include_properties=true adds the properties associated with them. Needs a connected DealMachine account with paid access. Each matched person costs one people credit and each included property one property credit; nothing is charged when no one matches.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
          "description": "Email address"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit"
        },
        "location": {
          "type": "object",
          "required": [
            "type",
            "code"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
            },
            "type": {
              "enum": [
                "state",
                "zip_code",
                "county",
                "city"
              ],
              "type": "string",
              "description": "Location type"
            }
          },
          "description": "Optional match location by state, ZIP, county, or numeric city place ID"
        },
        "include_properties": {
          "type": "boolean",
          "description": "Include associated properties for each matched person. Costs 1 property data credit per property."
        }
      }
    }
    arguments 51 lines
  • dealmachine_enrich_phone auth-required never probed

    Looks up a person by phone number (phone, required). Returns their name, contact information including phones and emails, and demographics; include_properties=true adds the properties associated with them. Needs a connected DealMachine account with paid access. Each matched person costs one people credit and each included property one property credit; nothing is charged when no one matches.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "phone"
      ],
      "properties": {
        "phone": {
          "type": "string",
          "description": "Phone number (e.g. \"5551234567\" or \"+15551234567\")"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit"
        },
        "location": {
          "type": "object",
          "required": [
            "type",
            "code"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
            },
            "type": {
              "enum": [
                "state",
                "zip_code",
                "county",
                "city"
              ],
              "type": "string",
              "description": "Location type"
            }
          },
          "description": "Optional match location by state, ZIP, county, or numeric city place ID"
        },
        "include_properties": {
          "type": "boolean",
          "description": "Include associated properties for each matched person. Costs 1 property data credit per property."
        }
      }
    }
    arguments 49 lines
  • dealmachine_enrich_name auth-required never probed

    Finds people by name: one last_name, optionally with first_name and middle_initial, or up to 250 names in data sharing location, pagination and options. A location narrows the match. Returns paginated people with contact information including phones and emails; include_properties=true adds the properties associated with them. `estimate_cost=true` returns people and associated-property counts without records or credit use. Needs a connected DealMachine account with paid access. Each returned person costs one people credit and associated properties cost property credits; batching reduces requests, not credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "last_name"
            ],
            "properties": {
              "last_name": {
                "type": "string",
                "minLength": 1
              },
              "first_name": {
                "type": "string"
              },
              "middle_initial": {
                "type": "string",
                "maxLength": 1
              }
            }
          },
          "maxItems": 250,
          "minItems": 1,
          "description": "Batch of name lookups sharing location, fields and pagination. Prefer batching multiple requested lookups."
        },
        "page": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page number (default: 1)"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit"
        },
        "location": {
          "type": "object",
          "required": [
            "type",
            "code"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
            },
            "type": {
              "enum": [
                "state",
                "zip_code",
                "county",
                "city"
              ],
              "type": "string",
              "description": "Location type"
            }
          },
          "description": "Optional match location by state, ZIP, county, or numeric city place ID"
        },
        "per_page": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page (default: 25, max: 100)"
        },
        "last_name": {
          "type": "string",
          "description": "Last name (required for a single lookup)"
        },
        "first_name": {
          "type": "string",
          "description": "First name to narrow results"
        },
        "estimate_cost": {
          "type": "boolean",
          "description": "Preview people counts and, when include_properties=true, associated property counts and estimated credits without returning data or consuming credits"
        },
        "middle_initial": {
          "type": "string",
          "maxLength": 1,
          "description": "Middle initial (single character) to narrow results"
        },
        "include_properties": {
          "type": "boolean",
          "description": "Include associated properties for each person. Costs 1 property data credit per property."
        }
      }
    }
    arguments 96 lines
  • dealmachine_filters auth-required 19d ago

    Returns DealMachine search filters with filter IDs, source types, operators, and valid options. A `search` value performs a fuzzy concept match across labels, aliases, and option values; without it, the response includes all pages. This read-only request is free of data credit charges, but an uncached read counts toward the API request limit. Reuse these definitions for subsequent lookups; identical requests are cached for 15 minutes.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "search": {
          "type": "string",
          "description": "Fuzzy concept search across filter metadata"
        },
        "group_id": {
          "type": "string",
          "description": "Filter by group ID"
        },
        "source_type": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string",
          "description": "Filter by source type (properties or people)"
        }
      }
    }
    arguments 22 lines
  • dealmachine_fields auth-required 19d ago

    Returns available DealMachine data fields with field ID, source type, data type, and description. A `search` value performs a fuzzy match across field metadata; without it, the response includes all pages. This read-only request is free of data credit charges, but an uncached read counts toward the API request limit. Reuse these definitions for subsequent lookups; identical requests are cached for 15 minutes.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "search": {
          "type": "string",
          "description": "Fuzzy concept search across field metadata"
        },
        "group_id": {
          "type": "string",
          "description": "Filter by group ID"
        },
        "source_type": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string",
          "description": "Filter by source type"
        }
      }
    }
    arguments 22 lines
  • dealmachine_whoami auth-required never probed

    Returns whether the current credential is valid, the active organization name, and the authentication type. This read-only request is free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • dealmachine_property_get auth-required never probed

    Returns one property by DealMachine property ID (id, required), with its owners and their names, phones and emails by default. `contact_audience=none` returns property-only data. Needs a connected DealMachine account with paid access. Enriched data costs one property credit unless `enrich=false`; owner contacts cost people credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "prop_XXXXX"
        },
        "enrich": {
          "type": "boolean",
          "description": "false = base fields only, 0 credits"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "description": "DealMachine property field IDs"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "default: owners; use none for property-only data with zero people credits"
        }
      }
    }
    arguments 36 lines
  • dealmachine_property_get_many auth-required never probed

    Returns up to 25 properties by DealMachine property ID (ids, required), with their owners and their names, phones and emails by default. `contact_audience=none` returns property-only data. Needs a connected DealMachine account with paid access. Owner contacts cost people credits; same-cycle repeats are free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "ids"
      ],
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 25,
          "minItems": 1
        },
        "enrich": {
          "type": "boolean"
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "default: owners; use none for property-only data with zero people credits"
        }
      }
    }
    arguments 31 lines
  • dealmachine_comps auth-required never probed

    Find comparable sales + active listings for up to 25 subject properties. Costs 1 property data credit per subject found. Location/criteria optional (sensible defaults).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "property_ids"
      ],
      "properties": {
        "criteria": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1
            },
            "sort_by": {
              "enum": [
                "distance",
                "price",
                "date",
                "match"
              ],
              "type": "string"
            },
            "timeframe": {
              "enum": [
                "3months",
                "6months",
                "12months",
                "all"
              ],
              "type": "string"
            },
            "max_sale_price": {
              "type": "number",
              "minimum": 0
            },
            "max_year_built": {
              "type": "integer",
              "maximum": 9999,
              "minimum": 1,
              "description": "Latest year built, inclusive. Either year bound excludes unknown years."
            },
            "min_sale_price": {
              "type": "number",
              "minimum": 0
            },
            "min_year_built": {
              "type": "integer",
              "maximum": 9999,
              "minimum": 1,
              "description": "Earliest year built, inclusive. Omit both year bounds for no year filter."
            },
            "property_types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "sort_direction": {
              "enum": [
                "asc",
                "desc"
              ],
              "type": "string"
            },
            "include_pending": {
              "type": "boolean"
            },
            "bedroom_tolerance": {
              "type": "number",
              "maximum": 10,
              "minimum": 0
            },
            "bathroom_tolerance": {
              "type": "number",
              "maximum": 10,
              "minimum": 0
            },
            "max_days_on_market": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": 1
            },
            "max_price_per_sqft": {
              "type": "number",
              "minimum": 0
            },
            "min_price_per_sqft": {
              "type": "number",
              "minimum": 0
            },
            "match_property_type": {
              "type": "boolean"
            },
            "include_foreclosures": {
              "type": "boolean"
            },
            "sqft_tolerance_percent": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            },
            "include_active_listings": {
              "type": "boolean"
            },
            "lot_size_tolerance_percent": {
              "type": "number",
              "maximum": 100,
              "minimum": 0
            }
          }
        },
        "location": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "east": {
              "type": "number"
            },
            "type": {
              "enum": [
                "radius",
                "polygon",
                "bounds"
              ],
              "type": "string"
            },
            "west": {
              "type": "number"
            },
            "north": {
              "type": "number"
            },
            "south": {
              "type": "number"
            },
            "latitude": {
              "type": "number"
            },
            "longitude": {
              "type": "number"
            },
            "coordinates": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "maxItems": 2,
                "minItems": 2
              },
              "minItems": 3
            },
            "radius_miles": {
              "type": "number",
              "maximum": 25,
              "minimum": 0.1
            }
          }
        },
        "property_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 25,
          "minItems": 1
        }
      }
    }
    arguments 174 lines
  • dealmachine_people_count auth-required 19d ago

    Count matching people without consuming credits. Filters use the people catalog.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "locations"
      ],
      "properties": {
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id",
              "value"
            ],
            "properties": {
              "value": {},
              "operator": {
                "type": "string"
              },
              "filter_id": {
                "type": "string",
                "description": "Valid DealMachine filter ID"
              }
            }
          }
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
              },
              "east": {
                "type": "number"
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string"
              },
              "west": {
                "type": "number"
              },
              "north": {
                "type": "number"
              },
              "south": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "polygon: [[lng,lat],...]"
              },
              "radius_miles": {
                "type": "number"
              }
            },
            "description": "Search area. Locations OR together across the array."
          },
          "minItems": 1
        }
      }
    }
    arguments 89 lines
  • dealmachine_people_get_many auth-required never probed

    Returns up to 250 people by DealMachine person ID (ids, required), with their names, phones, emails, optional extended fields and associated properties. Needs a connected DealMachine account with paid access. Each found person costs one people credit; chargeable property fields or associated properties can consume property credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "ids"
      ],
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 250,
          "minItems": 1
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 100
        },
        "property_limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "include_properties": {
          "type": "boolean"
        }
      }
    }
    arguments 32 lines
  • dealmachine_location_search auth-required 19d ago

    Returns location identifiers for a name query, including FIPS, ZIP, city place, state, and county IDs. This read-only request is free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1
        },
        "page": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1
        },
        "type": {
          "enum": [
            "state",
            "county",
            "city",
            "zip_code"
          ],
          "type": "string"
        },
        "state": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2,
          "description": "2-letter abbrev to narrow results"
        },
        "per_page": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        }
      }
    }
    arguments 38 lines
  • dealmachine_delete_lists_list_id_items auth-required never probed

    Remove items from list. Remove specific property or person IDs from a list. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "ids"
          ],
          "properties": {
            "ids": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "exclusiveMinimum": 0
                  },
                  {
                    "type": "string",
                    "pattern": "^[1-9]\\d*$"
                  }
                ],
                "example": "4611686018455854538",
                "description": "A record id: a positive integer, or the same id as a decimal string. Person ids can exceed the JSON safe integer range (2^53 - 1), so pass those as strings."
              },
              "maxItems": 10000,
              "minItems": 1
            },
            "id_type": {
              "enum": [
                "internal_property_id",
                "internal_person_id"
              ],
              "type": "string",
              "default": "internal_property_id"
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 64 lines
  • dealmachine_delete_prospects_id auth-required never probed

    Remove prospect. Archive the prospect and end its mail. Its notes, files, and activity are kept; it can be added again later. Pass `?cascade=false` to keep its list memberships and open opportunities. Mail always ends. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "cascade": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • dealmachine_delete_prospects_id_photos_photo_id auth-required never probed

    Delete prospect photo. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "photo_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "photo_id": {
              "type": "string",
              "example": "photo_44",
              "description": "Photo ID, e.g. `photo_44`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • dealmachine_delete_tags_id auth-required never probed

    Delete tag. Delete a workspace tag. Returns 409 while prospects still carry it unless `force=true`, which removes it from them first. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "tag_31",
              "description": "Tag ID, e.g. `tag_31`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "force": {
              "type": "string",
              "description": "`true` removes the tag from every prospect first."
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • dealmachine_delete_webhooks_id auth-required never probed

    Delete webhook. Removes the webhook and its delivery log. Nothing more is sent to the URL. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • dealmachine_get_activity_activity_id auth-required 12d ago

    Get activity. Retrieve the full details of a specific activity record, including the complete original request parameters and paginated entity IDs. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "activity_id"
          ],
          "properties": {
            "activity_id": {
              "type": "string",
              "example": "act_r7s8t9u0",
              "description": "The activity ID to retrieve"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_addresses_autocomplete auth-required never probed

    Autocomplete property addresses. Return fast, bounded street-address suggestions from DealMachine property data. Every suggestion includes a DealMachine property ID and may include a normalized city or county location. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "object",
          "required": [
            "q"
          ],
          "properties": {
            "q": {
              "type": "string",
              "example": "1200 Barton Springs",
              "maxLength": 200,
              "minLength": 2,
              "description": "Partial US property street address"
            },
            "limit": {
              "type": "integer",
              "default": 5,
              "example": 5,
              "maximum": 10,
              "minimum": 1,
              "description": "Maximum suggestions to return. Defaults to 5 and cannot exceed 10."
            },
            "state": {
              "type": "string",
              "example": "TX",
              "maxLength": 2,
              "minLength": 2,
              "description": "Optional two-letter state abbreviation"
            },
            "latitude": {
              "anyOf": [
                {
                  "type": "number",
                  "maximum": 90,
                  "minimum": -90,
                  "description": "Optional latitude used with longitude to rank nearby addresses"
                },
                {
                  "type": "null"
                }
              ]
            },
            "longitude": {
              "anyOf": [
                {
                  "type": "number",
                  "maximum": 180,
                  "minimum": -180,
                  "description": "Optional longitude used with latitude to rank nearby addresses"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 67 lines
  • dealmachine_get_exports_exportId auth-required never probed

    Get export by ID. Retrieve a single export by its ID. Only exports belonging to your organization are accessible. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "exportId"
          ],
          "properties": {
            "exportId": {
              "type": "string",
              "example": "abc-123",
              "description": "Export ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_lists_list_id auth-required 12d ago

    Get list by ID. Retrieve a list by its ID including build status, progress, and total count. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_locations_locationId auth-required 12d ago

    Get location. Retrieve a specific location by its ID. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "locationId"
          ],
          "properties": {
            "locationId": {
              "type": "string",
              "example": "loc_county_48201",
              "description": "Location ID (e.g., loc_county_48201 or loc_city_7333)"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_mail_analytics_summary auth-required 12d ago

    Get mail analytics summary. Get account-wide mail analytics: totals across all campaigns (sent, delivered, failed, opens, unique openers, average open rate) plus a paginated list of campaigns with per-campaign engagement. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "end_date": {
              "type": "string",
              "description": "End of the date range (ISO, inclusive). Filters by campaign launch date."
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            },
            "start_date": {
              "type": "string",
              "description": "Start of the date range (ISO, inclusive). Filters by campaign launch date."
            },
            "launched_only": {
              "enum": [
                "true",
                "false"
              ],
              "type": "string",
              "description": "Only include campaigns that have been launched (default false)"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • dealmachine_get_mail_analytics_timeseries auth-required 12d ago

    Get mail analytics time series. Get an account-wide time series for a single metric — sent, delivered, scans (QR/link views), or open_rate — bucketed by day or week. Missing buckets are filled with zeroes so the series is continuous. For "scans", each point also includes secondary_value (total scans vs unique properties). Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "days": {
              "type": "string",
              "description": "Number of days back from today when no date range is given (1-365, default 30)"
            },
            "metric": {
              "enum": [
                "sent",
                "delivered",
                "scans",
                "open_rate"
              ],
              "type": "string",
              "default": "sent",
              "description": "Metric to chart over time (default sent)"
            },
            "end_date": {
              "type": "string",
              "description": "End of the date range (ISO, defaults to now)."
            },
            "group_by": {
              "enum": [
                "day",
                "week"
              ],
              "type": "string",
              "default": "day",
              "description": "Bucket size for each data point (default day)"
            },
            "start_date": {
              "type": "string",
              "description": "Start of the date range (ISO). Overrides \"days\" when provided."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • dealmachine_get_mail_campaigns auth-required 11d ago

    List campaigns. List mail campaigns for your organization with optional filtering. Each campaign has one of six statuses: draft, ready, active, paused, ended or archived. Use accepting_properties=true to list the campaigns properties can be added to now. Archived campaigns are excluded unless status=archived is supplied. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "search": {
              "type": "string",
              "description": "Search by campaign name"
            },
            "status": {
              "enum": [
                "draft",
                "ready",
                "active",
                "paused",
                "ended",
                "archived",
                "completed",
                "cancelled"
              ],
              "type": "string",
              "description": "Filter by campaign status: draft, ready, active, paused, ended or archived. The older values completed and cancelled still work and match the ended campaigns they matched before."
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            },
            "accepting_properties": {
              "enum": [
                "true",
                "false"
              ],
              "type": "string",
              "description": "true returns only campaigns properties can be added to now (they accept properties and are ready, active or paused)."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 47 lines
  • dealmachine_get_mail_campaigns_id_cost_estimate auth-required 11d ago

    Estimate campaign cost. Get a cost estimate for launching a campaign, including wallet balance check. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_mail_campaigns_id_properties_estimate auth-required 11d ago

    Estimate adding properties. What adding a number of properties to the campaign would cost: the charge due today, the amount charged later as later pieces go out, and whether your wallet or auto-reload covers it. Nothing is added or charged. The count is an upper bound; properties skipped when you add them are not charged. For a paused campaign the charge due today is 0 and charged_on_resume is true: each piece is charged as it goes out after the campaign resumes. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path",
        "query"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "required": [
            "count"
          ],
          "properties": {
            "count": {
              "type": "string",
              "example": "25",
              "description": "How many properties you plan to add, a whole number from 1 to 5000"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • dealmachine_get_mail_designs auth-required never probed

    List designs. List mail designs for your organization. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "size": {
              "enum": [
                "4x6",
                "6x9",
                "6x11"
              ],
              "type": "string",
              "description": "Filter by postcard size"
            },
            "search": {
              "type": "string",
              "description": "Search by design name"
            },
            "status": {
              "enum": [
                "draft",
                "active",
                "archived"
              ],
              "type": "string",
              "description": "Filter by design status"
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 43 lines
  • dealmachine_get_mail_designs_id auth-required never probed

    Get design. Get a single design by ID, including HTML content. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_mail_settings auth-required never probed

    Get mail settings. Get the organization-level mail settings that act as defaults for new campaigns — default postcard size, sender name, contact frequency limit, QR code URL, and signature image. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • dealmachine_get_mail_wallet_balance auth-required never probed

    Get wallet balance. Get the current wallet balance, including pending charges and auto-reload settings. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • dealmachine_get_mail_wallet_pricing auth-required never probed

    Get mail pricing. Get postcard pricing for your plan. Prices are in cents per postcard. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • dealmachine_get_mail_wallet_transactions auth-required never probed

    List wallet transactions. List wallet transaction history with optional filtering. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "description": "Page number (default 1)"
            },
            "type": {
              "type": "string",
              "description": "Filter by transaction type (purchase, spend, refund, etc.)"
            },
            "per_page": {
              "type": "string",
              "description": "Results per page (1-100, default 25)"
            },
            "campaign_id": {
              "type": "string",
              "description": "Filter by campaign ID"
            },
            "reference_type": {
              "type": "string",
              "description": "Filter by reference type (campaign, stripe_payment, etc.)"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • dealmachine_get_prospects_id_notes_note_id auth-required never probed

    Get prospect note. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "note_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "note_id": {
              "type": "string",
              "example": "note_9",
              "description": "Note ID, e.g. `note_9`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • dealmachine_get_prospects_id_tags auth-required never probed

    List prospect tags. The tag catalog with an `assigned` flag for this prospect. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_prospects_by_record auth-required never probed

    Get prospect by record. Look up the prospect that tracks a property, person, or company, if there is one. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "object",
          "required": [
            "record_id"
          ],
          "properties": {
            "record_id": {
              "type": "string",
              "description": "Record ID: `prop_123`, `person_456`, or the bare number."
            },
            "record_type": {
              "enum": [
                "property",
                "person",
                "company"
              ],
              "type": "string",
              "default": "property",
              "description": "What kind of record the prospect tracks."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • dealmachine_get_tags_id auth-required never probed

    Get tag. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "tag_31",
              "description": "Tag ID, e.g. `tag_31`"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 24 lines
  • dealmachine_get_tasks_id auth-required never probed

    Get task. Get a single task by ID. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Task ID"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • dealmachine_get_webhooks_id_deliveries auth-required never probed

    List webhook deliveries. The delivery log for one webhook, newest first: status, attempts, response code and time, and any error. Retrieves data without changing records or spending credits.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            "status": {
              "enum": [
                "pending",
                "processing",
                "delivered",
                "failed",
                "abandoned",
                "skipped"
              ],
              "type": "string"
            },
            "per_page": {
              "type": "string"
            },
            "event_type": {
              "type": "string",
              "maxLength": 60
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 56 lines
  • dealmachine_patch_lists_list_id auth-required never probed

    Update list. Update the name of a list. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • dealmachine_patch_mail_campaigns_id auth-required never probed

    Update campaign. Update a draft campaign. Only draft campaigns can be updated. Audience updates must use exactly one of property_ids, contact_ids, or list_ids. Sending steps replaces the whole step set, so include every step you want to keep. To add properties to a ready, active or paused campaign, use POST /campaigns/{id}/properties. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "steps": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "design_id": {
                    "type": "string",
                    "description": "Existing design ID to use"
                  },
                  "delay_days": {
                    "type": "integer",
                    "default": 0,
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "description": "Days to wait after the previous step"
                  },
                  "repeat_count": {
                    "type": "integer",
                    "default": 1,
                    "maximum": 12,
                    "minimum": 1,
                    "description": "How many times to send this step (1-12)"
                  },
                  "design_prompt": {
                    "type": "string",
                    "description": "Prompt to generate an HTML design on the fly"
                  },
                  "interval_days": {
                    "type": "integer",
                    "default": 0,
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "description": "Days between repeated sends"
                  },
                  "skip_if_responded": {
                    "type": "boolean",
                    "default": false,
                    "description": "Skip this step if the recipient has responded"
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 5,
              "minItems": 1,
              "description": "Replace the campaign mail steps (1-5). Steps are replaced as a set, so send every step you want to keep, not just the changed one."
            },
            "list_ids": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "address_to": {
              "enum": [
                "owner",
                "resident"
              ],
              "type": "string"
            },
            "contact_ids": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  },
                  {
                    "type": "string",
                    "pattern": "^[1-9]\\d*$"
                  }
                ]
              }
            },
            "description": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 5000
                },
                {
                  "type": "null"
                }
              ]
            },
            "qr_code_url": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "contact_name": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "property_ids": {
              "type": "array",
              "items": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              }
            },
            "contact_email": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "contact_phone": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 50
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 177 lines
  • dealmachine_patch_mail_return_addresses_id auth-required never probed

    Update return address. Update a return address. If address fields change, the new address is re-validated via USPS. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "zip": {
              "type": "string",
              "maxLength": 10,
              "minLength": 5
            },
            "city": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "label": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 100
                },
                {
                  "type": "null"
                }
              ]
            },
            "state": {
              "type": "string",
              "maxLength": 2,
              "minLength": 2
            },
            "address_1": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "address_2": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 80 lines
  • dealmachine_patch_mail_settings auth-required never probed

    Update mail settings. Update one or more organization-level mail settings. Only the fields you include are changed; omitted fields are left untouched. Pass null to clear a setting back to its default. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "default_qr_code_url": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri",
                  "description": "Default QR code destination URL for new campaigns"
                },
                {
                  "type": "null"
                }
              ]
            },
            "default_sender_name": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 255,
                  "description": "Default sender name pre-filled on new campaigns"
                },
                {
                  "type": "null"
                }
              ]
            },
            "default_postcard_size": {
              "anyOf": [
                {
                  "anyOf": [
                    {
                      "type": "string",
                      "const": "4x6"
                    },
                    {
                      "type": "string",
                      "const": "6x9"
                    },
                    {
                      "type": "string",
                      "const": "6x11"
                    },
                    {
                      "type": "null",
                      "const": null
                    }
                  ],
                  "description": "Default postcard size for new campaigns"
                },
                {
                  "type": "null"
                }
              ]
            },
            "default_signature_image_url": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri",
                  "description": "Default signature image URL applied to new campaigns"
                },
                {
                  "type": "null"
                }
              ]
            },
            "contact_frequency_limit_days": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 3650,
                  "minimum": 0,
                  "description": "Minimum days between mailings to the same contact (0-3650)"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 94 lines
  • dealmachine_patch_prospects auth-required never probed

    Move prospects in bulk. Move the prospects for up to 1,000 records between active, opportunity, and archived in one call: the bulk form of the single update, and what the app’s selection action bar runs. Records that are not prospects are skipped, as are prospects already in the requested lifecycle; the response counts each. Archiving always ends each prospect’s mail and, unless `cascade` is false, closes its open opportunities. List memberships are kept either way. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "record_ids",
            "lifecycle"
          ],
          "properties": {
            "cascade": {
              "type": "boolean",
              "default": true,
              "description": "When archiving: also close each prospect’s open opportunities. Mail always ends, including when false. List memberships are kept either way. Default true."
            },
            "lifecycle": {
              "enum": [
                "active",
                "opportunity",
                "archived"
              ],
              "type": "string",
              "description": "Where every prospect in the selection moves. Records that are not prospects, and prospects already there, are skipped and counted."
            },
            "record_ids": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "number"
                ],
                "description": "Record ID: `prop_123`, `person_456`, `company_7`, or the bare number."
              },
              "maxItems": 1000,
              "minItems": 1
            },
            "record_type": {
              "enum": [
                "property",
                "person",
                "company"
              ],
              "type": "string",
              "default": "property",
              "description": "What kind of record the prospect tracks."
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 57 lines
  • dealmachine_patch_prospects_id_notes_note_id auth-required never probed

    Edit prospect note. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "body"
          ],
          "properties": {
            "body": {
              "type": "string",
              "maxLength": 10000,
              "minLength": 1
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id",
            "note_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "note_id": {
              "type": "string",
              "example": "note_9",
              "description": "Note ID, e.g. `note_9`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 48 lines
  • dealmachine_patch_tags_id auth-required never probed

    Update tag. Rename, describe, recolor, reorder, or archive a workspace tag. Built-in tags return 403. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "is_active": {
              "type": "boolean"
            },
            "sort_order": {
              "type": "integer",
              "maximum": 65535,
              "minimum": 0
            },
            "description": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "badge_variant": {
              "enum": [
                "default",
                "secondary",
                "info",
                "warning",
                "destructive"
              ],
              "type": "string",
              "description": "How the tag chip is colored in the app."
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "tag_31",
              "description": "Tag ID, e.g. `tag_31`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 69 lines
  • dealmachine_patch_tasks_id auth-required never probed

    Update task. Update a task. Set `is_completed` to `true` to mark as done. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "maxLength": 500,
              "minLength": 1
            },
            "due_date": {
              "type": [
                "string",
                "null"
              ]
            },
            "person_id": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Link to a person. Set to null to unlink."
                },
                {
                  "type": "null"
                }
              ]
            },
            "sort_order": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991
            },
            "description": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 5000
                },
                {
                  "type": "null"
                }
              ]
            },
            "property_id": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Link to a property. Set to null to unlink."
                },
                {
                  "type": "null"
                }
              ]
            },
            "is_completed": {
              "type": "boolean"
            },
            "opportunity_id": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "Link to a CRM opportunity. Set to null to unlink."
                },
                {
                  "type": "null"
                }
              ]
            },
            "assigned_to_user_id": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "assigned_to_agent_id": {
              "anyOf": [
                {
                  "type": "null",
                  "const": null,
                  "description": "Retired. Only null is accepted to clear a historical assignment."
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Task ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 120 lines
  • dealmachine_post_activity_search auth-required never probed

    Search activity. Query your past searches, enrichments, and exports. Filter by activity type, date range, or specific entity IDs — or use free-text search. This endpoint does not consume credits. Retrieves data without changing records or spending credits. Requires confirmed=true for this request.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "page": {
              "type": "integer",
              "default": 1,
              "example": 1,
              "maximum": 9007199254740991,
              "minimum": 1,
              "description": "Page number (default: 1)"
            },
            "sort": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "field",
                  "direction"
                ],
                "properties": {
                  "field": {
                    "enum": [
                      "created_at",
                      "type",
                      "total_results",
                      "credits_used",
                      "relevance"
                    ],
                    "type": "string",
                    "example": "created_at",
                    "description": "Field to sort by"
                  },
                  "direction": {
                    "enum": [
                      "asc",
                      "desc"
                    ],
                    "type": "string",
                    "example": "desc",
                    "description": "Sort direction"
                  }
                },
                "additionalProperties": {}
              },
              "description": "Array of sort objects. Defaults to created_at desc."
            },
            "query": {
              "type": "string",
              "description": "Free-text search across activity history"
            },
            "types": {
              "type": "array",
              "items": {
                "enum": [
                  "search_people",
                  "search_properties",
                  "count_people",
                  "count_properties",
                  "enrich_email",
                  "enrich_phone",
                  "enrich_address",
                  "enrich_latlng",
                  "enrich_reverse_geocode",
                  "enrich_apn",
                  "enrich_name",
                  "export_properties",
                  "export_people",
                  "get_person",
                  "get_person_batch",
                  "get_property",
                  "get_property_batch",
                  "phone_dnc_check",
                  "validate_addresses",
                  "comps_analysis",
                  "api_key_created",
                  "api_key_rotated",
                  "api_key_revoked",
                  "additional_credit_grant",
                  "additional_credit_purchase"
                ],
                "type": "string"
              },
              "description": "Legacy top-level activity type filter. Prefer filters.type."
            },
            "filters": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "search_people",
                      "search_properties",
                      "count_people",
                      "count_properties",
                      "enrich_email",
                      "enrich_phone",
                      "enrich_address",
                      "enrich_latlng",
                      "enrich_reverse_geocode",
                      "enrich_apn",
                      "enrich_name",
                      "export_properties",
                      "export_people",
                      "get_person",
                      "get_person_batch",
                      "get_property",
                      "get_property_batch",
                      "phone_dnc_check",
                      "validate_addresses",
                      "comps_analysis",
                      "api_key_created",
                      "api_key_rotated",
                      "api_key_revoked",
                      "additional_credit_grant",
                      "additional_credit_purchase"
                    ],
                    "type": "string"
                  },
                  "description": "Filter by activity type"
                }
              },
              "description": "Structured filters for activity history.",
              "additionalProperties": {}
            },
            "per_page": {
              "type": "integer",
              "default": 25,
              "example": 25,
              "maximum": 100,
              "minimum": 1,
              "description": "Results per page (default: 25, max: 100)"
            },
            "date_range": {
              "type": "object",
              "properties": {
                "end": {
                  "type": "string",
                  "description": "ISO 8601 timestamp. Only include activities on or before this time."
                },
                "start": {
                  "type": "string",
                  "description": "ISO 8601 timestamp. Only include activities on or after this time."
                }
              },
              "description": "Filter to activities within a date range",
              "additionalProperties": {}
            },
            "entity_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Find activities that returned specific entity IDs (e.g., \"per_x1y2z3\", \"prop_a1b2c3\")"
            },
            "pagination": {
              "type": "object",
              "example": {
                "page": 2,
                "per_page": 25
              },
              "properties": {
                "page": {
                  "type": "integer",
                  "example": 1,
                  "maximum": 9007199254740991,
                  "minimum": 1,
                  "description": "Page number (default: 1)"
                },
                "per_page": {
                  "type": "integer",
                  "example": 25,
                  "maximum": 100,
                  "minimum": 1,
                  "description": "Results per page (default: 25, max: 100)"
                }
              },
              "description": "Optional nested pagination object. Takes precedence over top-level page and per_page when provided.",
              "additionalProperties": {}
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 197 lines
  • dealmachine_post_addresses_validate auth-required never probed

    Validate addresses. Validate and standardize US addresses using USPS address data. Returns USPS-standardized versions of each submitted address along with a validation status indicating whether the address is deliverable. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "data"
          ],
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "zip": {
                    "type": "string",
                    "example": "78704",
                    "description": "5-digit ZIP code. Optional when using structured fields, but improves validation accuracy."
                  },
                  "city": {
                    "type": "string",
                    "example": "Austin",
                    "description": "City name. Required when not using full_address."
                  },
                  "unit": {
                    "type": "string",
                    "example": "Suite 200",
                    "description": "Unit, apartment, or suite number (e.g., \"Apt 4B\", \"Suite 200\"). Optional."
                  },
                  "state": {
                    "type": "string",
                    "example": "TX",
                    "description": "Two-letter state abbreviation. Required when not using full_address."
                  },
                  "street": {
                    "type": "string",
                    "example": "1200 Barton Springs Rd",
                    "description": "Street address line (e.g., \"1200 Barton Springs Rd\"). Required when not using full_address."
                  },
                  "full_address": {
                    "type": "string",
                    "example": "1200 Barton Springs Rd, Austin, TX 78704",
                    "description": "Complete address string (e.g., \"1200 Barton Springs Rd, Austin, TX 78704\"). Use this OR the structured fields below — not both."
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 1000,
              "minItems": 1,
              "description": "Array of address objects to validate (max 1000)."
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 65 lines
  • dealmachine_post_lists_list_id_export auth-required never probed

    Export list. Export all items from a completed list. The list must have status "completed" before export. Credits are charged per record. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "maximum": 1000000,
              "exclusiveMinimum": 0
            },
            "anchor": {
              "enum": [
                "property",
                "person"
              ],
              "type": "string",
              "description": "Row anchor. Property lists default to person so exports return property-owner contact rows. Use property for property-only rows."
            },
            "fields": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1
            },
            "require_phone": {
              "type": "boolean",
              "description": "Only include people with a phone number on a person-anchored export."
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "list_id"
          ],
          "properties": {
            "list_id": {
              "type": "string",
              "description": "List ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 57 lines
  • dealmachine_post_mail_campaigns auth-required never probed

    Create campaign. Create a new mail campaign. Each step can reference an existing design or provide a design_prompt to generate one; designs are HTML, so generation is instant (no polling required). Provide at most one audience type: property IDs, contact IDs, or saved list IDs. With an audience, set launch=true to send immediately, or leave it as a draft and call POST /campaigns/{id}/send later. Set accepts_properties=true to keep adding properties with POST /campaigns/{id}/properties after it starts; without it the campaign works as before and ends when its mail is done. Without an audience, the campaign is saved as ready with no properties and no charge, and it accepts properties: add them any time with POST /campaigns/{id}/properties. Saving as ready needs a name that does not start with "Draft - " and a design on every step. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "name",
            "steps"
          ],
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1,
              "description": "Campaign name"
            },
            "steps": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "design_id": {
                    "type": "string",
                    "description": "Existing design ID to use"
                  },
                  "delay_days": {
                    "type": "integer",
                    "default": 0,
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "description": "Days to wait after the previous step"
                  },
                  "repeat_count": {
                    "type": "integer",
                    "default": 1,
                    "maximum": 12,
                    "minimum": 1,
                    "description": "How many times to send this step (1-12)"
                  },
                  "design_prompt": {
                    "type": "string",
                    "description": "Prompt to generate an HTML design on the fly"
                  },
                  "interval_days": {
                    "type": "integer",
                    "default": 0,
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "description": "Days between repeated sends"
                  },
                  "skip_if_responded": {
                    "type": "boolean",
                    "default": false,
                    "description": "Skip this step if the recipient has responded"
                  }
                },
                "additionalProperties": {}
              },
              "maxItems": 5,
              "minItems": 1,
              "description": "Mail steps (1-5). Each step can reference an existing design or provide a prompt."
            },
            "launch": {
              "type": "boolean",
              "default": false,
              "description": "Launch the campaign immediately after creation. Requires an audience. If false, a campaign with an audience is created in draft status and a campaign without one is saved as ready."
            },
            "list_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Saved list IDs to send to. Mutually exclusive with property_ids and contact_ids."
            },
            "address_to": {
              "enum": [
                "owner",
                "resident"
              ],
              "type": "string",
              "description": "Who to address mail to: owner (mailing address) or resident (property address). Required when using property_ids and for property-based list_ids. Not needed for contact_ids or people lists."
            },
            "contact_ids": {
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  },
                  {
                    "type": "string",
                    "pattern": "^[1-9]\\d*$"
                  }
                ]
              },
              "description": "Contact (person) IDs to send to. Mutually exclusive with property_ids and list_ids. Pass an ID above the JSON safe integer range (2^53 - 1) as a decimal string."
            },
            "description": {
              "type": "string",
              "maxLength": 5000,
              "description": "Campaign description"
            },
            "qr_code_url": {
              "type": "string",
              "format": "uri",
              "description": "URL for the QR code on the postcard"
            },
            "contact_name": {
              "type": "string",
              "maxLength": 255
            },
            "property_ids": {
              "type": "array",
              "items": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "description": "Property IDs to send to. Mutually exclusive with contact_ids and list_ids. Omit all three audience fields to save the campaign as Ready with no properties; add properties later with POST /v1/mail/campaigns/{id}/properties."
            },
            "contact_email": {
              "type": "string",
              "format": "email",
              "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
            },
            "contact_phone": {
              "type": "string",
              "maxLength": 50
            },
            "return_address": {
              "type": "object",
              "required": [
                "name",
                "address_1",
                "city",
                "state",
                "zip"
              ],
              "properties": {
                "zip": {
                  "type": "string",
                  "maxLength": 10,
                  "minLength": 5
                },
                "city": {
                  "type": "string",
                  "maxLength": 100,
                  "minLength": 1
                },
                "name": {
                  "type": "string",
                  "maxLength": 255,
                  "minLength": 1
                },
                "state": {
                  "type": "string",
                  "maxLength": 2,
                  "minLength": 2
                },
                "address_1": {
                  "type": "string",
                  "maxLength": 255,
                  "minLength": 1
                },
                "address_2": {
                  "type": "string",
                  "maxLength": 255
                }
              },
              "description": "Inline return address (alternative to return_address_id)",
              "additionalProperties": {}
            },
            "return_address_id": {
              "type": "string",
              "description": "ID of a saved return address"
            },
            "accepts_properties": {
              "type": "boolean",
              "description": "Keep the campaign open to new properties after it starts, so POST /v1/mail/campaigns/{id}/properties can add more while it is ready, active or paused. Defaults to false when an audience is given, and the campaign ends when its mail is done, as before. A campaign created without an audience is saved as ready and always accepts properties, so false is refused there."
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 193 lines
  • dealmachine_post_mail_campaigns_id_pause auth-required never probed

    Pause campaign. Pause an active campaign, or a ready campaign that accepts properties. Properties added while it is paused wait at step 1 until it is resumed. Mail already submitted to the vendor will still be delivered. An ended campaign cannot be paused. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_post_mail_campaigns_id_resume auth-required never probed

    Resume campaign. Resume a paused campaign. An ended campaign cannot be resumed. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Resource ID"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • dealmachine_post_mail_return_addresses auth-required never probed

    Create return address. Create a new return address. The address is validated via USPS before saving. If the address is invalid, the request is rejected. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "name",
            "address_1",
            "city",
            "state",
            "zip"
          ],
          "properties": {
            "zip": {
              "type": "string",
              "maxLength": 10,
              "minLength": 5
            },
            "city": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1,
              "description": "Name on the return address"
            },
            "label": {
              "type": "string",
              "maxLength": 100,
              "description": "Friendly label (e.g., \"Office\", \"Home\")"
            },
            "state": {
              "type": "string",
              "maxLength": 2,
              "minLength": 2,
              "description": "Two-letter state code"
            },
            "address_1": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1,
              "description": "Street address"
            },
            "address_2": {
              "type": "string",
              "maxLength": 255,
              "description": "Apt/Suite/Unit"
            },
            "set_as_default": {
              "type": "boolean",
              "default": false,
              "description": "Make this the default return address"
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 67 lines
  • dealmachine_post_people_export auth-required never probed

    Export people to CSV. Export matching people as a CSV file. Returns signed download URLs. Limited to 1,000,000 records per export. Pass limit to export only the first N matching records. The request is synchronous — the response is returned once the export is complete (typically up to 30 seconds). Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "example": 1000,
              "maximum": 1000000,
              "description": "Maximum file rows for a filter-based export, from 1 to 1,000,000. For person, phone or email output with chargeable property fields, property credits are scoped to the limited contact-row selection.",
              "exclusiveMinimum": 0
            },
            "anchor": {
              "enum": [
                "person",
                "phone",
                "email"
              ],
              "type": "string",
              "default": "person",
              "example": "person",
              "description": "Controls the export anchor type. \"person\" exports one row per person (default). \"phone\" or \"email\" exports one row per phone/email."
            },
            "fields": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "person_coordinates",
                "full_name",
                "phones",
                "emails"
              ],
              "description": "Field IDs to include in the export. Omit for the default set. Use person_coordinates to add separate person_latitude and person_longitude columns. Add prospect, prospect_source, prospect_added_by, prospect_added_date or prospect_status for the Prospect columns, read from the person on each row: prospect is Yes or No (archived prospects read No), prospect_added_date is the UTC day as YYYY-MM-DD, and the rest are blank when the person is not a prospect; they add no credits."
            },
            "filters": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "filter_id"
                ],
                "properties": {
                  "value": {
                    "anyOf": [
                      {
                        "example": true,
                        "description": "Filter value (shape depends on filter type and operator)"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "operator": {
                    "type": "string",
                    "example": "is_boolean",
                    "description": "Comparison operator. Optional for BOOLEAN filters (automatically defaults to is_boolean)."
                  },
                  "filter_id": {
                    "type": "string",
                    "example": "has_phone",
                    "description": "Filter identifier (use GET /v1/filters to discover available filters)"
                  }
                },
                "additionalProperties": {}
              },
              "default": [],
              "maxItems": 50,
              "description": "Array of filters to apply. Omit or pass an empty array to export with no filters."
            },
            "locations": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "example": "29189",
                    "description": "Location code. Use a state abbreviation, county FIPS, city place ID or exact \"City, ST\" name, or 5-digit ZIP."
                  },
                  "east": {
                    "type": "number",
                    "description": "East longitude of the bounding box (for bounds locations)"
                  },
                  "name": {
                    "type": "string",
                    "example": "Springfield",
                    "description": "Exact city name when a city place ID is unknown."
                  },
                  "type": {
                    "enum": [
                      "state",
                      "county",
                      "city",
                      "zip_code",
                      "radius",
                      "polygon",
                      "bounds"
                    ],
                    "type": "string",
                    "example": "county",
                    "description": "Location type"
                  },
                  "west": {
                    "type": "number",
                    "description": "West longitude of the bounding box (for bounds locations)"
                  },
                  "north": {
                    "type": "number",
                    "description": "North latitude of the bounding box (for bounds locations)"
                  },
                  "south": {
                    "type": "number",
                    "description": "South latitude of the bounding box (for bounds locations)"
                  },
                  "state": {
                    "type": "string",
                    "example": "IL",
                    "maxLength": 2,
                    "minLength": 2,
                    "description": "Two-letter state abbreviation used to disambiguate a city name."
                  },
                  "latitude": {
                    "type": "number",
                    "description": "Center latitude for radius locations"
                  },
                  "longitude": {
                    "type": "number",
                    "description": "Center longitude for radius locations"
                  },
                  "coordinates": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "number"
                      }
                    },
                    "description": "Array of [longitude, latitude] coordinate pairs for polygon locations. Minimum 3 points."
                  },
                  "radius_miles": {
                    "type": "number",
                    "description": "Radius in miles for radius locations"
                  }
                },
                "additionalProperties": {}
              },
              "default": [],
              "maxItems": 15,
              "description": "Array of locations defining where to export. Required unless people_ids is provided."
            },
            "scrub_dnc": {
              "type": "boolean",
              "description": "Exclude contacts on the Do Not Call registry."
            },
            "people_ids": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "per_12345",
                "per_67890"
              ],
              "maxItems": 1000,
              "description": "Array of DealMachine person IDs to export (e.g., [\"per_12345\"]). Max 1000. When provided, locations become optional."
            },
            "mobile_only": {
              "type": "boolean",
              "description": "Only include wireless phone numbers. Cannot be combined with landline_only."
            },
            "exclude_lists": {
              "anyOf": [
                {
                  "example": {
                    "people_list_ids": [
                      123,
                      456
                    ]
                  },
                  "description": "Query Builder list protocol object, with numeric list IDs or list UUIDs. people_list_ids matches the people; property_list_ids matches their properties, so a person stays only through a property that is not on an excluded property list."
                },
                {
                  "type": "null"
                }
              ]
            },
            "include_lists": {
              "anyOf": [
                {
                  "example": {
                    "people_list_ids": [
                      123,
                      456
                    ]
                  },
                  "description": "Query Builder list protocol object, with numeric list IDs or list UUIDs. people_list_ids matches the people; property_list_ids matches their properties, so a person stays only through a property that is not on an excluded property list."
                },
                {
                  "type": "null"
                }
              ]
            },
            "landline_only": {
              "type": "boolean",
              "description": "Only include landline phone numbers. Cannot be combined with mobile_only."
            },
            "require_email": {
              "type": "boolean",
              "description": "Only include records where the contact has an email address."
            },
            "require_phone": {
              "type": "boolean",
              "description": "Only include records where the contact has a phone number."
            },
            "property_match": {
              "enum": [
                "owner",
                "resident",
                "renter"
              ],
              "type": "string",
              "example": "owner",
              "description": "Defines the person-to-property relationship for the export."
            },
            "active_phones_only": {
              "type": "boolean",
              "description": "Only include phone numbers with active reported phone activity. Numbers with inactive or unknown activity are excluded."
            },
            "bigquery_data_environment": {
              "anyOf": [
                {
                  "type": "number",
                  "const": 1
                },
                {
                  "type": "number",
                  "const": 2
                },
                {
                  "type": "number",
                  "const": 3
                }
              ],
              "example": 3,
              "description": "Query Builder BigQuery dataset environment: 1 production, 2 staging, 3 development."
            },
            "exclude_previously_exported": {
              "anyOf": [
                {
                  "example": true,
                  "description": "Query Builder export exclusion protocol. Pass true to exclude previously exported people, or pass a full exclude_previously_exported object."
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 278 lines
  • dealmachine_post_prospects_id_files auth-required never probed

    Register uploaded file. Step two: after the PUT succeeds, record the file on the prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "s3_key",
            "file_name",
            "file_size"
          ],
          "properties": {
            "s3_key": {
              "type": "string",
              "maxLength": 512,
              "minLength": 1
            },
            "file_name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "file_size": {
              "type": "integer",
              "maximum": 26214400,
              "minimum": 0
            },
            "content_type": {
              "type": "string",
              "default": "application/octet-stream",
              "maxLength": 100,
              "minLength": 1
            }
          },
          "additionalProperties": {}
        },
        "path": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 60 lines
  • dealmachine_post_prospects_id_tags_tag_id auth-required never probed

    Add tag to prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "tag_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "prospect_123",
              "description": "Prospect ID, e.g. `prospect_123`"
            },
            "tag_id": {
              "type": "string",
              "example": "tag_31",
              "description": "Tag ID, e.g. `tag_31`"
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • dealmachine_post_prospects_check auth-required never probed

    Check prospect state. For up to 500 record IDs, say which are prospects and where they are. Use it to avoid duplicate adds. Retrieves data without changing records or spending credits. Requires confirmed=true for this request.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "record_ids"
          ],
          "properties": {
            "record_ids": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "number"
                ],
                "description": "Record ID: `prop_123`, `person_456`, `company_7`, or the bare number."
              },
              "maxItems": 500,
              "minItems": 1
            },
            "record_type": {
              "enum": [
                "property",
                "person",
                "company"
              ],
              "type": "string",
              "default": "property",
              "description": "What kind of record the prospect tracks."
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 42 lines
  • dealmachine_post_tasks auth-required never probed

    Create task. Create a new task. Optionally link it to an opportunity, property, or person. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "body": {
          "type": "object",
          "required": [
            "title"
          ],
          "properties": {
            "title": {
              "type": "string",
              "maxLength": 500,
              "minLength": 1
            },
            "due_date": {
              "type": "string"
            },
            "person_id": {
              "type": "string",
              "description": "Link to a person"
            },
            "description": {
              "type": "string",
              "maxLength": 5000
            },
            "property_id": {
              "type": "string",
              "description": "Link to a property"
            },
            "opportunity_id": {
              "type": "string",
              "description": "Link to a CRM opportunity (numeric or UUID)"
            },
            "assigned_to_user_id": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991
            },
            "assigned_to_agent_id": {
              "anyOf": [
                {
                  "type": "null",
                  "const": null,
                  "description": "Retired. AI agent assignment is no longer supported."
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 61 lines
  • dealmachine_post_webhooks_id_deliveries_delivery_id_redeliver auth-required never probed

    Redeliver. Queue one delivery to be sent again. Pass `delivery_id=all` with `since` to requeue every delivery after a time. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "path"
      ],
      "properties": {
        "path": {
          "type": "object",
          "required": [
            "id",
            "delivery_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "whk_12",
              "description": "Webhook ID, e.g. `whk_12`"
            },
            "delivery_id": {
              "type": "string",
              "example": "dlv_9001",
              "description": "Delivery ID, e.g. `dlv_9001`"
            }
          },
          "additionalProperties": false
        },
        "query": {
          "type": "object",
          "properties": {
            "since": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "description": "Requeue every delivery created after this time instead of one."
            }
          },
          "additionalProperties": false
        },
        "confirmed": {
          "type": "boolean",
          "description": "Set true only after the user approves this change or credit use."
        }
      },
      "additionalProperties": false
    }
    arguments 46 lines
  • dealmachine_list_create auth-required never probed

    Creates a list in the workspace, optionally pre-filled with up to 250 property or person IDs. Filed records become prospects unless `add_as_prospects` is false. Free; no credits are charged.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "List name"
        },
        "record_ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ]
          },
          "maxItems": 250,
          "minItems": 1,
          "description": "Internal property or person IDs to file right away (max 250). Omit to create an empty list."
        },
        "source_type": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string",
          "description": "What the list holds. Defaults to properties."
        },
        "add_as_prospects": {
          "type": "boolean",
          "description": "Whether the records also become prospects in the workspace. Defaults to true. Pass false only when the user does not want these records tracked as prospects."
        }
      }
    }
    arguments 46 lines
  • dealmachine_list_add_items auth-required never probed

    Adds property or person IDs to an existing list (max 10,000 per request; duplicates are skipped). Filed records become prospects unless `add_as_prospects` is false. Free; no credits are charged.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "list_id",
        "ids"
      ],
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ]
          },
          "maxItems": 10000,
          "minItems": 1,
          "description": "Internal property or person IDs to add"
        },
        "id_type": {
          "enum": [
            "internal_property_id",
            "internal_person_id"
          ],
          "type": "string",
          "description": "Which kind of IDs these are. Defaults to internal_property_id."
        },
        "list_id": {
          "type": "string",
          "minLength": 1,
          "description": "The list ID to add to"
        },
        "add_as_prospects": {
          "type": "boolean",
          "description": "Whether the records also become prospects in the workspace. Defaults to true. Pass false only when the user does not want these records tracked as prospects."
        }
      }
    }
    arguments 46 lines
  • dealmachine_prospect_get auth-required 19d ago

    Returns one prospect by prospect ID, or by the record it tracks, with its lifecycle, status (Hot, Warm, Cold, Follow up, Do Not Contact; read only), tags, and note and file counts. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "record_id": {
          "type": "string",
          "description": "Record ID such as `prop_12345`, used when prospect_id is not known"
        },
        "prospect_id": {
          "type": "string",
          "description": "Prospect ID such as `prospect_8812`"
        },
        "record_type": {
          "enum": [
            "property",
            "person",
            "company"
          ],
          "type": "string",
          "description": "What kind of record. Defaults to property."
        }
      }
    }
    arguments 23 lines
  • dealmachine_prospect_update auth-required never probed

    Moves a prospect between active, opportunity, and archived, or stars it. Archiving ends its mail. With cascade enabled, it also closes open opportunities. List memberships are kept either way. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "prospect_id"
      ],
      "properties": {
        "cascade": {
          "type": "boolean",
          "description": "When archiving, close open opportunities. Mail ending is unaffected and list memberships are kept either way. Defaults to true"
        },
        "favorite": {
          "type": "boolean"
        },
        "lifecycle": {
          "enum": [
            "active",
            "opportunity",
            "archived"
          ],
          "type": "string"
        },
        "prospect_id": {
          "type": "string",
          "description": "Prospect ID such as `prospect_8812`"
        }
      }
    }
    arguments 28 lines
  • dealmachine_prospect_note_add auth-required never probed

    Adds a note (up to 10,000 characters) to a prospect. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "prospect_id",
        "body"
      ],
      "properties": {
        "body": {
          "type": "string",
          "maxLength": 10000,
          "minLength": 1,
          "description": "The note text"
        },
        "prospect_id": {
          "type": "string",
          "description": "Prospect ID such as `prospect_8812`"
        }
      }
    }
    arguments 20 lines
  • dealmachine_prospect_tags_set auth-required never probed

    Replaces the tags on a prospect with exactly the given tag IDs; an empty list clears them. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "prospect_id",
        "tag_ids"
      ],
      "properties": {
        "tag_ids": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "number"
            ]
          },
          "maxItems": 100,
          "description": "Tag IDs such as `tag_31`"
        },
        "prospect_id": {
          "type": "string",
          "description": "Prospect ID such as `prospect_8812`"
        }
      }
    }
    arguments 25 lines
  • dealmachine_tags_list auth-required never probed

    Lists the prospect tag catalog: the built-in tags every workspace has plus the workspace’s own, with how many prospects carry each. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "include_inactive": {
          "type": "boolean",
          "description": "Include archived tags"
        }
      }
    }
    arguments 10 lines
  • dealmachine_mail_campaign_add_properties auth-required never probed

    Adds properties to a Ready, Active or Paused campaign and spends wallet dollars. Each added property starts at step 1 on its own schedule; properties already in the campaign are untouched. Before calling this, call dealmachine_mail_read with operation add_properties_estimate and the property count, tell the user the charge due today (pay_today_cents) and the amount charged later as mail goes out (pay_later_cents), and get their approval. A paused campaign charges nothing today; each piece is charged as it goes out after it resumes (charged_on_resume). Auto-reload must be on when the campaign has more than one step, a repeating step, or any delay. The response lists added_count and each skipped property with its reason: already_in_campaign, do_not_contact, no_mailing_address, duplicate_mailing_address, archived_prospect or not_found. Find campaigns that accept properties with dealmachine_mail_read search_campaigns and accepting_properties=true.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_id",
        "property_ids",
        "recipient",
        "confirmed"
      ],
      "properties": {
        "confirmed": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the user approves the charge due today from the estimate"
        },
        "recipient": {
          "enum": [
            "owner",
            "resident"
          ],
          "type": "string",
          "description": "owner mails the owner's mailing address; resident mails the current resident at the property"
        },
        "campaign_id": {
          "type": "string",
          "minLength": 1
        },
        "property_ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ]
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "Property IDs to add (1 to 5000)"
        }
      }
    }
    arguments 48 lines
  • dealmachine_mail_campaign_archive auth-required never probed

    Archives an ended campaign. End active, paused, ready or draft campaigns first; otherwise the API returns 409 CAMPAIGN_NOT_ENDED without changing the campaign. Cancels unsent mail, releases reservations, stops reminders and hides it from default lists. History stays under status=archived. Already submitted mail may still ship. Confirm with the user first.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_id",
        "confirmed"
      ],
      "properties": {
        "confirmed": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the user confirms archiving this campaign and cancelling its unsent mail"
        },
        "campaign_id": {
          "type": "string",
          "minLength": 1
        }
      }
    }
    arguments 19 lines
  • dealmachine_mail_campaign_end auth-required never probed

    Ends a Ready, Active or Paused mail campaign permanently. Unsent mail is stopped, no properties can be added, and it can never be resumed. Mail already printed or with the carrier still delivers. To reuse its steps, create a new campaign. A draft has not started and cannot be ended (campaign_is_draft). Warn the user that ending cannot be undone.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "campaign_id",
        "confirmed"
      ],
      "properties": {
        "confirmed": {
          "type": "boolean",
          "const": true,
          "description": "Set to true only after the user confirms ending this campaign for good"
        },
        "campaign_id": {
          "type": "string",
          "minLength": 1
        }
      }
    }
    arguments 19 lines
  • dealmachine_webhook_create auth-required never probed

    Registers an https URL to receive prospect and list events. Returns the signing secret once; relay it to the user. Free.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "url",
        "event_types"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Public https URL that accepts POST requests"
        },
        "batch_max": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Most events per request. Default 50"
        },
        "description": {
          "type": "string",
          "maxLength": 255
        },
        "event_types": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "description": "Event types such as `prospect.added`, `prospect.*`, or `*`"
        },
        "include_contacts": {
          "type": "boolean",
          "description": "Include phone numbers and emails on person prospects"
        }
      }
    }
    arguments 37 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 8c654f02e66d7a6a.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/8c654f02e66d7a6a/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/8c654f02e66d7a6a/badge.svg)](https://brick.blue/agent/8c654f02e66d7a6a?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.