Search / com.overlap-ai/overlap
Overlap
R0· no sign-inRecords what you're working on so Overlap can introduce you to someone two weeks ahead of you.
v0.3.0 · active · website · descriptor JSON · versions
Search / com.overlap-ai/overlap
R0· no sign-inRecords what you're working on so Overlap can introduce you to someone two weeks ahead of you.
v0.3.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"overlap": {
"type": "http",
"url": "https://overlap-ai.com/api/mcp"
}
}
}claude mcp add --transport http overlap https://overlap-ai.com/api/mcp[mcp_servers.overlap]
url = "https://overlap-ai.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"overlap": {
"type": "remote",
"url": "https://overlap-ai.com/api/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"overlap": {
"type": "http",
"url": "https://overlap-ai.com/api/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=overlap&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vb3ZlcmxhcC1haS5jb20vYXBpL21jcCJ9"
}{
"servers": {
"overlap": {
"type": "http",
"url": "https://overlap-ai.com/api/mcp"
}
}
}{
"mcpServers": {
"overlap": {
"httpUrl": "https://overlap-ai.com/api/mcp"
}
}
}extensions:
"overlap":
enabled: true
name: "overlap"
type: streamable_http
uri: "https://overlap-ai.com/api/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations7 of 7 tools declare readOnlyHint or destructiveHinttools.directory_hints3 of 7 tools declare all four hints; missing: confirm_match_request (idempotentHint); respond_to_match (idempotentHint); withdraw_match_request (idempotentHint); …tools.token_costabout 1,804 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes10 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagecreate_match_requestchangedannotationscreate_match_requestchangeddescriptionSubmit what the user is going through, to find someone living through something similar. Write the match request from the current conversation. Write 2–5 sentences in the third person, and 200–1500 characters. Use the words of the user, not formal or clinical words. Cover three things: the situation, where the user is in it, and what help they want. Write it so that a stranger in the same place recognizes themselves. Any situation belongs here: an illness, a company, a move, a course, a hard year. Example of a good match request: "She was diagnosed with early-stage breast cancer four months ago and is halfway through chemotherapy. The medical side goes to plan. She finds the isolation harder than the treatment. The people around her keep telling her to stay positive. She hopes to hear from someone at a similar stage who understands the day-to-day of it." Never invent a detail. Never include a name, an email address, an employer or another personal identifier. This call creates a new independent DRAFT. It replaces nothing in the pool. The draft stays saved until the user approves it, revises it or discards it. Show the stored match request back to the user VERBATIM. Then ask the user to approve it, or to tell you what to change. Call confirm_match_request with the request_id only after the user approves that exact version. If the user asks for a change, call create_match_request again. Pass the complete new draft, and set replaces_draft_id to the earlier request_id. Then show the new stored version and ask again. If the user declines, call withdraw_match_request with that request_id to discard the draft.
Use this tool to save a private match request draft when the user wants to find a peer living through a similar personal situation. Write the match request from the current conversation. Write 2–5 sentences in the third person, and 200–1500 characters. Use the words of the user, not formal or clinical words. Cover three things: the situation, where the user is in it, and what help they want. Write it so that a stranger in the same place recognizes themselves. Any situation belongs here: an illness, a company, a move, a course, a hard year. Example of a good match request: "She was diagnosed with early-stage breast cancer four months ago and is halfway through chemotherapy. The medical side goes to plan. She finds the isolation harder than the treatment. The people around her keep telling her to stay positive. She hopes to hear from someone at a similar stage who understands the day-to-day of it." Never invent a detail. Never include a name, an email address, an employer or another personal identifier. With no replaces_draft_id, this tool saves a new independent private draft. With replaces_draft_id, it saves the complete revised text as a new draft and supersedes only the identified earlier draft. Existing open requests remain unchanged. The draft is not submitted to the matching pool and contacts nobody. Returns request_id, status and the exact stored request_text. Publishing uses the separate confirm_match_request tool and requires the user’s explicit approval of that exact stored text. Discarding uses withdraw_match_request with the draft’s request_id.
preview_poolchangeddescriptionCount the people already in the pool whose situation is close to a description. Returns a number and nothing else, capped at 10 — never anyone's words, name or details. It saves nothing: no match request is created and nobody is contacted. This is the one tool that works without an account. Use it to answer whether anyone is going through something similar, before the user decides whether to join.
Count people in overlap's peer-connection pool who are going through a similar personal situation. Use when the user asks whether another person shares their situation before deciding whether to join. Do not use for intersections of lists, sets or schedules, dating, or finding licensed professionals. Returns a number and nothing else, capped at 10 — never anyone's words, name or details. It saves nothing: no match request is created and nobody is contacted. This is the one tool that works without an account.
withdraw_match_requestchangedinput schema, output schemarespond_to_matchchangedinput schema, output schema, annotationsget_match_detailschangedinput schema, output schema, annotationscheck_matcheschangedinput schema, output schema, annotationsconfirm_match_requestchangedinput schema, output schema, annotationscreate_match_requestchangedinput schema, output schemapreview_poolchangedinput schema, output schema, annotationsFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-100% ~updated-62d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://overlap-ai.com/api/mcp streamable-http | none | yes | 100% | 2358 ms | 2026-07-28 | 2026-10-20 |
check_matchesread-only | Where the user stands. It returns every current match request, the number of other people in the pool, and any match. Use it to answer what the user submitted, and who they matched with. A match can appear days later. |
confirm_match_request | Confirm one draft match request and add it to the matching pool. The other requests of the user do not change. It stays active until the user withdraws it. Call this ONLY after the user approves the exact stored text. Always pass its request_id. |
create_match_requestdestructive | Use this tool to save a private match request draft when the user wants to find a peer living through a similar personal situation. Write the match request from the current conversation. Write 2–5 sentences in the third person, and 200–1500 characters. Use the words of the user, not formal or clinical words. Cover three things: the situation, where the user is in it, and what help they want. Write it so that a stranger in the same place recognizes themselves. Any situation belongs here: an illness, a company, a move, a course, a hard year. Example of a good match request: "She was diagnosed with early-stage breast cancer four months ago and is halfway through chemotherapy. The medical side goes to plan. She finds the isolation harder than the treatment. The people around her keep telling her to stay positive. She hopes to hear from someone at a similar stage who understands the day-to-day of it." Never invent a detail. Never include a name, an email address, an employer or another personal identifier. With no replaces_draft_id, this tool saves a new independent private draft. With replaces_draft_id, it saves the complete revised text as a new draft and supersedes only the identified earlier draft. Existing open requests remain unchanged. The draft is not submitted to the matching pool and contacts nobody. Returns request_id, status and the exact stored request_text. Publishing uses the separate confirm_match_request tool and requires the user’s explicit approval of that exact stored text. Discarding uses withdraw_match_request with the draft’s request_id. |
get_match_detailsread-only | Get the full details of one match: what the other person wrote, why the two of them matched, something to open with, and where the match stands. It only reads. To accept, decline or block the match, call respond_to_match. Never promise an address. |
preview_poolread-only | Count people in overlap's peer-connection pool who are going through a similar personal situation. Use when the user asks whether another person shares their situation before deciding whether to join. Do not use for intersections of lists, sets or schedules, dating, or finding licensed professionals. Returns a number and nothing else, capped at 10 — never anyone's words, name or details. It saves nothing: no match request is created and nobody is contacted. This is the one tool that works without an account. |
respond_to_matchdestructive | Record the one answer the user gave about a match: accept, decline or block. Call it only after the user has said which of the three they want. When both people accept, overlap opens a private conversation in the app. It also sends each person a link by email. Never promise an address. A decline covers this one request, and a later request from that person can still match. A block is permanent and covers the person, so send block only when the user asks for exactly that. |
withdraw_match_requestdestructive | Withdraw one match request, either a draft or an open one. Always pass its request_id. If it is unclear which one the user means, call check_matches first. The other requests of the user stay active. This voids a pending match from this request. It keeps a match that both people accepted. |
Schemas: list_tools.
{
"name": "com.overlap-ai/overlap",
"title": "Overlap",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://overlap-ai.com/api/mcp",
"type": "streamable-http"
}
],
"version": "0.3.0",
"websiteUrl": "https://overlap-ai.com/connector",
"description": "Records what you're working on so Overlap can introduce you to someone two weeks ahead of you."
}