protogrid

Search / com.overlap-ai/overlap

Overlap

R0· no sign-in

Records 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

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality84good
Trust80of 100
Uptime, 30 days100%
Latency p502358 ms

Connect

8 clients · secrets stay placeholders
{
  "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

Quality 84 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints3 of 7 tools declare all four hints; missing: confirm_match_request (idempotentHint); respond_to_match (idempotentHint); withdraw_match_request (idempotentHint); …
  • pass
    tools.token_costabout 1,804 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes10 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 1,804 tokens to load them all · tool set 53a44d0327fb · tools last changed 2026-10-12 · checked 2026-10-20 13:17 UTC

Tool changes

  • create_match_requestchangedannotations
  • create_match_requestchangeddescription
    before

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

    after · 66% of words in common

    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_poolchangeddescription
    before

    Count 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.

    after · 60% of words in common

    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 schema
  • respond_to_matchchangedinput schema, output schema, annotations
  • get_match_detailschangedinput schema, output schema, annotations
  • check_matcheschangedinput schema, output schema, annotations
  • confirm_match_requestchangedinput schema, output schema, annotations
  • create_match_requestchangedinput schema, output schema
  • preview_poolchangedinput schema, output schema, annotations

Full 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.

Trust 80 / 100

no-repository
provenance55
liveness100
freshness85
hygiene80

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://overlap-ai.com/api/mcp streamable-httpnoneyes100%2358 ms2026-07-282026-10-20

Tools (7)

check_matchesread-onlyWhere 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_requestConfirm 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_requestdestructiveUse 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-onlyGet 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-onlyCount 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_matchdestructiveRecord 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_requestdestructiveWithdraw 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.

Similar MCP servers

Official server.json
{
  "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."
}