プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

CardDAV address books

作者:ni-cバージョン 0.1.4i★ –iパソコンで動く
レジストリ名io.github.ni-c/carddav-mcp

インストール

概要

作者による説明(英語の原文)

Read and write CardDAV address books: contacts, groups and photos over the open standard

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: ゲーム・スポーツ・料理・学習
  • 入力が必要なもの:CARDDAV_URL, CARDDAV_PASSWORD, CARDDAV_TOKEN

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: CARDDAV_URL, CARDDAV_USERNAME, CARDDAV_PASSWORD, CARDDAV_TOKEN, CARDDAV_ADDRESSBOOKS, CARDDAV_MAX_CONTACTS, CARDDAV_READ_ONLY, CARDDAV_INSECURE_TLS, CARDDAV_ALLOW_PLAINTEXT, CARDDAV_ALLOW_TOOLS, CARDDAV_DENY_TOOLS, ELICITATION

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "carddav": {
      "command": "npx",
      "args": [
        "-y",
        "@ni-c/carddav-mcp"
      ],
      "env": {
        "CARDDAV_URL": "your-value",
        "CARDDAV_USERNAME": "your-value",
        "CARDDAV_PASSWORD": "your-value",
        "CARDDAV_TOKEN": "your-value",
        "CARDDAV_ADDRESSBOOKS": "your-value",
        "CARDDAV_MAX_CONTACTS": "your-value",
        "CARDDAV_READ_ONLY": "your-value",
        "CARDDAV_INSECURE_TLS": "your-value",
        "CARDDAV_ALLOW_PLAINTEXT": "your-value",
        "CARDDAV_ALLOW_TOOLS": "your-value",
        "CARDDAV_DENY_TOOLS": "your-value",
        "ELICITATION": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add carddav --env CARDDAV_URL=your-value --env CARDDAV_USERNAME=your-value --env CARDDAV_PASSWORD=your-value --env CARDDAV_TOKEN=your-value --env CARDDAV_ADDRESSBOOKS=your-value --env CARDDAV_MAX_CONTACTS=your-value --env CARDDAV_READ_ONLY=your-value --env CARDDAV_INSECURE_TLS=your-value --env CARDDAV_ALLOW_PLAINTEXT=your-value --env CARDDAV_ALLOW_TOOLS=your-value --env CARDDAV_DENY_TOOLS=your-value --env ELICITATION=your-value -- npx -y @ni-c/carddav-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "carddav": {
      "command": "npx",
      "args": [
        "-y",
        "@ni-c/carddav-mcp"
      ],
      "env": {
        "CARDDAV_URL": "your-value",
        "CARDDAV_USERNAME": "your-value",
        "CARDDAV_PASSWORD": "your-value",
        "CARDDAV_TOKEN": "your-value",
        "CARDDAV_ADDRESSBOOKS": "your-value",
        "CARDDAV_MAX_CONTACTS": "your-value",
        "CARDDAV_READ_ONLY": "your-value",
        "CARDDAV_INSECURE_TLS": "your-value",
        "CARDDAV_ALLOW_PLAINTEXT": "your-value",
        "CARDDAV_ALLOW_TOOLS": "your-value",
        "CARDDAV_DENY_TOOLS": "your-value",
        "ELICITATION": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "carddav": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@ni-c/carddav-mcp"
      ],
      "env": {
        "CARDDAV_URL": "your-value",
        "CARDDAV_USERNAME": "your-value",
        "CARDDAV_PASSWORD": "your-value",
        "CARDDAV_TOKEN": "your-value",
        "CARDDAV_ADDRESSBOOKS": "your-value",
        "CARDDAV_MAX_CONTACTS": "your-value",
        "CARDDAV_READ_ONLY": "your-value",
        "CARDDAV_INSECURE_TLS": "your-value",
        "CARDDAV_ALLOW_PLAINTEXT": "your-value",
        "CARDDAV_ALLOW_TOOLS": "your-value",
        "CARDDAV_DENY_TOOLS": "your-value",
        "ELICITATION": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • CARDDAV_URL 必須 env
    Root of the CardDAV server, e.g. https://dav.example.net. An address book collection URL also works.
  • CARDDAV_USERNAME env
    Account name. Most hosted services want an app-specific password with it.
  • CARDDAV_PASSWORD 秘密 env
    Password or app-specific password. Deleted from the environment once read.
  • CARDDAV_TOKEN 秘密 env
    Bearer token, as an alternative to username and password. Not both.
  • CARDDAV_ADDRESSBOOKS env
    Comma-separated address books this server may touch, by path or final path segment. Default: all of them.
  • CARDDAV_MAX_CONTACTS env
    Contacts a listing returns by default, 1 to 500 (default: 100)
  • CARDDAV_READ_ONLY env
    Set to true to register only the read tools (default: false)
  • CARDDAV_INSECURE_TLS env
    Set to true to accept a self-signed certificate on the configured host only (default: false)
  • CARDDAV_ALLOW_PLAINTEXT env
    Set to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials and every contact unencrypted (default: false)
  • CARDDAV_ALLOW_TOOLS env
    Comma-separated tool names or list_* prefixes to register; 'essential' selects a curated preset (default: all tools)
  • CARDDAV_DENY_TOOLS env
    Comma-separated tool names or list_* prefixes to remove from whatever the allow list left
  • ELICITATION env
    Deliberately unprefixed, and reaches every MCP server in the environment. Set to false to make guarded tools use the two-call token instead of a dialog (default: true)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント ni-c で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

ゲーム・スポーツ・料理・学習のほかのサーバーとの比較i

  • このカテゴリのほかの1301件のうち0%よりスターが多い
  • このカテゴリのほかの1301件のうち65%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1301件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

CardDAV address booksは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:CARDDAV_URL, CARDDAV_PASSWORD, CARDDAV_TOKEN

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.4)がレジストリに届いたのは17 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。

代わりに使えるものは?

同じカテゴリには:Convoca, mcp.film directory, 像塑 MCP Plus

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Convoca

Open literary prizes and contests in Spanish and Catalan, with winners and awarded books.

作者:convocaliteraria.com初期今日更新

クラウドで動く✓ convocaliteraria.com

mcp.film directory

Search the curated directory of MCP servers for AI filmmaking and plan a full production stack.

作者:c47-inc初期↓ 113/週今日更新

パソコンでもクラウドでも✓ mcp.film

像塑 MCP Plus

Unofficial macOS MCP for Douyin AR (像塑): assets, menus, AI combine, delivery. For learning only.

作者:Muqian-Sunとても新しい今日更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

carddav-mcp

A Model Context Protocol (MCP) server for CardDAV, the open contacts standard behind Nextcloud, Radicale, Baikal, SOGo, Fastmail, mailbox.org and iCloud.

Lets MCP clients like Claude Code, Claude Desktop or Codex work with your address book: find a person, read their card in full, add and correct contacts, keep groups, and fetch a contact photo — against your own server, with no vendor API in between.

Seventeen tools is the ceiling, not the floor: CARDDAV_ALLOW_TOOLS=essential registers a curated six instead, and a model picks the right tool far more reliably from six than from seventeen — see choosing which tools load.

What makes it different

A listing stays cheap on a real address book. list_contacts asks the server for a dozen named properties rather than for whole cards, which is the difference between a few kilobytes and several megabytes once inline photos are involved. The entries it returns say partial out loud, because a card retrieved that way is missing everything nobody asked for — and the write path refuses to build on one, re-fetching every time.

Both group conventions, read and written. vCard 4 defines KIND:group with MEMBER. Apple got there first and shipped X-ADDRESSBOOKSERVER-KIND on top of vCard 3, and that is what Apple Contacts, Nextcloud and most of the installed base actually store. This server reads both and writes whichever the address book already uses — a group written in the other convention is not a compatibility footnote, it is invisible in the client the person is looking at.

Writing reads first, and never rebuilds. A CardDAV PUT replaces the entire resource, so every change here is applied to the card _as stored_. The properties this server does not model — an X- property some phone wrote in 2014, a photo nobody mentioned — survive because they are never touched, not because anything preserves them. Every write carries the card's ETag, so a change somebody made in the meantime is reported instead of overwritten.

A birthday keeps the year it has, and no more. BDAY:--0415 means "the fifteenth of April, year unknown", which is what a phone writes when the year was never entered, and it is a large share of the real birthdays in any address book. Reported as {month, day} — not dropped for being incomplete, and not given an invented year.

Contacts are treated as somebody else's writing. An address book is rarely written only by its owner, and the attack that matters here does not run a tool: a card asserting that a bank's real number has changed needs the model to do nothing except believe it. Every string is fenced, datamarked and checked against named injection shapes — including one for exactly that.

Requirements

  • Node.js 24 or newer, or Docker
  • A CardDAV server and an account on it

Most hosted services want an app-specific password rather than the account password: Nextcloud, Fastmail and iCloud all issue one per application. Google Contacts is not supported — it requires OAuth and has deprecated password authentication for CardDAV.

Tested against Radicale and Baikal (sabre/dav) in CI on every pull request.

Configuration

VariableRequiredDescription
CARDDAV_URLyesRoot of the CardDAV server, e.g. https://dav.example.net. An address book collection URL works too and limits the server to that one book.
CARDDAV_USERNAMEyes¹Account name.
CARDDAV_PASSWORDyes¹Password or app-specific password. Deleted from the environment once read.
CARDDAV_TOKENyes¹Bearer token instead of username and password. Not both.
CARDDAV_ADDRESSBOOKSnoComma-separated address books this server may touch, by path or final path segment. Default: every book the account can see.
CARDDAV_MAX_CONTACTSnoContacts a listing returns by default, 1–500. Default 100.
CARDDAV_READ_ONLYnotrue registers only the read tools. Default false.
CARDDAV_INSECURE_TLSnotrue accepts a self-signed certificate on the configured host only — and switches off hostname verification with it. Default false.
CARDDAV_ALLOW_PLAINTEXTnotrue allows a plain http:// URL to a host that is not loopback, which sends the credentials and every contact unencrypted. Otherwise such a URL refuses to start. Default false.
CARDDAV_ALLOW_TOOLSnoTool names, a prefix with one trailing *, or essential.
CARDDAV_DENY_TOOLSnoSubtracted from whatever the allow list left.
ELICITATIONnoNot prefixed — one export reaches every MCP server in the environment. false makes guarded tools use the two-call token instead of a dialog. Default true.

¹ Either CARDDAV_USERNAME + CARDDAV_PASSWORD, or CARDDAV_TOKEN.

Booleans are compared against the literal string true where the switch _lifts_ a protection (CARDDAV_INSECURE_TLS, CARDDAV_ALLOW_PLAINTEXT), and read tolerantly — 1, yes, TRUE — where it turns one on (CARDDAV_READ_ONLY). A typo should never quietly remove a guard.

The server starts without credentials on purpose, so a registry or a sandbox inspector can list its tools; every call then fails with setup instructions.

Choosing which tools load

Seventeen tools is a lot of context on every request, and a model picks worse from a long list than from a short one.

CARDDAV_ALLOW_TOOLS=essential                            # a curated six

CARDDAV_ALLOW_TOOLS=list_contacts,get_contact,create_contact CARDDAV_ALLOW_TOOLS=list_* # one trailing * only CARDDAV_DENY_TOOLS=delete_contact # subtracted from the above

essential selects list_address_books, list_contacts, get_contact, search_contacts, create_contact and update_contact — enough to find a person, read them, add one and correct one, with nothing irreversible in reach and the whole group surface left out.

Whatever is filtered out does not exist on the protocol rather than failing when called, and a name matching no tool stops the server at startup with the real names listed, instead of leaving a tool quietly missing.

Installation

Claude Code
claude mcp add carddav \

-e CARDDAV_URL=https://dav.example.net \ -e CARDDAV_USERNAME=you \ -e CARDDAV_PASSWORD=your-app-password \ -- npx -y @ni-c/carddav-mcp

Claude Desktop
{

"mcpServers": { "carddav": { "command": "npx", "args": ["-y", "@ni-c/carddav-mcp"], "env": { "CARDDAV_URL": "https://dav.example.net", "CARDDAV_USERNAME": "you", "CARDDAV_PASSWORD": "your-app-password" } } } }

Codex
[mcp_servers.carddav]

command = "npx" args = ["-y", "@ni-c/carddav-mcp"] env = { CARDDAV_URL = "https://dav.example.net", CARDDAV_USERNAME = "you", CARDDAV_PASSWORD = "your-app-password" }

Docker
docker run --rm -i \

-e CARDDAV_URL=https://dav.example.net \ -e CARDDAV_USERNAME=you \ -e CARDDAV_PASSWORD=your-app-password \ ghcr.io/ni-c/carddav-mcp

Through mcp-hub

A client that cannot spawn a local process — ChatGPT connectors, Claude on the web, Cursor, LibreChat — cannot start this server the way Claude Code does. mcp-hub is the bridge: one container serves many stdio MCP servers over Streamable HTTP, behind a single OAuth 2.1 login, and its /hub endpoint puts every server behind six meta-tools so one connector reaches all of them. It speaks both protocol revisions, so a question this server asks travels through it to the person at the far end instead of ending at the gateway.

Its configuration is Claude Code's mcpServers format, so the entry above is the entry it takes. Note that the tool filter belongs in this server's environment (CARDDAV_ALLOW_TOOLS), not in the hub's allowTools — the hub's own filter decides which servers a connector sees, not which tools a server registers.

Tools

Address books — list_address_books, get_server_info

Contacts — list_contacts, get_contact, search_contacts, get_contact_photo, export_contacts, list_changes, create_contact, update_contact 👤, delete_contact 👤, move_contact 👤

**G

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く