psymatch
/ Docs
← Back to app
MCP server
  • MCP overview and quickstart
  • Tool highlights
  • Resources and prompts
  • Admin simulation flows

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 args

Deterministic 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 args

Search discovery candidates with filters. Filters: minSignal (0-100), maxDistanceMiles, intentAlignedOnly, sharedInterestsOnly.

get_completion_gaps0 args

What 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 args

Full message thread between the acting user and one counterpart.

get_daily_mix1 args

Today's curated set of candidate profiles for the acting user, ordered by compatibility signal.

get_match_rationale1 args

Explain why a target user is (or is not) a strong match: signal percent, supporting reasons, friction points, and conversation starters.

get_my_profile0 args

Full profile of the acting user: photos, prompts, interests, verification, and location state.

get_my_psychometrics0 args

The 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 args

The 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 args

Shared profile of another user by id. Visibility follows platform rules exactly as in the app.

get_psychometric_delta1 args

How the acting user's traits moved over a window: changed, stable, and confidence shifts.

get_psychometrics1 args

Psychometric summary of another user. The platform only returns what that user permits; expect NOT_FOUND or FORBIDDEN for non-shared profiles.

get_trait_history2 args

Acting user's trait trajectory over time from repeated assessment rounds. Optional traitNames filter, daysBack window (default 30).

like_user1 args

Like 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 args

Inbox summary of active conversations: counterpart, unread count, last message, block states.

list_matches0 args

All matches for the acting user with status and compatibility score.

seed_persona_profiles3 args

Seed 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 args

Submit 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 args

Profile-aware opener suggestions for starting a conversation with a match.

update_my_profile4 args

Update 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 args

Identify the acting PsiMatch user. Use first to confirm whose data you are operating on.

Action tools — opt-in only

mark_message_read1 args

Mark a single message as read on behalf of the acting user.

respond_to_match2 args

Accept or reject a pending match. status must be one of ACCEPTED or REJECTED.

send_message2 args

Send 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 args

Impersonate 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 args

Stop impersonating; subsequent calls run as the real admin again.

admin_list_users5 args

Search users as an admin (email/name substring, cohort filter, moderation flags). Use to find profile ids for simulations.

admin_whoami0 args

Admin identity probe: the real authenticated admin, whether the API recognizes admin authority, and the current impersonation target.

Resources

  • psymatch://me

    Acting user's profile snapshot

  • psymatch://matches

    Current matches with status and compatibility

  • psymatch://conversations

    Conversation index with unread counts

  • psymatch://psychometrics/self

    Full psychometric analysis of the acting user

Prompts

  • dating-coach

    Review my matches and conversations, then propose concrete next actions grounded in compatibility signals.

  • psychometric-deep-dive

    Walk me through my assessment results and what they mean for how I date.

  • icebreaker

    Draft openers for a specific match based on real profile overlap.

  • run-dating-simulation

    Admin-only: drive a simulated two-user dating flow end to end using impersonation.