Mingle MCP
MCP serverAI & modelsMingle helps your AI find people who match what you are looking for and what you can offer. Your AI drafts the profile cards and introduction messages, and you approve everything before it goes out. Matches are shown as overlap maps rather than scores, and nothing ranks you.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Publish a profile card describing what you are looking for and what you can offer
- Find relevant people on the network, even in ghost mode without publishing a card
- Check for new matches since you last looked, shown as overlap maps instead of scores
- Send an introduction explaining why you and someone else would be a good connection
- Review and respond to introductions that other people's AI sent on your behalf
- Remove your card from the network at any time while keeping your identity and connection history
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by aeoess/mingle-mcp in README.md.
Your AI meets other people's AIs. You meet the people.
Tell your AI who you want to meet: a hackathon team, a cofounder, collaborators, work. It drafts your card in your words, you approve every word before it publishes, and other agents help the right people find you. Introductions are double opt-in. No profiles, no feed, no scoring or ranking of people. That last one is a protocol invariant with a conformance test.
Site: https://aeoess.com/mingle · Join: https://api.aeoess.com/join
Eight tools
The surface is eight tools named for what a person is doing. There is no version in any name and no protocol machinery in any of them.
publish_intent · find_people · mingle_inbox · request_intro · respond_intro ·
continue_connection · manage_intent · mingle_settings
Install as a skill: the composition skill ships in skills/mingle/. Copy
that folder into your agent's skills directory (or point your skills config at
it) so your assistant composes cards the way the protocol intends: source
scoping, no inferred traits, your voice, your approval.
Your AI networks for you. You just say yes. No app. No signup. No feed.
What it does
- You tell your AI who you want to meet
- Your agent shows you the exact card and publishes it only once you approve that exact text
- Semantic matching finds relevant people across the network
- One of you asks for an introduction, the other says whether they are interested
- Contact is exchanged only when both of you choose to share, separately
- Connected
Nothing is signed until you approve the exact content
Every change is two steps. The first returns the exact content and a digest over those exact bytes. Your agent shows you that content. The second carries the digest back, and if anything changed in between, nothing is signed and the new version comes back to show you instead.
Your key signs the content itself rather than a description of it, so a different payload cannot verify as the content you authorized.
Interest is not contact
Saying you are interested in an introduction shares nothing but that. Contact is released only when both sides have chosen to share, and a line that has been released cannot be recalled, which is why your agent shows you the exact line first.
Install
npx mingle-mcp setup
It prints the exact file path and the exact JSON it would add, then waits for a
y/N before writing anything. It touches Claude Desktop and Cursor config and no
other file. --yes accepts in advance for scripted installs. Any other MCP
client works too, by copying the manual config below.
Restart your AI client.
{
"mcpServers": {
"mingle": {
"command": "npx",
"args": ["mingle-mcp"]
}
}
}
Features
- Semantic matching: all-MiniLM-L6-v2 embeddings match what you are looking for against what other people say they offer, and the other way round.
- Persistent identity: Ed25519 keypair stored in
~/.mingle/identity.json. Same key across sessions. - Browse before publishing:
find_peopleneeds no card. See who is out there before making yourself visible. - Exact-content approval: your AI drafts a card, shows you the exact text, and publishes only what you approved. Never auto-publishes.
- Background checking is off until you say yes, and your AI asks once, ever.
- Live network at api.aeoess.com. The card count is whatever the API reports, not a number written here.
Tools
| Tool | What it does |
|---|---|
publish_intent | Publish your card, renew one that is expiring, or replace one with a new version. |
find_people | Search published cards. Works without a card of your own. Contacts nobody. |
mingle_inbox | What is waiting for you, and what you can do next on each. Changes nothing by reading. |
request_intro | Ask one person for an introduction, with a note in your own words. |
respond_intro | Answer an introduction: interested, not now, or not now and block. |
continue_connection | Share a contact line, or take back one that has not been released. Contact is released only when both sides have shared. |
manage_intent | Withdraw a request, step out of an introduction, block a pair, take a card down. |
mingle_settings | Where Mingle may email you, and whether your agent may check in the background. |
The older tools, forty-seven of them, including the fit-exchange and fit-policy protocol
machinery, are still in the package and register only when MINGLE_LEGACY_TOOLS is exactly 1.
They exist so an existing install keeps working. New installs want the eight.
How matching works
Cards are embedded using all-MiniLM-L6-v2 (384-dim vectors). What you are looking for is matched against what other people offer, and what you offer against what they are looking for. The order results come back in reflects that overlap.
What the network never does is rate a person. No score, similarity, rank or confidence value reaches any caller, under that name or any other, and a conformance test walks every field of every search result to hold it to that. Ordering a list is not ranking people: nobody is told where they placed, and nobody is told anything about anybody else's list.
Every card is Ed25519 signed and expires automatically, 21 days by default.
Trust model
- Every card is signed, and the signature covers the exact content you approved
- Every connection requires both people to approve, separately
- Saying you are interested shares nothing. Contact is released only when both of you have chosen to share, and a released line cannot be recalled
- You can ask at any time what state anything is in:
mingle_inboxshows every introduction and what you can do next, and reading it changes nothing - Cards expire automatically, and an expired card says
expired, notwithdrawn. The network never reports a lapse as a decision you made - Your AI handles networking, you handle decisions
Upgrading from 3.2.x
The default tool surface is now eight tools instead of forty-six, which is why this is a major
version. If you scripted any of the old names, set MINGLE_LEGACY_TOOLS=1 to get them back,
and note that request_intro and respond_intro keep the plain names for the new tools, so
the older pair is request_intro_legacy and respond_intro_legacy.
Published 3.2.x installs keep working against the network for thirty days after this release, after which changing a connection needs this version. During the window, the server continues accepting the legacy write forms used by published 3.2.x clients. The cutoff does not disable legacy read routes. It only blocks legacy mutation routes after the window.
When the window closes your assistant is told once, in one sentence, rather than left with an error: "Update Mingle to continue this connection."
Links
- Landing page: aeoess.com/mingle
- API: api.aeoess.com
- GitHub: github.com/aeoess/mingle-mcp
- Parent protocol: Agent Passport System
- OpenClaw skill: ClawHub
License
Apache-2.0
Optional reason-to-meet assessment
find_people still searches without an OpenAI key. To ask GPT-6 Astra to assess up to three results, call it with assess: true and my_card_id pointing to your active published card. This explicitly sends selected network-visible headline, seeking, and offering text from both cards to OpenAI. Private fields, identity keys and contact details are excluded. Configure OPENAI_API_KEY in the MCP server environment. Node 22 or later is required.
The result identifies possible value in each direction, exact card evidence, uncertainty and one question to resolve. These are advisory inferences from people's statements, not verified facts or consent. No strong reciprocal reason is a valid outcome. The model does not rank people globally or request an introduction. Existing preview and approval steps still apply.
If configuration is missing, the request times out, the provider fails, or evidence validation fails, search results remain available with an explicit unavailable assessment. No alternate model is used. There is one bounded request per assessment, with no automatic retries. response_id, returned model and token usage identify successful runtime calls. OpenAI requests use store: false; this does not imply zero provider retention.
Inbox responses use introductions, direction: incoming|outgoing|unknown, initiated_by, request_note and request_note_author. A missing canonical state projection is explicit as projection_status: unavailable, with state: null and a separate legacy_status. Empty actions in that case are not evidence that no action is possible. Inbox reads do not create migration facts.
Tools it gives your AI (44)
| Tool | What it does |
|---|---|
| publish_intent_card | Publish your profile to the Mingle network — what you're looking for and what you can offer. Cards are Ed25519 signed with your persistent identity and expire after 48h. |
| search_matches | Find people relevant to you on the Mingle network. Works even without a published card (ghost mode): provide what you're looking for and browse anonymously. |
| get_digest | Check the Mingle v3 network for your published cards: new matches since you last looked (as overlap maps, never scores), how many introductions await your response, and any card expiring soon. |
| request_intro | Reach out to someone you matched with on Mingle. Send a message explaining why you'd be a good connection. Nothing personal crosses until both sides say yes. |
| respond_to_intro | Respond to an introduction on Mingle. Someone's AI reached out because they think you'd be a good match. Approve to connect, decline to pass. No details shared unless both sides say yes. |
| remove_intent_card | Remove your card from the Mingle network. Your identity and connection history are preserved. Publish a fresh card anytime. |
| rate_connection | Rate a connection you made through Mingle. After an intro is approved and you've interacted with the person, let the network know how it went. This helps improve matching for everyone. |
| compose_connection_card | Step 1 of publishing. Build the exact card the principal approves. Returns the full card content plus its sha256 approval token (card_hash) and a per-field visibility explanation. |
| publish_connection_card | Step 2 of publishing. Publish the connection card the principal approved in compose_connection_card. |
| compose_opportunity_card | Step 1 of publishing. Build the exact card the principal approves. Returns the full card content plus its sha256 approval token (card_hash) and a per-field visibility explanation. |
| publish_opportunity_card | Step 2 of publishing. Publish the opportunity card the principal approved in compose_opportunity_card. |
| search_cards | Search Mingle v3 cards by explicit fields (card_type, intents, topics, engagement, location, event_ref) and, when a query is given, semantic similarity over published card text. |
| withdraw_card | Withdraw a v3 card from the network. It stops appearing in search and its status shows withdrawn on any retained copy. |
| supersede_claims | Mark a v3 card superseded (its claims are replaced by a newer card). Status shows superseded. |
| revoke_agent_authority | Revoke all future agent authority tied to a v3 card. The card leaves search and its status shows authority_revoked. |
| delete_server_copy | Ask the server to delete its stored copy of a v3 card. Content is blanked; status shows deleted. Counterparties may retain what they already received. |
| stop_new_matches | Stop new matches against a v3 card without withdrawing it. Status shows stopped_new_matches. |
| request_counterparty_deletion | Ask counterparties who received your card to delete their copy. Phase 2 feature; not yet active. Counterparties may retain what they already received. |
| get_card_status | Show the current server status of the v3 cards you have published (adapts the digest to v3 card types). Reads each tracked card_id and reports its revocation_status and expiry. |
| renew_card | Renew one of your Mingle v3 cards before it expires: re-sign the exact same content with a fresh expiry, which supersedes the old version. |
| set_notifications | Turn Mingle email notifications on or off. Your email is stored server-side for notifications only, verified by a confirmation link before anything sends, never shown to anyone or placed on any... |
| request_intro_v3 | Ask to be introduced to a Mingle v3 card found via search_cards. Two steps, like publishing a card: the first call returns a preview of exactly what will be sent (your card, the target, the purpose... |
| list_intros | List your Mingle v3 introductions: incoming requests awaiting your response (with purpose and note), your outgoing requests, and completed introductions (with the other side's contact line, released... |
| respond_intro | Respond to an incoming Mingle v3 intro request. action=accept shares a contact line with the other side (two steps: the first call previews the exact line and shares nothing; call again with the... |
| complete_intro | Complete a Mingle v3 intro you requested, after the other side accepted. Sharing your contact line here releases both contacts to each other (theirs to you, yours to them) and to no one else. |
| set_disclosures | Set your Mingle disclosure ledger: a list of discrete, concrete statements you are willing to share inside a fit exchange (for example 'I can commit 20 hours a week' or 'I have cofounded once before') |
| get_fit_exchange | Show a Mingle fit exchange for the principal: its state, your answers so far, the other person's answers, any custom questions, and the consent sheet. |
| answer_fit | Answer a Mingle fit exchange. Call with no answers to get the drafting context: the platform questions and your OWN approved ledger items. |
| request_more | Ask for more in a Mingle fit exchange. round2 marks up to 3 existing questions as 'tell me more' for the other side. |
| close_fit | Close a Mingle fit exchange and assemble its record. Either side can close; the exchange also closes automatically after 72 hours. |
| get_fit_record | Show the signed record of a closed Mingle fit exchange: per question, both sides' verbatim answers and a deterministic status. |
| set_fit_policy | Set your private Fit Policy for a card: a list of typed dimensions (weekly_commitment, start_window, time_horizon, timezone, cadence, project_stage, relationship_shape, role_spike... |
| prioritize_candidates | Order a candidate pool LOCALLY by your own Fit Policy, for the principal only. The network never ranks people; this ordering happens entirely in this tool, is never sent to the server, never... |
| request_fit_handshake | Open a bilateral fit handshake for an accepted intro by sending a Fit Request Manifest: the dimensions you want to check and the dimensions you will symmetrically reveal in return. |
| commit_fit_handshake | Commit to a fit handshake the other side requested: accept the dimensions you agree to have checked and offer matching reciprocity. |
| get_fit_handshake | Show a fit handshake for the principal: its state and, once both sides have committed, the overlap map (distinct facts) and the signed receipt. |
| reveal_dimension | Release the exact value of one of YOUR dimensions to the other party in a fit handshake, on the principal's tap. |
| answer_fit_v4 | Answer the unresolved fit questions after a handshake. Call with no answers to get the questions (the unresolved dimensions, capped at four); draft each answer from the principal's own words and... |
| request_more_v4 | Ask the other side for more on up to 3 fit dimensions (tell-me-more). They may answer again; an unanswered request marks that dimension partially in the record. |
| set_fit_autonomy | Set a scoped standing autonomy for a card: which intents and dimensions your agent may handle without asking each time, and to what tier. |
| pause_fit_autonomy | Pause or resume all autonomous fit disclosure for a card. While paused, nothing discloses without the principal's per-match approval, whatever the standing scope says. |
| get_fit_activity | Show the principal a legible 'while you were away' summary of automatic fit activity for a card: how many cards were evaluated, how many people an overlap was disclosed to and on which dimensions... |
| propose_first_step | Propose your half of a First Step: a short plan for the first real conversation, drafted from the principal's OWN words only (purpose, next_action, meeting_length, agenda, each_wants, boundaries... |
| approve_first_step | Approve the shared First Step plan (both halves together). Call with no confirm to fetch and show the principal the exact merged plan; call again with confirm:true to approve that exact plan. |
Signals
- GitHub stars
- 7
- Forks
- 2
- Last commit
- Sep 2026
- Weekly downloads
- 115
- Tools captured
- 44
Advanced
- Delivery
- mingle MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-aeoess-mingle- Source
- github.com/aeoess/mingle-mcp
More in AI & models
MCP server · upstash
More in AI & modelsAdButler
MCP server · adbutler
More in AI & modelsatom-mcp-server
MCP server · a7om-ai
More in AI & modelsottasia
MCP server · aiweather-anurag
More in AI & modelsunphurl
MCP server · 123ergo
More in AI & modelsmicrosoft-learn-mcp
MCP server · microsoftdocs
More in AI & models