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.
23 tools: 8 can delete or cancel things, 1 change things and 14 only read.
Scanned Oct 21, 2026
- Deletes or cancels8Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads14Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnfub_log_call
The server marks "fub_log_call" destructive (destructiveHint: true), and its name says "log", a word for reading.
What this check looks forMatched text
annotations: {"destructiveHint":true}; The name "fub_log_call" says "log": a word for reading.
- Infofub_get_identity
The description mentions "credential".
What this check looks forMatched text
description: "Who the credential belongs to: the account (id, domain, ow..."
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.
What this check looks forMatched text
annotations: {"destructiveHint":true}; The name "fub_log_call" says "log": a word for reading.
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".
What this check looks forMatched text
description: "Who the credential belongs to: the account (id, domain, ow..."
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.