프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. Google로 로그인하면 리뷰를 쓸 수 있어요.프로토타입 · 30분마다 업데이트
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Pim MCP

제작자: da-the-dev버전 0.2.0i★ 0i내 컴퓨터에서 실행
레지스트리 이름io.github.da-the-dev/pim-mcp

설치 방법

What it does

Local MCP server for your calendars across Nextcloud, iCloud, Google and any CalDAV server.

  • Connects 내 컴퓨터에서 실행
  • Account or key No key needed
  • Category 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

검사 3/3 통과 · 내 컴퓨터에서 실행돼요 · ✓ 명령 확인 2026년 11월 14일

먼저: 어떤 AI를 쓰시나요?

쓰는 앱을 고르면 아래에 단계가 나옵니다.

Claude에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요

AI에게 설치 맡기기

이 메시지를 Claude 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.

이 컴퓨터의 Claude에 MCP server Pim MCP을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "pim": { "command": "npx", "args": [ "-y", "pim-mcp" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Pim MCP의 도구가 실제로 보이는지 확인하세요.

이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.

  1. Node.js 설치 (아직 없다면)

    이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter

    node -v
    • 버전 번호(예: v26.13.1)가 나오면 설치된 것입니다. 이 단계는 건너뛰세요
    • "command not found"(Windows는 "is not recognized")가 나오면 아직 설치하지 않았거나, 방금 설치해서 터미널을 닫았다가 다시 열어야 합니다
    터미널 여는 법

    Mac: ⌘ + Space를 누르고 Terminal 입력 후 Enter

    Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"

    아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다

    Node.js 다운로드 페이지 열기 ↗

    설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v

    한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다

  2. 컴퓨터용 Claude 앱 설정 파일 열기

    SettingsDeveloperEdit Config

  3. 이 설정을 붙여 넣고 저장

    {
      "mcpServers": {
        "pim": {
          "command": "npx",
          "args": [
            "-y",
            "pim-mcp"
          ]
        }
      }
    }
  4. Claude를 끄고 다시 열기

  5. 해 보기

    Pim MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude가 Pim MCP을 쓰고 있다고 하거나 답에 Pim MCP 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

ChatGPT는 아직 Pim MCP에 연결할 수 없어요

Pim MCP는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요

대신 이렇게 할 수 있어요

A · Pim MCP에 연결되는 앱 쓰기

  • 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
  • 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
  • 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
  • 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

B · 기타에서 ChatGPT에 연결되는 다른 서버

같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요

Claude Code에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

AI에게 설치 맡기기

이 메시지를 Claude Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.

이 컴퓨터의 Claude Code에 MCP server Pim MCP을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): claude mcp add --scope user pim -- npx -y pim-mcp 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Pim MCP의 도구가 실제로 보이는지 확인하세요.

이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.

  1. Node.js 설치 (아직 없다면)

    이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter

    node -v
    • 버전 번호(예: v26.13.1)가 나오면 설치된 것입니다. 이 단계는 건너뛰세요
    • "command not found"(Windows는 "is not recognized")가 나오면 아직 설치하지 않았거나, 방금 설치해서 터미널을 닫았다가 다시 열어야 합니다
    터미널 여는 법

    Mac: ⌘ + Space를 누르고 Terminal 입력 후 Enter

    Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"

    아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다

    Node.js 다운로드 페이지 열기 ↗

    설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v

    한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다

  2. 터미널 열기

    Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기

  3. 이 명령을 붙여 넣고 Enter

    claude mcp add --scope user pim -- npx -y pim-mcp
  4. Claude Code에서 /mcp 입력

    Pim MCP이 목록에 있고 연결됨으로 보이면 돼요

  5. 해 보기

    Pim MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Claude Code가 Pim MCP을 쓰고 있다고 하거나 답에 Pim MCP 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

Cursor에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

AI에게 설치 맡기기

이 메시지를 Cursor 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.

이 컴퓨터의 Cursor에 MCP server Pim MCP을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "pim": { "command": "npx", "args": [ "-y", "pim-mcp" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Pim MCP의 도구가 실제로 보이는지 확인하세요.

이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.

  1. Node.js 설치 (아직 없다면)

    이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter

    node -v
    • 버전 번호(예: v26.13.1)가 나오면 설치된 것입니다. 이 단계는 건너뛰세요
    • "command not found"(Windows는 "is not recognized")가 나오면 아직 설치하지 않았거나, 방금 설치해서 터미널을 닫았다가 다시 열어야 합니다
    터미널 여는 법

    Mac: ⌘ + Space를 누르고 Terminal 입력 후 Enter

    Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"

    아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다

    Node.js 다운로드 페이지 열기 ↗

    설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v

    한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다

  2. 이 버튼으로 Cursor 열기

    Cursor에서 열기

    Cursor가 설치를 확인하면 Install을 누르세요

  3. Cursor에서 AI 채팅을 Agent 모드로 열기

  4. 해 보기

    Pim MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ Cursor가 Pim MCP을 쓰고 있다고 하거나 답에 Pim MCP 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

VS Code에 연결할 수 있지만 먼저 준비가 필요해요

먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)

AI에게 설치 맡기기

이 메시지를 VS Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.

이 컴퓨터의 VS Code에 MCP server Pim MCP을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "servers": { "pim": { "type": "stdio", "command": "npx", "args": [ "-y", "pim-mcp" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Pim MCP의 도구가 실제로 보이는지 확인하세요.

이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.

  1. Node.js 설치 (아직 없다면)

    이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter

    node -v
    • 버전 번호(예: v26.13.1)가 나오면 설치된 것입니다. 이 단계는 건너뛰세요
    • "command not found"(Windows는 "is not recognized")가 나오면 아직 설치하지 않았거나, 방금 설치해서 터미널을 닫았다가 다시 열어야 합니다
    터미널 여는 법

    Mac: ⌘ + Space를 누르고 Terminal 입력 후 Enter

    Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"

    아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다

    Node.js 다운로드 페이지 열기 ↗

    설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v

    한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다

  2. 이 버튼으로 VS Code 열기

    VS Code에서 열기

    VS Code가 설치를 확인하면 Install을 누르세요

  3. VS Code에서 AI 채팅을 Agent 모드로 열기

  4. 해 보기

    Pim MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐

    ✓ VS Code가 Pim MCP을 쓰고 있다고 하거나 답에 Pim MCP 도구 이름이 나오면 연결된 거예요

메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요

Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요

MCP를 쓰는 앱 모두 보기 →

JSON 설정은 아래 “개발자용”에 있어요

막혔나요? Pim MCP을 쓰는 사람에게 물어보세요💬 토론 →
개발자용: 터미널 명령과 JSON 설정

컴퓨터에 설치

Claude Code

claude mcp add --scope user pim -- npx -y pim-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "pim": {
      "command": "npx",
      "args": [
        "-y",
        "pim-mcp"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "pim": {
      "command": "npx",
      "args": [
        "-y",
        "pim-mcp"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "pim": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "pim-mcp"
      ]
    }
  }
}

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

한눈에 보기

주간 다운로드i
298/주
연결 방식
내 컴퓨터에서 실행
최신 버전i
0.2.0
카테고리i
기타
레지스트리 공개i
2026년 11월 5일
코드 마지막 변경i
2026년 11월 5일
제작자
da-the-dev
패키지
npm: pim-mcp
레지스트리 상태
활성

어떤 앱에서 쓸 수 있나요

이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.

내 컴퓨터에서 실행하는 앱

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

모든 앱과 장단점 →

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 15일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 da-the-dev 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • ✓ 통과

    계속 관리되고 있음

    코드 마지막 변경: 10일 전

  • ✓ 통과

    라이선스 있음

    MIT 사용

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

공개된 취약점 (OSV.dev)

아직 확인하지 않았습니다

우리가 확인하는 것 → · JSON

제작자: 재확인 요청 또는 잘못된 정보 신고

토론

질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.

아직 글이 없어요. 처음으로 질문하거나 공유해 보세요.

이곳의 글은 사용자가 쓴 것으로, PopNx 팀의 글이 아니에요.

로그인하고 글쓰기

사용자 리뷰

아직 리뷰가 없어요

로그인하고 리뷰 쓰기

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 19917개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 19917개 중 82%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 19917개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Pim MCP, 안전한가요?

해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 10일 전 변경됐고, 최신 버전(0.2.0)은 10일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: World Monitor, openstatus, Oh My Posh Validator, Strata, Jitsu

비슷하게 동작하는 다른 것

같은 카테고리, 다른 제작자, 명령 확인 완료. 공식이 먼저, 그다음 스타 순.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.

제작자: koala73널리 사용됨★ 9.1만어제 업데이트

클라우드에서 실행✓ 서비스 회사 · worldmonitor.app

openstatus

Manage monitors, status pages, incidents and maintenances in your openstatus workspace.

제작자: openstatusHQ널리 사용됨★ 9.3천2개월 전 업데이트

클라우드에서 실행✓ 서비스 회사 · openstatus.dev

Oh My Posh Validator

Validate oh-my-posh configurations and segment snippets against the official schema.

제작자: JanDeDobbeleer널리 사용됨★ 2.4만 저장소 전체의 별26일 전 업데이트

클라우드에서 실행✓ 서비스 회사 · ohmyposh.dev

Strata

MCP server for progressive tool usage at any scale (see https://klavis.ai)

제작자: Klavis-AI성장 중★ 5.8천14개월 전 업데이트

클라우드에서 실행저장소 보관됨✓ klavis.ai

Jitsu

Manage Jitsu data pipelines: destinations, streams, connections, functions, live events.

제작자: jitsucom널리 사용됨★ 5.1천4개월 전 업데이트

클라우드에서 실행✓ 서비스 회사 · jitsu.com
  • World Monitor — 클라우드에서 동작, 설치 불필요 · 키 불필요
  • openstatus — 클라우드에서 동작, 설치 불필요 · 키 불필요
  • Oh My Posh Validator — 클라우드에서 동작, 설치 불필요 · 키 불필요
  • Strata — 클라우드에서 동작, 설치 불필요 · 키 불필요
  • Jitsu — 클라우드에서 동작, 설치 불필요 · 키 불필요

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

One thin, local MCP server for all your calendars.

Nextcloud · iCloud · Google · any CalDAV, merged into a single view your agent can read and manage.

Quick start · Accounts · Connect · Tools · Guardrails · Providers · Contributing

 you   › Find me an hour on Thursday afternoon and put the dentist there.

agent › find_free_time start=Thu 12:00 end=Thu 18:00 duration_minutes=60 ↳ 13:00–15:30 · 16:15–18:00 › create_event calendar="icloud/personal" title="Dentist" start=Thu 13:00 ↳ ✓ created Thu 13:00–14:00 · icloud/personal

Done. Thursday 13:00 is booked; you're free again from 14:00.

✨ Why

🗂️ One merged view

Every calendar on every account in one sorted list, with recurring events expanded. No more "which account was that in?"

🧳 Portable

One TOML file with no secrets in it. Secrets are references to your OS secret store, env vars or a password manager, so the same config works on every machine.

🪶 Thin and local

Your agent client starts it over stdio when needed. Nothing runs in the background, there's no port open, and no cloud sits in between.

🛡️ Safe by default

Deleting events and anything that emails other people stay off until you allow them. Edits never overwrite changes made elsewhere.

🧭 How it works

flowchart LR

A["🤖 Agent Claude Code · Claude Desktop · Cursor "] -- "MCP · stdio" --> P[" pim-mcp on your machine "] S[("🔐 OS secret store Keychain · Secret Service · DPAPI ")] -. "app passwords / tokens" .-> P P -- CalDAV --> N["☁️ Nextcloud"] P -- CalDAV --> I["🍎 iCloud"] P -- "CalDAV + OAuth" --> G["📅 Google"] P -- CalDAV --> O["🌐 any CalDAV"]

🚀 Quick start

Requires Node.js 22+.

npm install -g pim-mcp                         # 1 · install (or prefix commands with `npx -y`)

pim-mcp init # 2 · write ~/.config/pim-mcp/config.toml pim-mcp secret set pim-mcp/icloud # 3 · store an app password (prompted, not echoed) pim-mcp check # 4 · verify every account claude mcp add pim -s user -- npx -y pim-mcp # 5 · connect your agent

pim-mcp check lists what it found:

✓ nextcloud (nextcloud) — 3 calendar(s)

nextcloud/personal Personal nextcloud/work Work ✓ icloud (icloud) — 2 calendar(s) icloud/family Family icloud/travel Travel

The config lives at ~/.config/pim-mcp/config.toml on every OS (C:\Users\ \.config\pim-mcp\config.toml on Windows). Set PIM_MCP_CONFIG to use another path.

🔐 Secrets

Passwords and tokens never go in the config. It holds a reference instead:

ReferenceResolves to
keychain:service/accountyour OS secret store. Easiest: pim-mcp secret set service/account
env:NAMEan environment variable
cmd: a command's output, e.g. cmd:op read op://Private/iCloud/password, cmd:pass show icloud, cmd:bw get password icloud

🍎 macOS : login Keychain

Stored as generic passwords in your login Keychain. You can also manage them in Keychain Access, or with security add-generic-password -s pim-mcp -a icloud -w.

🐧 Linux : Secret Service (GNOME Keyring / KWallet)

Needs secret-tool:

sudo apt install libsecret-tools     # Debian / Ubuntu

sudo dnf install libsecret # Fedora sudo pacman -S libsecret # Arch

On a headless machine there's usually no keyring running. Use env: refs (set them in your MCP client's env block) or pass:

password = "cmd:pass show pim-mcp/icloud"

🪟 Windows : DPAPI

Secrets are encrypted with DPAPI, the per-user encryption Credential Manager also uses. They're stored under %APPDATA%\pim-mcp\secrets\, and only your Windows user on this machine can decrypt them. Nothing to install. cmd: refs run in cmd.exe.

👤 Accounts

☁️ Nextcloud (any Nextcloud / ownCloud server)

  1. Nextcloud → Settings → Security → Devices & sessions → Create new app password
  2. pim-mcp secret set pim-mcp/nextcloud
[[accounts]]

id = "nextcloud" provider = "nextcloud" url = "https://your.next.cloud/remote.php/dav" username = "your-login" password = "keychain:pim-mcp/nextcloud"

🍎 iCloud

  1. account.apple.com → Sign-In and Security → App-Specific Passwords
  2. pim-mcp secret set pim-mcp/icloud
[[accounts]]

id = "icloud" provider = "icloud" username = "you@icloud.com" # the email you sign into your Apple Account with password = "keychain:pim-mcp/icloud"

📅 Google (one-time OAuth setup)

Google only allows OAuth for CalDAV:

  1. Google Cloud Console: create a project and enable the CalDAV API.
  2. OAuth consent screen: choose External and add yourself as a test user. Then set the publishing status to In production, because tokens issued in "Testing" mode expire after 7 days. An "unverified app" warning at sign-in is expected for a personal app.
  3. Credentials → Create OAuth client ID → Desktop app. Put the client ID in the config and store the secret: pim-mcp secret set pim-mcp/google-client-secret
  4. pim-mcp auth google --account google opens your browser and stores the refresh token in your OS secret store.
[[accounts]]

id = "google" provider = "google" username = "you@gmail.com" client_id = "xxxx.apps.googleusercontent.com" client_secret = "keychain:pim-mcp/google-client-secret" refresh_token = "keychain:pim-mcp/google"

🌐 Any other CalDAV server

[[accounts]]

id = "fastmail" provider = "caldav" url = "https://caldav.fastmail.com/" username = "you@fastmail.com" password = "keychain:pim-mcp/fastmail"

Known URLs are in Providers.

🔌 Connect your agent

Claude Code (any OS)

claude mcp add pim -s user -- npx -y pim-mcp

Claude Desktop, Cursor and other GUI clients. Add this to the client's MCP config:

🍎 macOS : ~/Library/Application Support/Claude/claude_desktop_config.json

{

"mcpServers": { "pim": { "command": "npx", "args": ["-y", "pim-mcp"] } } }

GUI apps don't always see your shell's PATH. If the server fails to start, replace npx with the full path from which npx, e.g. /opt/homebrew/bin/npx.

🪟 Windows : %APPDATA%\Claude\claude_desktop_config.json

{

"mcpServers": { "pim": { "command": "cmd", "args": ["/c", "npx", "-y", "pim-mcp"] } } }

npx is a batch script on Windows, so it runs through cmd /c.

🐧 Linux

Claude Desktop isn't available for Linux; use Claude Code or another MCP client with the same command / args as macOS. env: refs go in the client's env block:

"pim": {

"command": "npx", "args": ["-y", "pim-mcp"], "env": { "ICLOUD_PASSWORD": "…" } }

🧰 Tools

| | Tool | What it does | |:-:|---|---| | 📚 | list_calendars | All calendars and their ids (icloud/work). Anywhere a tool takes a calendar, a plain name works too. | | 🗓️ | list_events | Events from all calendars in a range, merged and sorted. Defaults to today through the next 7 days. | | 🔎 | search_events | Text search over title, location and description. | | 📄 | get_event | Full details: description, attendees, organizer, recurrence rule, reminders. | | 🕐 | find_free_time | Free windows of at least N minutes, optionally within working hours. | | ➕ | create_event | Timed or all-day, with recurrence, up to 3 reminders, and busy/free status. | | ✏️ | update_event | Changes only the fields you pass. Recurring events take scope: instance or series. | | 🗑️ | delete_event | Off unless allow_delete = true. Takes the event's title, so approval prompts show its name, and refuses a title that doesn't match the event. |

What agents see:

  • Times without an offset are in your configured timezone.
  • Output is ISO 8601 with offsets.
  • All-day events use YYYY-MM-DD, and their end date is inclusive.

🛡️ Guardrails

timezone = "Europe/Amsterdam"            # default: the system timezone

[guardrails] allow_delete = false # delete_event is refused allow_invites = false # no adding attendees, no editing/deleting events that have them

[[accounts]]

…

read_only = true # no writes to this account at all read_only_calendars = ["Family"] # protect specific calendars hide_calendars = ["Birthdays"] # don't show these at all

  • Refusals explain themselves. When a guardrail blocks something, the agent is told which setting would allow it, so it asks you instead of retrying.
  • No lost edits. Every write checks the event's ETag. If the event changed elsewhere since it was read, the write fails instead of overwriting.

🌍 Providers

ProviderStatusSetup
Nextcloud / ownCloud✅ testednextcloud · https:// /remote.php/dav
iCloud✅ testedicloud · app-specific password
Google Calendar🧪 betagoogle · OAuth. Not yet tried with a real account; reports welcome
Fastmail🟡 untestedcaldav · https://caldav.fastmail.com/
Yahoo🟡 untestedcaldav · https://caldav.calendar.yahoo.com
mailbox.org🟡 untestedcaldav · https://dav.mailbox.org/
Posteo🟡 untestedcaldav · https://posteo.de:8443/
Radicale · Baïkal · SOGo · Synology🟡 untestedcaldav · your server's DAV URL

| Outlook · Microsoft 365 · Exchange | 🚧 wanted | no CalDAV; needs a [Microsoft Graph backend](CONTRIBUTING.md#adding-a-no

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요