Skip to main content

ContactZapp

app.contactz/contactzappVersion 1.0.6

Keeps your contacts in sync across Google, Microsoft, Apple and CardDAV, and cleans up duplicates.

Status

Responds176 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:35 UTC
Latency
176 ms
Remotes responding
1 of 1
Sign-in
API key
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://app.contactz.app/api/v1/mcpResponds176 ms
No sign-in

Claude Code

claude mcp add --transport http contactzapp https://app.contactz.app/api/v1/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'

Replace <YOUR_TOKEN> before running.

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: contactzapp
Remote MCP server URL: https://app.contactz.app/api/v1/mcp
This server expects the header Authorization.

Cursor

{
  "mcpServers": {
    "contactzapp": {
      "url": "https://app.contactz.app/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Replace <YOUR_TOKEN> before running.

VS Code

code --add-mcp '{"name":"contactzapp","type":"http","url":"https://app.contactz.app/api/v1/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'

Replace <YOUR_TOKEN> before running.

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

7 tools

Tools of ContactZapp
Read-only
Idempotent
Open world
api_key_checkReturns the user the request acts for, the user's plan, the user's sign-in email and the scopes of the API key or connected app that made it. Any live key or access token can call it, so call it to test one.NoYesNot declaredNot declared
contact_changeChanges a contact, as editing it in ContactZapp does. Only the fields you send change. A field you leave out keeps its value. The change goes to every two-way account the contact is in, never to a read-only one. History records it as the user's change and names the API key or the connected app that made it. A contact waiting in Review duplicates cannot be changed until the review is decided: 409, `contact_pending_review`. Send an `Idempotency-Key` header to make a retry safe.YesNoNot declaredNot declared
contact_createAdds a contact. If the user already has this person, the values may go to that contact instead: - If the user's Auto-Merge level covers the match, the values are added to the existing contact: 200, `merged`. - Otherwise a new contact is created: 201, `created`. If it may be a duplicate, it also waits in Review duplicates: 201, `needs_review`. ContactZapp saves the contact in one two-way account: the first one the user linked that keeps an address book and is not paused. The next sync copies it to the user's other two-way accounts, never to a read-only one. A create is never refused for the plan's contact limit. Over the limit, the contact is created frozen and `contact.frozen` is true. ContactZapp keeps a frozen contact but does not sync it until the user upgrades or frees a place. Send an `Idempotency-Key` header to make a retry safe.NoNoNot declaredNot declared
contact_findFinds the user's contacts by email address, phone number or text. Give at most one of `email`, `phone` and `query`: - `email` finds the contacts with that address. Case does not matter. - `phone` finds the contacts with that number, however it is formatted. - `query` searches the way the Contacts screen's search does. - With none of them, every contact is listed, newest first. Deleted and merged contacts are never returned. For the next page, send the `nextCursor` you got as `cursor`, with the same filter. The last page has no `nextCursor`.NoYesNot declaredNot declared
contact_readReturns one contact. `id` is the contact's `id` or its `publicId`, such as `CS-0042`. A deleted or merged contact is a 404, and so is another user's contact.NoYesNot declaredNot declared
event_listLists the events of one type, newest first. Zapier, Make and n8n poll this to start an automation. Each item's `id` never changes. Poll again and the items you already have come back with the same ids, with new ones on top. Skip the ids you have seen. - `contact.created`, `contact.updated`, `contacts.merged` and `account.needs_attention` come from History, and are kept as long as History keeps them. - `match.needs_review` lists each contact flagged as a possible duplicate and not yet merged. Its `id` changes when the flag is raised again. Each item carries what an automation needs, with no second call: - the contact's fields, or null once the contact is deleted or merged - for a merge, the ids of the contacts it absorbed - for an account, the account and why it needs attentionNoYesNot declaredNot declared
sync_startStarts a sync, the same as Sync now in ContactZapp. History shows it as a manual run. The answer is 202 with the sync's state, `queued` or `running`. If a sync is already going, you get that one back and no second one starts.NoNoNot declaredNot declared

Details

Registry status
Active
Published
Nov 11, 2026
Updated
Nov 11, 2026
Categories (suggested)
Search and webSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing