ContactZapp
Keeps your contacts in sync across Google, Microsoft, Apple and CardDAV, and cleans up duplicates.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http contactzapp 'https://app.contactz.app/api/v1/mcp' --header 'Authorization: <Your ContactZapp API key. Make one in Settings › Advanced. Start the value with Bearer.>'
{
"mcpServers": {
"contactzapp": {
"type": "http",
"url": "https://app.contactz.app/api/v1/mcp",
"headers": {
"Authorization": "<Your ContactZapp API key. Make one in Settings › Advanced. Start the value with Bearer.>"
}
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
ContactZapp MCP server
Let an AI assistant find, read, add and update your contacts in ContactZapp.
ContactZapp keeps your contacts in sync across Google, Microsoft, Apple and CardDAV, and cleans up duplicates. This server gives an assistant the access your API key has.
ContactZapp hosts the server. There is nothing to install or run. This repository holds the registry entry (server.json), the logo and the setup steps. It does not hold the server's code.
| Address | https://app.contactz.app/api/v1/mcp |
| Transport | Streamable HTTP |
| Sign-in | Your ContactZapp API key, in the Authorization header |
| Registry name | app.contactz/contactzapp |
What you need
- A ContactZapp account. The API key works on every plan, Free included.
- An API key. In ContactZapp, open Settings, then Advanced. Under API keys, choose Create key. Tick what the key can do, and copy it when it appears. It is shown once. Getting started walks through it.
- An assistant that can connect to a remote MCP server.
You sign in with the key only. There is no Connect button or sign-in window for the assistant yet.
Connect
Send the key as Authorization: Bearer cz_live_.... Replace cz_live_... with your key.
Claude Code
claude mcp add --transport http contactzapp https://app.contactz.app/api/v1/mcp \
--header "Authorization: Bearer cz_live_..."
Cline (cline_mcp_settings.json)
{
"mcpServers": {
"contactzapp": {
"type": "streamableHttp",
"url": "https://app.contactz.app/api/v1/mcp",
"headers": {
"Authorization": "Bearer cz_live_..."
}
}
}
}
Cursor (mcp.json)
{
"mcpServers": {
"contactzapp": {
"url": "https://app.contactz.app/api/v1/mcp",
"headers": {
"Authorization": "Bearer cz_live_..."
}
}
}
}
Other assistants ask for the same two things: the address and the header.
Open the address in a browser and you get an error. That is expected. An assistant sends its requests with POST.
Keep the key out of chats and tickets. If it leaks, revoke it in Settings, under Advanced, and make a new one.
Tools
Each tool calls the ContactZapp API with your key, so it has the permissions you gave the key. A key without the contacts:write scope cannot add a contact. No tool deletes a contact.
7 tools, as the server lists them. Generated by scripts/sync-tools.mjs.
| Tool | Title | What it does | Key scope | Read-only |
|---|---|---|---|---|
api_key_check | API key – Check | Returns the user the key acts for, the user's plan and the key's scopes. | Any key | Yes |
contact_find | Contact – Find | Finds the user's contacts by email address, phone number or text. | contacts:read | Yes |
contact_create | Contact – Create | Adds a contact. | contacts:write | No |
contact_read | Contact – Read | Returns one contact. | contacts:read | Yes |
contact_change | Contact – Change | Changes a contact, as editing it in ContactZapp does. | contacts:write | No |
sync_start | Sync – Start | Starts a sync, the same as Sync now in ContactZapp. | sync:trigger | No |
event_list | Event – List | Lists the events of one type, newest first. | contacts:read | Yes |
Limits
You can make 60 requests a minute, all your keys together. Each tool call is one request. The limit is the same on every plan. Rate limits says what happens at the limit.
More
Maintaining this repository
- The tool table is generated from the live server: run
node scripts/sync-tools.mjsand commitREADME.md. A daily check fails while the table differs from what the server lists. The section heading stays## Tools, which mcp.so reads to fill its listing. - The registry entry is
server.json, the only copy. Change it, raise itsversion, merge, then push the tagv<version>. The MCP Registry workflow checks the tag against the file and publishes it. A pull request that changes the file is validated first.
Frequently asked questions
What is ContactZapp?
Keeps your contacts in sync across Google, Microsoft, Apple and CardDAV, and cleans up duplicates.
How do I install ContactZapp?
It runs as a remote server. In Claude Code: claude mcp add --transport http contactzapp 'https://app.contactz.app/api/v1/mcp' --header 'Authorization: <Your ContactZapp API key. Make one in Settings › Advanced. Start the value with Bearer.>'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does ContactZapp need an API key?
Yes. It expects Authorization, which you set in its configuration.
Is ContactZapp open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains ContactZapp?
It is published by contactzapp. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.