mattt/iMCP

A macOS app that provides an MCP server to your Messages, Contacts, Reminders and more

iMCP – 個人データと AI ツール間の macOS ブリッジ

概要 – iMCP は Model Context Protocol (MCP) を実装するネイティブ macOS アプリケーション(imcp‑server コマンドラインツール同梱)です。カレンダー、連絡先、位置情報、マップ、メッセージ、リマインダー、天気といった一連の「ツール」を公開し、Claude DesktopClaude CodeCursorAmp などの MCP 互換 AI クライアントから呼び出すことができます。AI は例えば「今いる場所の天気は?」と要求でき、iMCP は OS からデータを取得し、構造化された JSON‑LD 形式で返します。


主な機能

サービス できること
Calendar イベントの一覧表示、新規イベントの作成(繰り返し、アラーム、空き状況)。
Contacts 自分の連絡先カードの読み取り、名前、電話番号、メールによる連絡先検索。
Location 現在の地理座標の取得、または住所と座標の相互変換。
Maps 場所の検索、ルートの取得、スポットの検索、移動時間の見積もり、静的地図画像の生成。
Messages 指定した日付範囲内の特定の参加者とのメッセージ履歴の取得。
Reminders リマインダーの一覧表示、期限、優先度、アラート付きの新規リマインダーの作成。
Weather 任意の場所の現在の気温、風速、天気状況の取得。

仕組み

  1. MCP サーバー – 同梱の imcp‑server はローカル TCP サービス(Bonjour 経由の _mcp._tcp)として実行されます。stdio トランスポート (stdin/stdout) を介して AI クライアントと通信し、リクエストを GUI アプリに転送します。
  2. 権限処理 – macOS アプリは、サービスを初めて有効にする際に標準的なシステム権限(カレンダー、連絡先など)を要求します。iMCP 自体はデータを保存または送信しません。接続した AI クライアント(例:Claude)のみがデータを送信する場合があります。
  3. ツールの応答 – 各ツールは schema.org の語彙を使用した JSON‑LD ドキュメントを返します(例:連絡先用の Person オブジェクト)。このフォーマットは人間と LLM の両方が消費しやすい形式です。
  4. クライアント統合 – iMCP をインストールした後、クライアントに追加します:
    • Claude DesktopConfigure Claude Desktop メニュー項目を使用するか、サーバーコマンドを claude_desktop_config.json にコピーします。
    • Claude Codeclaude mcp add --scope user iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server
    • Cursor – 提供されたディープリンクをクリックすると、サーバーコマンドが自動的にインストールされます。
    • Ampamp mcp add iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server
  5. デバッグ – プロジェクトには MCP Inspector (Node.js) と macOS Companion アプリが含まれており、リクエスト/レスポンスのストリームを表示し、サーバーをテストできます。

はじめに(クイックステップ)

  1. インストールbrew install --cask mattt/tap/iMCP または https://iMCP.app/download からダウンロード(macOS 15.3+ が必要)。
  2. 起動 – メニューバーにアイコンが表示されます。青いスイッチを切り替えて MCP サーバーを起動します。
  3. サービスの有効化 – サービスアイコンをクリックし、macOS の権限ダイアログを許可すると、アイコンの色が変わります(赤 = カレンダー、緑 = メッセージなど)。
  4. クライアントの接続 – 上記のクライアント固有の手順に従います。クライアントが接続を承認すると、チャット UI にツールが利用可能であることを示すハンマー (🔨) アイコンが表示されます。
  5. AI に質問 – 個人データを必要とする自然言語のリクエストを投げかけます。AI が適切な iMCP ツールを呼び出し、結果を返します。

技術的ハイライト

  • Swift SDK – iMCP は Model Context Protocol の公式 Swift SDK (https://github.com/modelcontextprotocol/swift-sdk) を使用しています。
  • メッセージデータベースへのアクセス – カスタム Madrid Swift パッケージを介して ~/Library/Messages/chat.db から macOS メッセージを読み取り、Apple の独自 typedstream 形式をデコードします。
  • JSON‑LD オントロジーOntology Swift パッケージは、Apple フレームワークオブジェクト(例:CNContact)を schema.org JSON‑LD としてエンコードするためのヘルパーを提供します。
  • ローカル検出 – Bonjour 広告により、手動設定なしで MCP 互換クライアントがサーバーを見つけることができます。

想定ユーザー

  • パワーユーザー – 手動で情報をコピーすることなく、LLM アシスタントに実際の個人データに基づいた行動(会議のスケジュール、最近のメッセージの取得、天気の確認)をさせたいユーザー。
  • 開発者 – 新しい MCP クライアントやカスタムツールを構築するユーザー。iMCP はリファレンス実装であり、すぐに使えるデータソースとして機能します。
  • プライバシー重視のユーザー – iMCP 自体はデータを保存または送信しません。すべてのデータフローは macOS の権限を通じてユーザーが制御します。

ライセンスと法的事項

  • MIT ライセンス。
  • Apple とは提携していません。iMessage® は Apple Inc. の商標です。

結論: iMCP は、本物の本番環境に対応した macOS ブリッジであり、現代の AI アシスタントが標準プロトコルを通じて安全かつローカルに個人の macOS データを照会できるようにし、AI 主導の個人の生産性向上を可能にしつつプライバシーに配慮します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト