Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.usefulapi/follow-up-boss

REMOTE · FOLLOW-UP-BOSS.USEFULAPI.IO · SCANNED OCT 4

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

75 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3566 tokens (~162/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
  • Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage92
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 75% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the io.usefulapi/follow-up-boss MCP server?

io.usefulapi/follow-up-boss is a hosted endpoint at https://follow-up-boss.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · follow-up-boss.usefulapi.io

# add to Claude Code
claude mcp add --transport http io-usefulapi-follow-up-boss 'https://follow-up-boss.usefulapi.io/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "io-usefulapi-follow-up-boss": {
      "url": "https://follow-up-boss.usefulapi.io/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-usefulapi-follow-up-boss": {
      "type": "http",
      "url": "https://follow-up-boss.usefulapi.io/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.io-usefulapi-follow-up-boss]
url = "https://follow-up-boss.usefulapi.io/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-follow-up-boss": {
      "type": "remote",
      "url": "https://follow-up-boss.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-usefulapi-follow-up-boss --url 'https://follow-up-boss.usefulapi.io/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-usefulapi-follow-up-boss:
    url: "https://follow-up-boss.usefulapi.io/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-usefulapi-follow-up-boss": {
      "Transport": "http",
      "Url": "https://follow-up-boss.usefulapi.io/mcp"
    }
  }
}
# add to Vellum
assistant mcp add io-usefulapi-follow-up-boss -t streamable-http -u 'https://follow-up-boss.usefulapi.io/mcp'
// mcp.json
{
  "mcpServers": {
    "io-usefulapi-follow-up-boss": {
      "type": "http",
      "url": "https://follow-up-boss.usefulapi.io/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Oct 26 +1
    • Server version: 1.3.0 → 1.5.1 functional
  • 1 Oct 26 +5
    • HTTPS: unverified → pass ▲ security
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.0.0 → 1.3.0 functional
  • 30 Sept 26 +51
    • Authorization: unverified → pass ▲ security
    • Injection markers: unverified → pass ▲ security
    • Transport: fail → pass ▲ security
    • First check of Judged manipulation: pass security
    • First check of Authorization: partial security
    • MCP protocol: unverified → fail ▼ functional
    • Tool coverage: unverified → 100 ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Tool coverage: 75 functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 100 functional
  • 29 Sept 26 18

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Oct 2026 · Probed https://follow-up-boss.usefulapi.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=usefulapi.io CN=WE1,O=Google Trust Services,C=US 13 Sept 2026 12 Dec 2026 ECDSA 256 ECDSA-SHA256 d9be3287b0fde9630e825ba1f79bff3f
SANs: usefulapi.io, *.usefulapi.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of follow-up-boss.usefulapi.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
usefulapi.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://follow-up-boss.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Bearer realm="OAuth", resource_metadata="https://follow-up-boss.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Protected resource metadata

Document https://follow-up-boss.usefulapi.io/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://follow-up-boss.usefulapi.io/mcp
Authorisation server https://follow-up-boss.usefulapi.io

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://follow-up-boss.usefulapi.io/mcp Verified 200
http (plaintext) http://follow-up-boss.usefulapi.io/mcp HTTPS enforced 301 https://follow-up-boss.usefulapi.io/mcp
MCP tools · 22 exposed · ~3,566 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
fub_add_note ~72

Add a note to a contact's timeline. FUB: POST /v1/notes.

NameTypeReqDescription
bodystringyesNote content.
isHtmlboolean–Render HTML tags in the body.
personIdintegeryesThe person id.
subjectstring–Note title.

No output schema declared.

No examples provided.

fub_check_duplicate_person ~83

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.

NameTypeReqDescription
emailstring–Email address to look for.
phonestring–Phone number to look for.

No output schema declared.

No examples provided.

fub_create_deal ~206

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.

NameTypeReqDescription
agentCommissioninteger–Agent commission split.
commissionValueinteger––
descriptionstring––
dueDiligenceDatestring––
earnestMoneyDueDatestring––
finalWalkThroughDatestring––
mutualAcceptanceDatestring––
namestringyesDeal name.
peopleIdsarray–Contact ids on the deal.
possessionDatestring––
priceinteger––
projectedCloseDatestring–Projected close date.
stageIdintegeryesPipeline stage id.
teamCommissioninteger–Team commission split.
userIdsarray–User (agent) ids on the deal.

No output schema declared.

No examples provided.

fub_create_task ~177

Create a task on a contact, assigned to a user (assignedUserId or assignedTo is required). FUB: POST /v1/tasks.

NameTypeReqDescription
assignedTostring–Full name of the user to assign (or give assignedUserId).
assignedUserIdinteger–User id to assign (or give assignedTo).
dueDatestring–YYYY-MM-DD.
dueDateTimestring–With time, e.g. 2026-11-16T15:00:00-05:00.
isCompletedboolean––
namestring–Task name.
personIdintegeryesThe person id.
remindSecondsBeforeinteger–Reminder lead time; only for tasks with a due time.
typestring––

No output schema declared.

No examples provided.

fub_get_identity ~50

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

fub_get_person ~75

Fetch one contact by id. Pass fields="allFields" to include custom fields and everything else. FUB: GET /v1/people/{id}.

NameTypeReqDescription
fieldsstring–Comma-separated fields to return, or "allFields" / "allCustom".
idintegeryesThe person id.

No output schema declared.

No examples provided.

fub_list_appointments ~156

Calendar appointments with invitees, type and outcome. Filter by person, user, or a start+end window (both required together). FUB: GET /v1/appointments.

NameTypeReqDescription
endstring–Window end (ISO-8601). Must be combined with start.
limitinteger–Page size, 1-100 (FUB default 10).
offsetinteger–Rows to skip. For deep paging prefer `next`.
personIdstring–Person id, or a comma-separated list of ids.
startstring–Window start (ISO-8601). Must be combined with end.
userIdinteger–Only appointments for this user.

No output schema declared.

No examples provided.

fub_list_calls ~124

Logged phone calls with outcome, direction and duration. Filter by person or number. FUB: GET /v1/calls.

NameTypeReqDescription
fromNumberstring–Calls from this number.
limitinteger–Page size, 1-100 (FUB default 10).
offsetinteger–Rows to skip. For deep paging prefer `next`.
personIdinteger–Only calls with this person.
phonestring–Calls to or from this person's number.
toNumberstring–Calls to this number.

No output schema declared.

No examples provided.

fub_list_custom_fields ~102

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.

NameTypeReqDescription
labelstring–Find a custom field by label.
limitinteger–Page size, 1-100 (FUB default 10).
offsetinteger–Rows to skip. For deep paging prefer `next`.

No output schema declared.

No examples provided.

fub_list_deals ~165

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.

NameTypeReqDescription
includeArchivedboolean–Include Archived deals.
includeDeletedboolean–Include Deleted deals.
limitinteger–Page size, 1-100 (FUB default 10).
offsetinteger–Rows to skip. For deep paging prefer `next`.
personIdinteger–Only deals for this person.
pipelineIdinteger–Only deals in this pipeline.
statusstring–Only deals with this status.
userIdinteger–Only deals for this user.

No output schema declared.

No examples provided.

fub_list_events ~224

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.

NameTypeReqDescription
hasPropertyboolean–Only events with (or without) a property attached.
limitinteger–Page size, 1-100 (FUB default 10).
nextstring–Cursor from the previous page's _metadata.next. Recommended over offset.
offsetinteger–Rows to skip. For deep paging prefer `next`.
personIdinteger–Only events for this person.
propertyAddressstring–Partial match on the property address.
typestring–Comma-separated event types, e.g. "Registration,Property Inquiry". One of: Registration, Inquiry, Seller Inquiry, Property Inquiry, General Inquiry, Viewed Property, Saved Property, Visited Website,…

No output schema declared.

No examples provided.

fub_list_pipelines ~54

Deal pipelines with their stages (the stage ids that fub_create_deal / fub_update_deal take). FUB: GET /v1/pipelines.

NameTypeReqDescription
namestring–Exact pipeline name.

No output schema declared.

No examples provided.

fub_list_stages ~102

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.

NameTypeReqDescription
limitinteger–Page size, 1-100 (FUB default 10).
offsetinteger–Rows to skip. For deep paging prefer `next`.
sortstring–Sort order.

No output schema declared.

No examples provided.

fub_list_tasks ~234

Tasks (follow-ups, calls, showings…). Filter by person, assignee, type, completion, or due window (due="today"|"overdue"|"upcoming"). FUB: GET /v1/tasks.

NameTypeReqDescription
assignedTostring–Only tasks assigned to this user (full name).
assignedUserIdinteger–Only tasks assigned to this user id.
duestring–Due window.
dueEndstring–Due at or before this time.
dueStartstring–Due at or after this time.
isCompletedboolean–Completed or not.
limitinteger–Page size, 1-100 (FUB default 10).
namestring–Partial match on task name.
offsetinteger–Rows to skip. For deep paging prefer `next`.
personIdinteger–Only tasks for this person.
typestring–Comma-separated types. One of: Follow Up, Call, Text, Email, Appointment, Showing, Closing, Open House, Thank You.

No output schema declared.

No examples provided.

fub_list_text_messages ~120

Text messages for a person or a phone number (message bodies may be hidden by FUB for privacy). FUB: GET /v1/textMessages.

NameTypeReqDescription
fromNumberstring–Texts sent from this number.
limitinteger–Page size, 1-100 (FUB default 10).
offsetinteger–Rows to skip. For deep paging prefer `next`.
personIdinteger–Only texts with this person.
toNumberstring–Texts sent to this number.

No output schema declared.

No examples provided.

fub_list_users ~126

Users in the account (agents, brokers, lenders) — the ids to assign people, tasks and deals to. FUB: GET /v1/users.

NameTypeReqDescription
emailstring–Email address.
limitinteger–Page size, 1-100 (FUB default 10).
namestring–Exact full name.
offsetinteger–Rows to skip. For deep paging prefer `next`.
rolestring–e.g. "Broker", "Agent", "Lender".
sortstring–Sort order.

No output schema declared.

No examples provided.

fub_log_call ~145

Record a phone call made or received outside FUB, with its outcome. Does not place a call. FUB: POST /v1/calls.

NameTypeReqDescription
durationinteger–Seconds.
fromNumberstring––
isIncomingbooleanyestrue for an incoming call, false for outgoing.
notestring–Call notes.
outcomestring––
personIdintegeryesThe person id.
phonestringyesThe number called or calling.
recordingUrlstring––
toNumberstring––
userIdinteger–User who took the call (admins only).

No output schema declared.

No examples provided.

fub_search_people ~508

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.

NameTypeReqDescription
assignedPondIdinteger–Assigned pond id.
assignedTostring–Full name of the assigned agent.
assignedUserIdinteger–Assigned agent's user id.
contactedboolean–Whether they have been contacted.
createdAfterstring–ISO-8601 UTC, e.g. 2026-07-01T00:00:00Z.
emailstring–Exact email address.
fieldsstring–Comma-separated fields to return, or "allFields" / "allCustom".
firstNamestring–Partial match on first name.
includeTrashboolean–Include people in the Trash stage.
lastActivityAfterstring–e.g. "2026-01-31 00:00:00".
lastActivityBeforestring–e.g. "2026-01-31 00:00:00".
lastNamestring–Partial match on last name.
limitinteger–Page size, 1-100 (FUB default 10).
namestring–Partial match on full name.
nextstring–Cursor from the previous page's _metadata.next. Recommended over offset.
offsetinteger–Rows to skip. For deep paging prefer `next`.
phonestring–Phone number.
priceAboveinteger–Price above this value.
priceBelowinteger–Price below this value.
smartListIdinteger–Only people matching this Smart List.
sortstring–Sort field, e.g. "created", "lastActivity", "name"; prefix "-" for descending.
sourcestring–Lead source, e.g. "Zillow".
stagestring–Stage name, e.g. "Lead", "Past Client" (see fub_list_stages).
tagsstring–Comma-separated tags; matches ANY ("Foo,Bar").
updatedAfterstring–ISO-8601 UTC.

No output schema declared.

No examples provided.

fub_send_lead_event ~253

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.

NameTypeReqDescription
descriptionstring–Any additional information.
messagestring–A message from the lead.
occurredAtstring–ISO-8601 time it happened. Events older than a day are historical and do not trigger workflows.
pageTitlestring–For Viewed Page events.
pageUrlstring–For Viewed Page events.
personobjectyesThe lead.
propertyobject–The property the event is about.
sourcestring–Lead source name, e.g. "MyWebsite.com". Used for Lead Flow routing.
systemstring–Name of the system sending the lead.
typestringyesEvent type. "Inquiry" becomes Property or General Inquiry automatically.

No output schema declared.

No examples provided.

fub_update_deal ~180

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}.

NameTypeReqDescription
commissionValueinteger––
descriptionstring––
dueDiligenceDatestring––
earnestMoneyDueDatestring––
finalWalkThroughDatestring––
idintegeryesThe deal id.
mutualAcceptanceDatestring––
namestring––
peopleIdsarray––
possessionDatestring––
priceinteger––
projectedCloseDatestring–Projected close date.
stageIdinteger–Move to this pipeline stage.
userIdsarray––

No output schema declared.

No examples provided.

fub_update_person ~306

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}.

NameTypeReqDescription
addressesarray––
assignedLenderIdinteger––
assignedLenderNamestring––
assignedPondIdinteger––
assignedTostring–Full name of the agent.
assignedUserIdinteger––
backgroundstring–Background notes (multi-line).
contactedboolean––
customFieldsobject–Account custom fields, keyed by their API name (e.g. {"customBirthday": "1990-02-16"}). See the `name` column of fub_list_custom_fields. null clears a value.
emailsarray––
firstNamestring––
idintegeryesThe person id.
lastNamestring––
mergeTagsboolean–Merge `tags` into the existing tags instead of replacing them.
phonesarray––
priceinteger––
stagestring–Stage name (see fub_list_stages).
tagsarray––
timeframeIdinteger––

No output schema declared.

No examples provided.

fub_update_task ~104

Update a task — mark it complete, rename, retype or reassign it. FUB: PUT /v1/tasks/{id}.

NameTypeReqDescription
assignedTostring––
assignedUserIdinteger––
idintegeryesThe task id.
isCompletedboolean–Mark complete (true) or reopen (false).
namestring––
personIdinteger––
typestring––

No output schema declared.

No examples provided.

Common questions

What is the io.usefulapi/follow-up-boss MCP server?

io.usefulapi/follow-up-boss is an MCP server listed in the public MCP registry as io.usefulapi/follow-up-boss. Search Follow Up Boss leads, review calls and deals, and add notes, tasks and deal updates. This page covers its hosted endpoint (https://follow-up-boss.usefulapi.io/mcp).

Is the io.usefulapi/follow-up-boss MCP server safe to use?

io.usefulapi/follow-up-boss scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.usefulapi/follow-up-boss MCP server expose?

io.usefulapi/follow-up-boss exposes 22 tools: fub_get_identity, fub_search_people, fub_get_person, fub_check_duplicate_person, fub_list_events, and 17 more. Their descriptions and schemas cost roughly 3,566 tokens of context every time the server is loaded.

Does the io.usefulapi/follow-up-boss MCP server require authentication?

Yes. io.usefulapi/follow-up-boss asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the io.usefulapi/follow-up-boss MCP server still maintained?

io.usefulapi/follow-up-boss is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.