Model Context Protocol (MCP) server for CardDAV address books: contacts, groups and photos
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 17 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
create_contact
-
create_group
-
delete_contact
-
delete_group
-
export_contacts
-
get_contact
-
get_contact_photo
-
get_group
-
get_server_info
-
list_address_books
-
list_changes
-
list_contacts
-
list_groups
-
move_contact
-
search_contacts
-
update_contact
-
update_group
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit cffcf5a · analyzer v33 · 6d ago
danger signals1
- committed secret GitHub token ni-c-carddav-mcp-cffcf5a/test/config.test.ts :147
ghp_A1…(40 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 46
filesystem 3
- fs (weak) ni-c-carddav-mcp-cffcf5a/docs/.vitepress/config.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) ni-c-carddav-mcp-cffcf5a/scripts/gen-tools-doc.mjs :16
import { readFileSync, mkdirSync, writeFileSync } from 'node:fs'; - fs (weak) ni-c-carddav-mcp-cffcf5a/test/server.test.ts :1
import { readFileSync } from 'node:fs';
shell / exec 1
- shell (weak) ni-c-carddav-mcp-cffcf5a/test/integration/baikal.ts :2
import { execFile } from 'node:child_process';
network 4
- net (weak) ni-c-carddav-mcp-cffcf5a/docs/seed-demo.mjs :65
const response = await fetch(`${URL_BASE}${path}`, { - net ni-c-carddav-mcp-cffcf5a/src/api.ts :5
} from 'undici'; - net (weak) ni-c-carddav-mcp-cffcf5a/test/integration/baikal.ts :77
$fresh = $db->query("SELECT name FROM sqlite_master WHERE type='table' AND name='users'")->fetch(); - net (weak) ni-c-carddav-mcp-cffcf5a/test/integration/bootstrap.ts :34
return fetch(url, {
tool registrations 17
- list_address_books ni-c-carddav-mcp-cffcf5a/src/tools/books.ts :25
- get_server_info ni-c-carddav-mcp-cffcf5a/src/tools/books.ts :75
- create_contact ni-c-carddav-mcp-cffcf5a/src/tools/contacts-write.ts :98
- update_contact ni-c-carddav-mcp-cffcf5a/src/tools/contacts-write.ts :165
- delete_contact ni-c-carddav-mcp-cffcf5a/src/tools/contacts-write.ts :307
- move_contact ni-c-carddav-mcp-cffcf5a/src/tools/contacts-write.ts :383
- list_contacts ni-c-carddav-mcp-cffcf5a/src/tools/contacts.ts :85
- get_contact ni-c-carddav-mcp-cffcf5a/src/tools/contacts.ts :185
- search_contacts ni-c-carddav-mcp-cffcf5a/src/tools/contacts.ts :222
- get_contact_photo ni-c-carddav-mcp-cffcf5a/src/tools/contacts.ts :323
- export_contacts ni-c-carddav-mcp-cffcf5a/src/tools/contacts.ts :403
- list_changes ni-c-carddav-mcp-cffcf5a/src/tools/contacts.ts :500
show 5 more
- list_groups ni-c-carddav-mcp-cffcf5a/src/tools/groups.ts :80
- get_group ni-c-carddav-mcp-cffcf5a/src/tools/groups.ts :143
- create_group ni-c-carddav-mcp-cffcf5a/src/tools/groups.ts :217
- update_group ni-c-carddav-mcp-cffcf5a/src/tools/groups.ts :299
- delete_group ni-c-carddav-mcp-cffcf5a/src/tools/groups.ts :486
install hooks 1
- prepublishOnly ni-c-carddav-mcp-cffcf5a/package.json :43
npm run lint && npm run typecheck && npm run build && npm test
declared dependencies 17
- @modelcontextprotocol/server@^2.0.0
- @modelcontextprotocol/client@^2.0.0
- fast-xml-parser@^5.11.1
- ical.js@^2.2.1
- mcp-approval@^0.8.0
- mcp-internal-hosts@^0.2.1
- mcp-tool-allowlist@^0.2.1
- undici@^8.10.2
- zod@^4.5.4
- @types/node@^26.4.1
- @vitest/coverage-v8@5.0.0
- mcp-integration-harness@^0.4.0
show 5 more
- oxlint@^1.81.0
- prettier@^3.9.6
- svg-asset-set@https://github.com/ni-c/svg-asset-set/releases/download/v0.2.0/svg-asset-set-0.2.0.tgz
- typescript@^7.0.2
- vitest@^5.0.0