github TypeScript re-analysis due

ni-c/carddav-mcp

github

Model Context Protocol (MCP) server for CardDAV address books: contacts, groups and photos

maintainer
ni-c
licence
MIT
first seen
2026-09-06
last seen
2026-09-12
releases · 30d
4
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 17 tools
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
skills & danger signals github-tarball
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

code evidence vHEAD · github-tarball
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