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 Desktop、Claude Code、Cursor、Amp などの MCP 互換 AI クライアントから呼び出すことができます。AI は例えば「今いる場所の天気は?」と要求でき、iMCP は OS からデータを取得し、構造化された JSON‑LD 形式で返します。
主な機能
| サービス | できること |
|---|---|
| Calendar | イベントの一覧表示、新規イベントの作成(繰り返し、アラーム、空き状況)。 |
| Contacts | 自分の連絡先カードの読み取り、名前、電話番号、メールによる連絡先検索。 |
| Location | 現在の地理座標の取得、または住所と座標の相互変換。 |
| Maps | 場所の検索、ルートの取得、スポットの検索、移動時間の見積もり、静的地図画像の生成。 |
| Messages | 指定した日付範囲内の特定の参加者とのメッセージ履歴の取得。 |
| Reminders | リマインダーの一覧表示、期限、優先度、アラート付きの新規リマインダーの作成。 |
| Weather | 任意の場所の現在の気温、風速、天気状況の取得。 |
仕組み
- MCP サーバー – 同梱の
imcp‑serverはローカル TCP サービス(Bonjour 経由の_mcp._tcp)として実行されます。stdio トランスポート (stdin/stdout) を介して AI クライアントと通信し、リクエストを GUI アプリに転送します。 - 権限処理 – macOS アプリは、サービスを初めて有効にする際に標準的なシステム権限(カレンダー、連絡先など)を要求します。iMCP 自体はデータを保存または送信しません。接続した AI クライアント(例:Claude)のみがデータを送信する場合があります。
- ツールの応答 – 各ツールは schema.org の語彙を使用した JSON‑LD ドキュメントを返します(例:連絡先用の
Personオブジェクト)。このフォーマットは人間と LLM の両方が消費しやすい形式です。 - クライアント統合 – iMCP をインストールした後、クライアントに追加します:
- Claude Desktop – Configure Claude Desktop メニュー項目を使用するか、サーバーコマンドを
claude_desktop_config.jsonにコピーします。 - Claude Code –
claude mcp add --scope user iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server。 - Cursor – 提供されたディープリンクをクリックすると、サーバーコマンドが自動的にインストールされます。
- Amp –
amp mcp add iMCP -- /Applications/iMCP.app/Contents/MacOS/imcp-server。
- Claude Desktop – Configure Claude Desktop メニュー項目を使用するか、サーバーコマンドを
- デバッグ – プロジェクトには MCP Inspector (Node.js) と macOS Companion アプリが含まれており、リクエスト/レスポンスのストリームを表示し、サーバーをテストできます。
はじめに(クイックステップ)
- インストール –
brew install --cask mattt/tap/iMCPまたは https://iMCP.app/download からダウンロード(macOS 15.3+ が必要)。 - 起動 – メニューバーにアイコンが表示されます。青いスイッチを切り替えて MCP サーバーを起動します。
- サービスの有効化 – サービスアイコンをクリックし、macOS の権限ダイアログを許可すると、アイコンの色が変わります(赤 = カレンダー、緑 = メッセージなど)。
- クライアントの接続 – 上記のクライアント固有の手順に従います。クライアントが接続を承認すると、チャット UI にツールが利用可能であることを示すハンマー (🔨) アイコンが表示されます。
- 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 主導の個人の生産性向上を可能にしつつプライバシーに配慮します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト