MCP server
The official Model Context Protocol server. This reference is generated directly from the shipped tool registry — it cannot drift from the code.
Read tools — the eyes
analyze_conversation1 argsDeterministic conversation dynamics for one thread: message balance, initiation, question rate, average lengths, and who is waiting on whom. Use before advising on next steps.
discover_candidates5 argsSearch discovery candidates with filters. Filters: minSignal (0-100), maxDistanceMiles, intentAlignedOnly, sharedInterestsOnly.
get_completion_gaps0 argsWhat is missing from the acting user's profile and MindSync assessment, plus lowest-confidence traits. Use this before coaching the user to complete their profile - then ask conversationally and submit via update_my_profile / submit_assessment_responses.
get_conversation1 argsFull message thread between the acting user and one counterpart.
get_daily_mix1 argsToday's curated set of candidate profiles for the acting user, ordered by compatibility signal.
get_match_rationale1 argsExplain why a target user is (or is not) a strong match: signal percent, supporting reasons, friction points, and conversation starters.
get_my_profile0 argsFull profile of the acting user: photos, prompts, interests, verification, and location state.
get_my_psychometrics0 argsThe acting user's complete psychometric analysis: Big Five with facets, emotional intelligence, relationship profile (attachment, love languages, communication/conflict styles), values, confidence per trait, and archetype summary.
get_next_questions1 argsThe next MindSync questions for this user (server-targeted batch first, then any unanswered). Returns full text and options so you can ask them naturally in conversation.
get_profile1 argsShared profile of another user by id. Visibility follows platform rules exactly as in the app.
get_psychometric_delta1 argsHow the acting user's traits moved over a window: changed, stable, and confidence shifts.
get_psychometrics1 argsPsychometric summary of another user. The platform only returns what that user permits; expect NOT_FOUND or FORBIDDEN for non-shared profiles.
get_trait_history2 argsActing user's trait trajectory over time from repeated assessment rounds. Optional traitNames filter, daysBack window (default 30).
like_user1 argsLike a candidate on behalf of the acting user. If the target already liked the viewer this creates a mutual match; otherwise it registers interest (pending).
list_conversations0 argsInbox summary of active conversations: counterpart, unread count, last message, block states.
list_matches0 argsAll matches for the acting user with status and compatibility score.
seed_persona_profiles3 argsSeed clearly-labeled SYNTHETIC persona profiles (BrandBrain-generated demo fixtures) directly into Postgres, fully onboarded in one call. Beyond the profiles row this writes, in the same transaction: photo captions, a psychometric_analyses snapshot (MindSync-shaped), a verified user_kyc_state row, and match preferences in lifestyle_preferences — so personas read as complete, verified members. Rows are forced to the internal_test audience (never public), emails use persona-<slug>@seed.psymatch.me, and all derived data is deterministic per slug. Re-seeding is idempotent (existing analyses are kept; KYC is refreshed). Requires PSYMATCH_MCP_DATABASE_URL (or DATABASE_URL) in the MCP server env. Use dryRun first, then seed, then verify with admin_list_users (profileAudience=internal_test). This tool fully replaces scripts/personas/seed-personas-supabase.ts and scripts/personas/enrich-personas-supabase.ts.
submit_assessment_responses1 argsSubmit answers the user gave you for MindSync questions. Each item needs questionId + answer; choice questions accept an option value/id/text, scales accept a number. Ask naturally, confirm wording with the user for open text, then submit.
suggest_conversation_starters1 argsProfile-aware opener suggestions for starting a conversation with a match.
update_my_profile4 argsUpdate profile text fields on behalf of the acting user. Only send content the user has seen and approved word-for-word. Omitted fields are left unchanged.
whoami0 argsIdentify the acting PsiMatch user. Use first to confirm whose data you are operating on.
Action tools — opt-in only
mark_message_read1 argsMark a single message as read on behalf of the acting user.
respond_to_match2 argsAccept or reject a pending match. status must be one of ACCEPTED or REJECTED.
send_message2 argsSend a chat message to a matched user on behalf of the acting user. Requires agent-send opt-in; rate limited to 10 sends/minute.
Admin tools — gated
admin_become_user1 argsImpersonate a user by profile id: every subsequent tool call runs as that user until admin_clear_actor. Requires an admin session; the API rejects non-admins and other admins.
admin_clear_actor0 argsStop impersonating; subsequent calls run as the real admin again.
admin_list_users5 argsSearch users as an admin (email/name substring, cohort filter, moderation flags). Use to find profile ids for simulations.
admin_whoami0 argsAdmin identity probe: the real authenticated admin, whether the API recognizes admin authority, and the current impersonation target.
Resources
psymatch://meActing user's profile snapshot
psymatch://matchesCurrent matches with status and compatibility
psymatch://conversationsConversation index with unread counts
psymatch://psychometrics/selfFull psychometric analysis of the acting user
Prompts
dating-coachReview my matches and conversations, then propose concrete next actions grounded in compatibility signals.
psychometric-deep-diveWalk me through my assessment results and what they mean for how I date.
icebreakerDraft openers for a specific match based on real profile overlap.
run-dating-simulationAdmin-only: drive a simulated two-user dating flow end to end using impersonation.