@aernoud/contactsmcp

MCPcommunity
v0.4.0Aernoud DekkerMITUpdated 4mo agonpmGitHub

MCP server for macOS Contacts.app — contact management via AppleScript

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
37Downloads/wk
4mo agoLast update
Package
AuthorAernoud Dekker
LicenseMIT
Version0.4.0
Sourcenpm+mcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/20
→ Publisher: run `forge publish` from the package repo to claim ownership
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
—npm Trusted Publishing (Sigstore)+0/5
→ Publish from GitHub Actions with --provenance so the attestation binds this package to this repo
—npm maintainer match+0/5
→ Earned once your identity is verified above and that login is an npm maintainer of this package
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface15 tools · 4 privileged
Security scan✓ Cleanv0.4.0 · 1mo agoHow well does this scan work?
EvalsNone
IndexedAug 26, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

15 tools · 4 privileged
Statically extracted from the published packagev0.4.0 · 1mo ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

search-contactsSearch contacts in macOS Contacts.app by name, email, or phone number

Search contacts in macOS Contacts.app by name, email, or phone number

No input schema was published for this tool.

read-contactGet full details of a contact by their Contacts.app ID

Get full details of a contact by their Contacts.app ID

No input schema was published for this tool.

create-contactCreate a new contact in macOS Contacts.app

Create a new contact in macOS Contacts.app

No input schema was published for this tool.

update-contactUpdate fields on an existing contact in macOS Contacts.app

Update fields on an existing contact in macOS Contacts.app

No input schema was published for this tool.

list-groupsList all contact groups in macOS Contacts.app with member counts

List all contact groups in macOS Contacts.app with member counts

No input schema was published for this tool.

add-to-groupAdd a contact to a group in macOS Contacts.app

Add a contact to a group in macOS Contacts.app

No input schema was published for this tool.

remove-from-groupprivilegedRemove a contact from a group in macOS Contacts.app

Remove a contact from a group in macOS Contacts.app

No input schema was published for this tool.

delete-contactprivilegedDelete a contact from macOS Contacts.app

Delete a contact from macOS Contacts.app

No input schema was published for this tool.

create-groupCreate a new contact group in macOS Contacts.app

Create a new contact group in macOS Contacts.app

No input schema was published for this tool.

delete-groupprivilegedDelete a contact group from macOS Contacts.app

Delete a contact group from macOS Contacts.app

No input schema was published for this tool.

rename-groupprivilegedRename a contact group in macOS Contacts.app

Rename a contact group in macOS Contacts.app

No input schema was published for this tool.

list-group-membersList all contacts in a group in macOS Contacts.app

List all contacts in a group in macOS Contacts.app

No input schema was published for this tool.

get-my-cardGet the user's own contact card from macOS Contacts.app

Get the user's own contact card from macOS Contacts.app

No input schema was published for this tool.

get-vcardGet the vCard 3.0 text for a contact by their Contacts.app ID

Get the vCard 3.0 text for a contact by their Contacts.app ID

No input schema was published for this tool.

search-by-modification-dateFind contacts modified after a given date in macOS Contacts.app

Find contacts modified after a given date in macOS Contacts.app

No input schema was published for this tool.

15 of 15 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

MCP server for macOS Contacts.app — contact management via AppleScript

Keywords
mcpmcp-servercontactsaddress-bookmacosapplescriptclaude
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-08-31 — observed resolution, not a publisher declaration.

60 packages resolved · 2 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

54 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+42 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.