Skip to content

Follow Up Boss MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.17.1 · published by io.usefulapi

Search Follow Up Boss leads, review calls and deals, and add notes, tasks and deal updates.

Deletes · 8Changes · 1

23 tools: 8 can delete or cancel things, 1 change things and 14 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http follow-up-boss https://follow-up-boss.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn1 info
  • The server marks "fub_log_call" destructive (destructiveHint: true), and its name says "log", a word for reading.

    Matched text

    annotations: {"destructiveHint":true}; The name "fub_log_call" says "log": a word for reading.

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "Who the credential belongs to: the account (id, domain, ow..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

23 tools

Deletes or cancels 8Claude Code: deny
  • fub_add_noteAdd a note to a contact's timeline.No findings

    Why it is in this group

    • The name "fub_add_note" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add a note to a contact's timeline. FUB: POST /v1/notes.

    Annotations the server declares

    • title: Add a note
    • destructiveHint: true
  • fub_create_dealCreate a deal in a pipeline stage (stage ids from fub_list_pipelines).No findings

    Why it is in this group

    • The name "fub_create_deal" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create a deal in a pipeline stage (stage ids from fub_list_pipelines). Include userIds — a deal with no users is invisible to agents. FUB: POST /v1/deals.

    Annotations the server declares

    • title: Create a deal
    • destructiveHint: true
  • fub_create_taskCreate a task on a contact, assigned to a user (assignedUserId or assignedTo is required).No findings

    Why it is in this group

    • The name "fub_create_task" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create a task on a contact, assigned to a user (assignedUserId or assignedTo is required). FUB: POST /v1/tasks.

    Annotations the server declares

    • title: Create a task
    • destructiveHint: true
  • fub_log_callRecord a phone call made or received outside FUB, with its outcome.1 finding

    Why it is in this group

    • The name "fub_log_call" says "log": a word for reading.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Warn

      The server marks "fub_log_call" destructive (destructiveHint: true), and its name says "log", a word for reading.

      Matched text

      annotations: {"destructiveHint":true}; The name "fub_log_call" says "log": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Record a phone call made or received outside FUB, with its outcome. Does not place a call. FUB: POST /v1/calls.

    Annotations the server declares

    • title: Log a call
    • destructiveHint: true
  • fub_send_lead_eventAdd a new lead or record activity on an existing one — FUB's documented way to create leads.No findings

    Why it is in this group

    • The name "fub_send_lead_event" says "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Add a new lead or record activity on an existing one — FUB's documented way to create leads. FUB de-duplicates by email/phone (or use person.id to target a contact), routes the lead per Lead Flow, notifies the agent and runs action plans for Registration / Inquiry types. A 204 means the lead flow for this source is archived and the event was ignored. FUB: POST /v1/events.

    Annotations the server declares

    • title: Send in a lead / lead event
    • destructiveHint: true
  • fub_update_dealUpdate a deal — move it to another stage, change price, dates, people or agents.No findings

    Why it is in this group

    • The name "fub_update_deal" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a deal — move it to another stage, change price, dates, people or agents. peopleIds/userIds replace the full list. FUB: PUT /v1/deals/{id}.

    Annotations the server declares

    • title: Update a deal
    • destructiveHint: true
  • fub_update_personUpdate a contact's fields.No findings

    Why it is in this group

    • The name "fub_update_person" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a contact's fields. CAUTION: `tags` REPLACES all tags unless mergeTags is true; `phones` and `emails` REPLACE the full list (send existing ones too). Setting contacted=true pauses action plans. source/sourceUrl cannot be changed after creation. FUB: PUT /v1/people/{id}.

    Annotations the server declares

    • title: Update a person
    • destructiveHint: true
  • fub_update_taskUpdate a task — mark it complete, rename, retype or reassign it.No findings

    Why it is in this group

    • The name "fub_update_task" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a task — mark it complete, rename, retype or reassign it. FUB: PUT /v1/tasks/{id}.

    Annotations the server declares

    • title: Update a task
    • destructiveHint: true
Changes things 1Claude Code: ask
  • fub_check_duplicate_personCheck if a contact with this email or phone already exists anywhere in the account (even ones this user cannot see) and who it is assigned to.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check if a contact with this email or phone already exists anywhere in the account (even ones this user cannot see) and who it is assigned to. Use before adding a lead. FUB: GET /v1/people/checkDuplicate.

    Annotations the server declares

    • title: Check whether a person exists
    • readOnlyHint: true
Only reads 14Claude Code: allow
  • fub_get_identityWho the credential belongs to: the account (id, domain, owner) and the authenticated user.1 finding

    Why it is in this group

    • The name "fub_get_identity" says "get": a word for reading.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "Who the credential belongs to: the account (id, domain, ow..."

      What this check looks for
    Description, as the server wrote it
    Who the credential belongs to: the account (id, domain, owner) and the authenticated user. A cheap way to confirm the API key works. FUB: GET /v1/identity.

    Annotations the server declares

    • title: Get identity
    • readOnlyHint: true
  • fub_get_personFetch one contact by id.No findings

    Why it is in this group

    • The name "fub_get_person" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one contact by id. Pass fields="allFields" to include custom fields and everything else. FUB: GET /v1/people/{id}.

    Annotations the server declares

    • title: Get one person
    • readOnlyHint: true
  • fub_lead_source_reportCount leads from lead sources (e.g.No findings

    Why it is in this group

    • The description's first verb is "count": a word for reading.
    Description, as the server wrote it
    Count leads from lead sources (e.g. Zillow) per assigned agent, how many reached the closed stage(s) (conversion rate), and leads per lender user (e.g. Zillow Home Loans loan officers). Use it to count instead of paging through fub_search_people. The numbers approximate FUB's in-app Lead Source report, which has no API, and cover only the people the API key can see (use an owner, admin or broker key for the whole account). At most 100 FUB requests per call (one per count). FUB: GET /v1/people totals, GET /v1/users.

    Annotations the server declares

    • title: Lead source report by agent
    • readOnlyHint: true
  • fub_list_appointmentsCalendar appointments with invitees, type and outcome.No findings

    Why it is in this group

    • The name "fub_list_appointments" says "list": a word for reading.
    Description, as the server wrote it
    Calendar appointments with invitees, type and outcome. Filter by person, user, or a start+end window (both required together). FUB: GET /v1/appointments.

    Annotations the server declares

    • title: List appointments
    • readOnlyHint: true
  • fub_list_callsLogged phone calls with outcome, direction and duration.No findings

    Why it is in this group

    • The name "fub_list_calls" says "list": a word for reading.
    Description, as the server wrote it
    Logged phone calls with outcome, direction and duration. Filter by person or number. FUB: GET /v1/calls.

    Annotations the server declares

    • title: List calls
    • readOnlyHint: true
  • fub_list_custom_fieldsThe account's contact custom fields: label, API name (customXxx), type and dropdown choices.No findings

    Why it is in this group

    • The name "fub_list_custom_fields" says "list": a word for reading.
    Description, as the server wrote it
    The account's contact custom fields: label, API name (customXxx), type and dropdown choices. Use the name as a key in customFields. FUB: GET /v1/customFields.

    Annotations the server declares

    • title: List custom fields
    • readOnlyHint: true
  • fub_list_dealsDeals (transactions) with stage, price, people, agents and commission.No findings

    Why it is in this group

    • The name "fub_list_deals" says "list": a word for reading.
    Description, as the server wrote it
    Deals (transactions) with stage, price, people, agents and commission. Filter by pipeline, user, person or status. The response metadata includes totalByStageId. FUB: GET /v1/deals.

    Annotations the server declares

    • title: List deals
    • readOnlyHint: true
  • fub_list_eventsLead activity: registrations, inquiries, viewed/saved properties, website visits, etc.No findings

    Why it is in this group

    • The name "fub_list_events" says "list": a word for reading.
    Description, as the server wrote it
    Lead activity: registrations, inquiries, viewed/saved properties, website visits, etc. Filter by person or type. Some events are only visible in the FUB app. FUB: GET /v1/events.

    Annotations the server declares

    • title: List lead events
    • readOnlyHint: true
  • fub_list_pipelinesDeal pipelines with their stages (the stage ids that fub_create_deal / fub_update_deal take).No findings

    Why it is in this group

    • The name "fub_list_pipelines" says "list": a word for reading.
    Description, as the server wrote it
    Deal pipelines with their stages (the stage ids that fub_create_deal / fub_update_deal take). FUB: GET /v1/pipelines.

    Annotations the server declares

    • title: List deal pipelines
    • readOnlyHint: true
  • fub_list_stagesContact lifecycle stages (Lead, Nurture, Past Client, Trash…) with people counts — the names fub_search_people and fub_update_person take as "stage".No findings

    Why it is in this group

    • The name "fub_list_stages" says "list": a word for reading.
    Description, as the server wrote it
    Contact lifecycle stages (Lead, Nurture, Past Client, Trash…) with people counts — the names fub_search_people and fub_update_person take as "stage". FUB: GET /v1/stages.

    Annotations the server declares

    • title: List contact stages
    • readOnlyHint: true
  • fub_list_tasksTasks (follow-ups, calls, showings…).No findings

    Why it is in this group

    • The name "fub_list_tasks" says "list": a word for reading.
    Description, as the server wrote it
    Tasks (follow-ups, calls, showings…). Filter by person, assignee, type, completion, or due window (due="today"|"overdue"|"upcoming"). FUB: GET /v1/tasks.

    Annotations the server declares

    • title: List tasks
    • readOnlyHint: true
  • fub_list_text_messagesText messages for a person or a phone number (message bodies may be hidden by FUB for privacy).No findings

    Why it is in this group

    • The name "fub_list_text_messages" says "list": a word for reading.
    Description, as the server wrote it
    Text messages for a person or a phone number (message bodies may be hidden by FUB for privacy). FUB: GET /v1/textMessages.

    Annotations the server declares

    • title: List text messages
    • readOnlyHint: true
  • fub_list_usersUsers in the account (agents, brokers, lenders) — the ids to assign people, tasks and deals to.No findings

    Why it is in this group

    • The name "fub_list_users" says "list": a word for reading.
    Description, as the server wrote it
    Users in the account (agents, brokers, lenders) — the ids to assign people, tasks and deals to. FUB: GET /v1/users.

    Annotations the server declares

    • title: List users (agents)
    • readOnlyHint: true
  • fub_search_peopleSearch contacts and leads.No findings

    Why it is in this group

    • The name "fub_search_people" says "search": a word for reading.
    Description, as the server wrote it
    Search contacts and leads. Criteria combine with AND. Name filters are partial matches. Newest first by default. People in the Trash stage are excluded unless includeTrash is true. Not every field is returned by default — pass `fields` (e.g. "allFields" or a comma list) for more. FUB: GET /v1/people.

    Annotations the server declares

    • title: Search people (contacts/leads)
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.17.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http follow-up-boss https://follow-up-boss.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__follow-up-boss__fub_get_identity",
      "mcp__follow-up-boss__fub_search_people",
      "mcp__follow-up-boss__fub_get_person",
      "mcp__follow-up-boss__fub_list_events",
      "mcp__follow-up-boss__fub_list_calls",
      "mcp__follow-up-boss__fub_list_text_messages",
      "mcp__follow-up-boss__fub_list_tasks",
      "mcp__follow-up-boss__fub_list_appointments",
      "mcp__follow-up-boss__fub_list_deals",
      "mcp__follow-up-boss__fub_list_pipelines",
      "mcp__follow-up-boss__fub_list_stages",
      "mcp__follow-up-boss__fub_list_users",
      "mcp__follow-up-boss__fub_list_custom_fields",
      "mcp__follow-up-boss__fub_lead_source_report"
    ],
    "ask": [
      "mcp__follow-up-boss__fub_check_duplicate_person"
    ],
    "deny": [
      "mcp__follow-up-boss__fub_send_lead_event",
      "mcp__follow-up-boss__fub_update_person",
      "mcp__follow-up-boss__fub_add_note",
      "mcp__follow-up-boss__fub_log_call",
      "mcp__follow-up-boss__fub_create_task",
      "mcp__follow-up-boss__fub_update_task",
      "mcp__follow-up-boss__fub_create_deal",
      "mcp__follow-up-boss__fub_update_deal"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as follow-up-boss. Review it before you use it.