Skip to main content
Glama

ContactZapp

Server Details

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

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
contactzapp/contactzapp-mcp
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a clearly distinct resource and action: key inspection, contact create/change/find/read, event listing, and sync start. The only superficially similar pair, contact_find and contact_read, is cleanly separated by search/list vs. lookup by id. An agent can select the right tool from the names and descriptions without meaningful overlap.

Naming Consistency5/5

All tools use snake_case with a predictable resource_action pattern: contact_create, contact_change, contact_find, contact_read, event_list, sync_start, and api_key_check. The only minor variation is the three-token api_key_check, but it still follows the same convention. Naming is highly consistent and readable.

Tool Count5/5

Seven tools is well-scoped for a contact automation API surface. Each tool covers a distinct operation and none appears redundant or gratuitous. The count is within the typical concise range for an integration-oriented MCP server.

Completeness3/5

The set covers contact create, read, update, find/list, event polling, API key checking, and sync initiation. However, there is no contact delete tool, and despite repeated references to Review duplicates and merges, there is no explicit tool to resolve or dismiss a pending review. These are notable lifecycle gaps, though core automation workflows remain possible.

Available Tools

7 tools
api_key_checkAPI key – CheckA
Read-only
Inspect

Returns the user the key acts for, the user's plan and the key's scopes. Any live key can call it, so call it to test a key.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context: the authorization rule that any live key may invoke it and the shape of what comes back. However, it says nothing about what happens with an invalid or revoked key (error vs. empty result), which is the main behavioral question a caller testing a key would have.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the return payload comes first and the usage trigger second. Nothing is repeated from the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing return values and does so in one clause. The remaining gap is failure semantics for an invalid key, which matters for a tool whose stated purpose is validating keys.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter meaning to convey and the baseline of 4 applies. The description correctly focuses its words on return content instead of inventing parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete return payload (acting user, plan, key scopes) so an agent knows this is an identity/introspection call rather than a mutation. It is clearly distinct from the unrelated siblings (contact_*, event_list, sync_start), though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Call it to test a key" gives a direct usage trigger, and "Any live key can call it" establishes the access precondition. No alternatives are named, but none of the listed siblings offer overlapping functionality, so the guidance is effectively complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contact_changeContact – ChangeA
Destructive
Inspect

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

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.

NameRequiredDescriptionDefault
idYesThe contact's `id` or its `publicId` (`CS-0042`).
bodyYesThe body of a contact create or update: the contact fields a read shows that a write can change, under the same names and in the same shapes, and nothing else. A field the body carries that is not one of them is refused with a 400 `unknown_field`, and nothing is written. That includes the read-only `id`, `publicId`, `displayName` and `updatedAt`, so writing back a whole contact as a read returned it answers 400 `unknown_field`: send only the fields you change. A create writes the fields the body carries. An update is change-only: a field the body does not carry keeps its value, a field it carries empty (`""`, `[]`, or a date whose year, month and day are all `0`) is cleared, and a list it carries replaces the stored list. `"birthday": null` clears the birthday too, and a birthday the body does not carry is kept. Fields ContactZapp keeps that a read does not show are never changed by an update.
Idempotency-KeyNoAny string of 1 to 255 bytes you choose for this write, such as a UUID. Repeat the request with the same key and body within 24 hours, and you get the first result back and nothing is written twice. The same key with a different body is a 422.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnlyHint=false / destructiveHint=true annotations: it discloses fan-out to every two-way account but never read-only ones, that history attributes the change to the user and names the API key, the 409 pending-review block, and retry safety via Idempotency-Key. These are exactly the side effects an agent cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short paragraphs, front-loaded with the edit semantics and then ordered by consequence (scope, history, error, retry). Dense but every paragraph carries usable information; only the opening UI analogy is slightly expendable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-body mutation with no output schema, it covers side effects, error behavior, and idempotency well. The main gap is that it never says what the successful response contains (the updated contact, or nothing), which an agent may need after the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries detailed meaning for `id`, `body` fields, clearing semantics, and `Idempotency-Key`. The description's partial-update rule is valuable but largely duplicates the `body` schema text, so it adds little beyond the structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Changes a contact, as editing it in ContactZapp does" gives a specific verb and resource, and immediately distinguishes it from contact_create and contact_read by anchoring it to editing an existing record. The first sentence alone lets an agent route correctly among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly establishes the partial-update contract ("Only the fields you send change") and the blocking condition (a contact pending Review duplicates returns 409 `contact_pending_review`), plus when to attach an Idempotency-Key. What's missing is an explicit pointer to contact_create for new contacts, but the verb makes the split obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contact_createContact – CreateAInspect

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

NameRequiredDescriptionDefault
bodyYesThe body of a contact create or update: the contact fields a read shows that a write can change, under the same names and in the same shapes, and nothing else. A field the body carries that is not one of them is refused with a 400 `unknown_field`, and nothing is written. That includes the read-only `id`, `publicId`, `displayName` and `updatedAt`, so writing back a whole contact as a read returned it answers 400 `unknown_field`: send only the fields you change. A create writes the fields the body carries. An update is change-only: a field the body does not carry keeps its value, a field it carries empty (`""`, `[]`, or a date whose year, month and day are all `0`) is cleared, and a list it carries replaces the stored list. `"birthday": null` clears the birthday too, and a birthday the body does not carry is kept. Fields ContactZapp keeps that a read does not show are never changed by an update.
Idempotency-KeyNoAny string of 1 to 255 bytes you choose for this write, such as a UUID. Repeat the request with the same key and body within 24 hours, and you get the first result back and nothing is written twice. The same key with a different body is a 422.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses substantial behavior beyond the annotations: Auto-Merge may add values to an existing contact, each 200/201 outcome is explained, possible duplicates enter review, and the storage account and subsequent sync behavior are specified. It also explains that over-limit contacts are retained frozen without syncing and recommends an idempotency key for safe retries, exposing important side effects and operational consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the core action and possible outcomes, using bullets effectively for the merge/create branches. The following short paragraphs each cover a distinct, consequential behavior, and the final retry sentence is concise; there is no filler despite the density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Combined with the fully documented nested schema, the description supplies enough context to invoke a complex create operation correctly, and its status outcomes are especially useful because there is no output schema. Minor gaps remain around explicit sibling routing, what happens when no eligible two-way account exists, and the response payload beyond the named statuses and `contact.frozen`.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already thoroughly documents the body fields, update/clearing semantics, and idempotency-key behavior. The description's recommendation to send `Idempotency-Key` on retries is useful operational emphasis but largely repeats the schema; most other description text concerns operation-level behavior rather than additional parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening "Adds a contact" states a clear verb and resource, while the `merged`, `created`, and `needs_review` outcomes clarify that the operation does not always produce a new record. It does not explicitly distinguish this tool from the sibling `contact_change`, so sibling differentiation remains incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides practical context for creation, automatic merging, duplicate review, account selection, plan-limit handling, and safe retries. It does not state when not to use the tool or direct updates to `contact_change` and lookups to `contact_find`, but the intended creation context is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contact_findContact – FindA
Read-only
Inspect

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

NameRequiredDescriptionDefault
emailNo
limitNoPage size; 50 when omitted.
phoneNo
queryNo
cursorNoThe previous page's `nextCursor`.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/non-destructive, and the description adds real value beyond them: deleted and merged contacts are never returned, results are newest-first by default, and pagination is cursor-based with the last page lacking `nextCursor`. Return shape is described only at a high level (no field list), which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then a bulleted per-parameter breakdown, then pagination rules. Every sentence carries distinct information with no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with no output schema and no required parameters, it covers matching semantics, default behavior, exclusion rules, ordering, and the full pagination loop. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40%, but the description compensates fully for the undocumented parameters: `email` is case-insensitive, `phone` matches regardless of formatting, `query` mirrors the Contacts screen search, and `cursor` must be the prior page's `nextCursor` with the same filter. Only `limit` is left to the schema, which already documents it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Finds the user's contacts') plus the exact matching keys (email, phone, query). This clearly separates it from contact_read (single-contact lookup) and contact_change/create without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly constrains usage: 'Give at most one of email, phone and query' and explains the no-argument behavior ('every contact is listed, newest first'). It doesn't route the agent to sibling tools like contact_read for direct ID lookups, so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contact_readContact – ReadA
Read-only
Inspect

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

NameRequiredDescriptionDefault
idYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe read operation, and the description adds real value on top: deleted or merged contacts return 404, and another user's contact also returns 404, which tells the agent that access is owner-scoped and that not-found masks permission. It stops short of saying whether the 404 is distinguishable or what the returned object contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with what is returned, followed by the identifier contract and the failure modes. No redundant restatement of the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool this covers the identifier formats and the failure semantics, which is most of what an agent needs. With no output schema, the description could have sketched the returned contact's shape, but the gap is minor for a standard lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden for the single parameter, and it does: `id` accepts either the internal id or the publicId formatted like `CS-0042`. That is meaningful format guidance absent from the schema, though it does not clarify whether the two forms are interchangeable in all cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Returns one contact" gives a specific verb and resource with an explicit singular scope, which implicitly separates it from the list-style sibling contact_find. It never names contact_find or contact_change, so differentiation is left to inference rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is the single-record lookup keyed by an identifier, but it never says when to prefer it over contact_find (search by other criteria) or contact_change (mutate). Usage is implied by the required `id` rather than stated as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

event_listEvent – ListA
Read-only
Inspect

Lists 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 attention

NameRequiredDescriptionDefault
eventYesThe events the API reports, as polling triggers. - `contact.created`: a contact was added. - `contact.updated`: a contact was changed. - `contacts.merged`: contacts were merged into one. - `match.needs_review`: a contact is flagged as a possible duplicate and waits in Review duplicates. - `account.needs_attention`: a linked account needs the user to look at it.
limitNoPage size; 50 when omitted.
cursorNoThe previous page's `nextCursor`, to read further back.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the supplied readOnlyHint/destructiveHint, the description discloses the key behavioral contract: ids are stable across polls, and new items arrive on top so consumers must dedupe. It also discloses retention differences per event family (History-backed events versus match.needs_review, whose id changes when flagged again), which directly affects polling logic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then a poll/dedupe paragraph, then two scoped bullet lists for event families and item payloads. Every section is load-bearing, though "what an automation needs, with no second call" is slightly promotional phrasing rather than specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and mostly discharges it: item id stability, null contact fields after deletion/merge, absorbed-contact ids, and account attention reasons. It stops short of naming the concrete payload fields or the response envelope, leaving the exact shape partly unspecified for a tool an automation will parse.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the enum descriptions: retention lifetime for History-sourced events and the id-instability of match.needs_review. It says nothing extra about limit or cursor beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Lists the events of one type, newest first" gives a specific verb, resource and ordering in the first sentence, and the polling-automation framing makes the tool's role unmistakable. None of the siblings (contact_*, sync_start, api_key_check) overlap with event retrieval, so the agent can route here without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the intended usage pattern concretely: poll repeatedly, keep the ids you have seen, skip the rest, and use cursor to read further back. It does not name a when-not-to-use case or point at an alternative tool for other needs, which keeps it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_startSync – StartAInspect

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

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say it is a non-read-only, non-destructive mutation, which is thin for a write-ish operation. The description adds real behavioral context: it is recorded in history as a manual run, it returns HTTP 202 with state 'queued' or 'running', and it is idempotent while a sync is in flight. It does not mention permissions or failure modes, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each carrying distinct information: purpose, side effect on history, and return/state behavior. Purpose is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully explains the response (202 plus state value) and the no-duplicate-start behavior. Given a zero-parameter, no-output-schema tool, this is nearly complete; only error/failure behavior is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no inputs are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Starts a sync') and anchors it to a known UI action ('the same as Sync now in ContactZapp'), so the agent knows exactly what operation this is. No sibling tool in the list covers sync, so the operation is unambiguous within the toolset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a clear trigger condition (the agent wants a sync to run) and explicitly resolves the main alternative scenario: if a sync is already running, you get that one back instead of starting a second. There is no explicit when-not guidance or prerequisite statement, but the deduplication note covers the most likely ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 17 tool updates
    • Addedapi_key_check
    • Addedcontact_change
    • Addedcontact_create
    • Addedcontact_find
    • Addedcontact_read
    • RemovedcreateV1Contact
    • RemovedcreateV1Webhook
    • Addedevent_list
    • RemovedgetV1Contact
    • RemovedgetV1Me
    • RemovedlistV1Accounts
    • RemovedlistV1Contacts
    • RemovedlistV1TriggerEvents
    • RemovedlistV1Webhooks
    • RemovedpostV1Sync
    • Addedsync_start
    • RemovedupdateV1Contact
  2. 10 tool updates
    • First observedcreateV1Contact
    • First observedcreateV1Webhook
    • First observedgetV1Contact
    • First observedgetV1Me
    • First observedlistV1Accounts
    • First observedlistV1Contacts
    • First observedlistV1TriggerEvents
    • First observedlistV1Webhooks
    • First observedpostV1Sync
    • First observedupdateV1Contact

Publisher details

Operator
ContactZapp · Publisher source
Operator website
https://contactz.app
Vendor relationship
Not applicable
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Read and write CardDAV address books: contacts, groups and photos over the open standard
    17
    107 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage contacts with full CRUD, dedup, merge, import/export, sync with Google/Apple/CardDAV, and git-backed rollback.
    4 npm
    AGPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Gives AI assistants access to Google Contacts, supporting listing, searching, creating, updating, and deleting contacts, as well as searching Google Workspace directories.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.