Server has 27 tools with mostly complete schemas and descriptions. Naming follows verb_noun convention well (get_*, create_*, update_*, delete_*, search_*). Descriptions average ~150 chars, meeting baseline. However, many tools lack parameter descriptions (e.g., get_calls, get_events, get_tasks have minimal param docs). Output schemas are not documented. Error handling is absent, no recovery guidance or actionable error messages. Security: no evidence of secret injection or permission gating. Composition is reasonable but some tools could be batched (e.g., get_person + get_people could share pagination logic). Discovery tools (find_data_location, get_schema_hints) are well-designed.
Create a new custom field in Follow Up Boss
Create a new person/contact in Follow Up Boss with optional custom fields
Delete a person/contact from Follow Up Boss
⭐ The ultimate reporting tool. Fetch data from multiple FUB API endpoints and process it with Python to create ANY report imaginable. Returns EXACT numbers, not approximations. Includes powerful utilities: groupBy, countBy, sumBy, unique, aggregate, and more. Handles massive datasets intelligently with progress tracking and automatic pagination.
🔍 DISCOVERY TOOL - Use FIRST for natural language queries! Search for data by keywords to find where information lives. Searches across: endpoints (people, deals, tasks), stages, custom fields, sources, users, and more. Returns ranked results with query hints. Example: keywords=['realtor', 'stage'] finds stage filtering options.
Singular get_* tools (get_person, get_call, get_event, get_deal, get_task, get_note, get_appointment, get_me) have minimal descriptions (<50 chars). LLMs cannot distinguish when to use them vs plural variants.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does get_person return person_id for use in update_person?). Breaks tool chaining.
No error handling or recovery guidance. Tools lack actionable error messages (e.g., 'Person not found. Try search_people() first.'). Agents cannot self-correct on failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Get details of a specific appointment by ID
Get a list of appointments from Follow Up Boss
Get details of a specific call by ID
Get a list of calls from Follow Up Boss with optional filtering
Get all custom fields defined in Follow Up Boss
Get details of a specific deal by ID
Get a list of deals from Follow Up Boss with optional filtering
Get details of a specific event by ID
Get a list of events from Follow Up Boss
Get the current authenticated user's information
Get details of a specific note by ID
Get a list of notes from Follow Up Boss
Get a list of people/contacts from Follow Up Boss. Supports filtering by stage, source, user assignment, and SMART DATE FILTERING. Examples: created='last 7 days', created='this month', created='older than 30 days'. Set includeCustomFields=true to get custom field values (recommended!).
Get details of a specific person by ID
Get detailed schema information with query hints for an endpoint. Returns available fields, filter options, common queries, and examples. Use after find_data_location to understand how to query the data.
Get all contact sources from Follow Up Boss
Get all pipeline stages from Follow Up Boss
Get details of a specific task by ID
Get a list of tasks from Follow Up Boss
Get a list of users/team members from Follow Up Boss
Search for people by name, email, or phone
Update an existing person/contact with new information
Destructive tool (delete_person) lacks confirmation/dry-run pattern. No protection against accidental deletion by agents.
No evidence of secret injection, permission gating, or audit logging. API credentials likely exposed as environment variables without server-side validation.