{"serverId":"mcp-registry/io.github.marcus160365/client-compass","tools":[{"name":"batch_create_persons","fixed":{"name":"batch_create_persons","description":"Create up to 10 people (clients) in parallel and generate a Client Compass for each. Use this for re-engaging dormant leads — a name is enough. IMPORTANT: Return the full Start Here coaching for each person (ask_them, know_this, avoid_this) — do not summarize or create tables. Present each person's compass_summary_text and all three Start Here items in full.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["contacts"],"properties":{"contacts":{"type":"array","items":{"type":"object","required":["first_name","last_name"],"properties":{"dob":{"type":"string","description":"Date of birth in YYYY-MM-DD format (optional)"},"vertical":{"enum":["real_estate","sales","civic","insurance"],"type":"string"},"last_name":{"type":"string","maxLength":200,"minLength":1},"first_name":{"type":"string","maxLength":200,"minLength":1},"middle_name":{"type":"string","maxLength":200}}},"maxItems":10,"minItems":1,"description":"Array of 1–10 contacts to profile. First and last name required for each."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Batch Create Persons"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":303,"tokensAfter":303},{"name":"create_person","fixed":{"name":"create_person","description":"Save a new person (client) to the user's people list. Only call this when the user asks to save or add someone. Never call it to get a Lowdown, a card, or to go deeper: use generate_compass for every read. Requires the user to have a profession set.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["first_name","last_name"],"properties":{"dob":{"type":"string","description":"Date of birth in YYYY-MM-DD format (optional, improves compass accuracy). Do not ask the user for this before calling — proceed with name only and let the engine handle it."},"vertical":{"enum":["real_estate","sales","civic","insurance"],"type":"string","description":"Industry vertical override. Defaults to the user's profession if omitted."},"last_name":{"type":"string","maxLength":200,"minLength":1,"description":"Last name (required)"},"first_name":{"type":"string","maxLength":200,"minLength":1,"description":"First name (required)"},"key_parties":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"enum":["spouse_partner","parent","colleague","friend","investor"],"type":"string"},"name":{"type":"string"}}},"description":"Key parties involved (e.g. spouse, parent, colleague)"},"middle_name":{"type":"string","maxLength":200,"description":"Middle name (optional)"},"must_haves_avoids":{"type":"string","maxLength":2000,"description":"Notes on must-haves or things to avoid"},"is_first_interaction":{"type":"boolean","description":"Is this the first interaction with this client? Default: true"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Create Person"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":444,"tokensAfter":444},{"name":"get_chat_messages","fixed":{"name":"get_chat_messages","description":"Retrieve chat message history for a specific person (client). Returns messages in reverse chronological order.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["person_id"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1,"description":"Max messages to return (default: 50)"},"cursor":{"type":"string","description":"Pagination cursor from a previous response"},"person_id":{"type":"string","description":"The UUID of the person"}}},"annotations":{"readOnlyHint":true},"title":"Get Chat Messages"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"get_me","fixed":{"name":"get_me","description":"Retrieve the authenticated user's profile information.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true},"title":"Get Current User"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"get_person","fixed":{"name":"get_person","description":"Retrieve a single person (client) by their ID. Returns contact details only, not the Lowdown: for any read, card or \"go deeper\", call generate_compass.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["person_id"],"properties":{"person_id":{"type":"string","description":"The UUID of the person to retrieve"}}},"annotations":{"readOnlyHint":true},"title":"Get Person"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"health_check","fixed":{"name":"health_check","description":"Check the health status of the numbrU API","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true},"title":"Health Check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"list_people","fixed":{"name":"list_people","description":"Retrieve all people (clients) for the authenticated user. Optionally search by name. Returns contact details only, not the Lowdown: for any read, card or \"go deeper\", call generate_compass.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"pace":{"type":"string","description":"Filter by preferred pace (e.g. quick, measured, deliberate)"},"tone":{"type":"string","description":"Filter by tone (e.g. confident, collaborative, analytical)"},"voice":{"type":"string","description":"Filter by communication voice (e.g. direct, warm, conversational)"},"search":{"type":"string","description":"Search by name (partial match, case-insensitive)"},"archetype":{"type":"string","description":"Filter by archetype name"}}},"annotations":{"readOnlyHint":true},"title":"List People"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":223,"tokensAfter":223},{"name":"send_chat_message","fixed":{"name":"send_chat_message","description":"Send a chat message about a specific person (client). The AI will respond with tailored advice based on the client's Compass profile.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["person_id","message"],"properties":{"message":{"type":"string","minLength":1,"description":"The message to send"},"person_id":{"type":"string","description":"The UUID of the person"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Send Chat Message"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128},{"name":"update_profile","fixed":{"name":"update_profile","description":"Update the user's profile settings. Can change name, profession, phone, DOB, or custom prompt.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"dob":{"type":"string","description":"Date of birth YYYY-MM-DD"},"phone":{"type":"string","description":"Phone number"},"last_name":{"type":"string","description":"Last name"},"first_name":{"type":"string","description":"First name"},"profession":{"enum":["real_estate","sales","civic","insurance","design","hospitality_travel","event_planning"],"type":"string","description":"Profession"},"maiden_name":{"type":"string","description":"Maiden/birth name"},"middle_name":{"type":"string","description":"Middle name"},"custom_prompt":{"type":"string","description":"Custom instructions for AI interactions"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Update Profile"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":234,"tokensAfter":234}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}