iMCPは、デジタルライフとAIを繋ぐmacOSアプリです。Claude Desktopおよび、モデルコンテキストプロトコル(MCP)をサポートするクライアント(増え続ける)と連携します。
機能
[!TIP] 新しい機能についてのご提案は、 imcp@loopwork.comまでお問い合わせください。
はじめる
アプリをダウンロードして開く
まず、 iMCP アプリをダウンロードします(macOS 15.3 以降が必要です)。
アプリを開くと、メニューバーにアイコンが表示されます。
このアイコンをクリックすると、iMCPメニューが表示され、利用可能なすべてのサービスが表示されます。最初はすべてのサービスが灰色で表示され、非アクティブであることを示します。
上部の青いトグル スイッチは、MCP サーバーが実行中であり、MCP 対応クライアントに接続する準備ができていることを示します。
サービスを有効化
サービスを有効にするには、アイコンをクリックします。システムから許可を求めるダイアログが表示されます。例えば、カレンダーへのアクセスを有効にする場合、 "iMCP" Would Like Full Access to Your Calendar
というダイアログが表示されます。「フルアクセスを許可」をクリックして続行してください。
[!重要] iMCP はユーザーのデータを収集または保存しません。Claude Desktop などのクライアントは、ツール呼び出しの一環としてユーザーのデータをデバイス外に送信します。
有効になると、各サービスのアイコンが灰色からそれぞれの固有の色に変わります。カレンダーは赤、メッセージは緑、場所は青などです。
有効にしたいすべての機能について、このプロセスを繰り返します。これらの権限はAppleの標準セキュリティモデルに準拠しており、iMCPがアクセスできる情報を完全に制御できます。
Claudeデスクトップに接続
Claude Desktop がインストールされていない場合は、ここからダウンロードできます。
Claude Desktopを開き、「設定... (⌘,)」に移動します。設定パネルのサイドバーで「開発」をクリックし、「設定の編集」をクリックします。これにより~/Library/Application Support/Claude/claude_desktop_config.json
に設定ファイルが作成されます。
iMCP を Claude Desktop に接続するには、 > 「Claude Desktop の構成」をクリックします。
これにより、アプリケーションにバンドルされているimcp-server
実行ファイルを使用するように、MCP サーバー設定が追加または更新されます。ファイル内のその他の MCP サーバー設定は保持されます。
「サーバーコマンドをクリップボードにコピー」をクリックします。次に、エディターで
claude_desktop_config.json
を開き、以下を入力します。
Claude DesktopからiMCPツールを呼び出す
Claude デスクトップアプリを終了して再度開きます。接続を承認するように求められます。
[!NOTE] このダイアログが 2 回表示される場合がありますが、両方とも [承認] をクリックしてください。
接続を承認すると、チャットボックスの右下に🔨12が表示されます。これをクリックすると、iMCPがClaudeに提供しているすべてのツールのリストが表示されます。
これで、次のような個人データへのアクセスを必要とする質問をクロードに尋ねることができるようになりました。
「私のいる場所の天気はどうですか?」
Claude は適切なツールを使用してこの情報を取得し、会話中にこのデータを手動で共有する必要なく、正確でパーソナライズされた応答を提供します。
技術的な詳細
アプリとCLI
iMCP は、コマンドライン実行可能ファイルimcp-server
をバンドルした macOS アプリです。
iMCP.app
、サービスを構成するための UI を提供し、最も重要な点として、連絡先、カレンダー、その他の情報にアクセスできるように macOS のシステム権限を操作する手段を提供します。imcp-server
通信に標準入出力 ( stdio トランスポート) を使用する MCP サーバーを提供します。
アプリとCLIは、自動検出のためにBonjourを使用してローカルネットワーク上で相互通信します。どちらもタイプ「_mcp._tcp」、ドメイン「local」のサービスをアドバタイズします。MCPクライアントからのリクエストはCLIによってstdin
から読み取られ、アプリに中継されます。アプリからのレスポンスはCLIによって受信され、 stdout
に書き込まれます。実装の詳細については、 StdioProxy
参照してください。
このプロジェクトでは、モデルコンテキストプロトコル(MCP)サーバーとクライアント用のSwift SDKであるmcp-swift-sdkを作成しました。アプリはこのパッケージを使用して、MCPクライアントからのプロキシリクエストを処理します。
iMessage データベースアクセス
Appleはメッセージにアクセスするための公開APIを提供していません。ただし、macOSのメッセージアプリは~/Library/Messages/chat.db
にあるSQLiteデータベースにデータを保存します。
iMCPはApp Sandbox内で実行され、ユーザーデータとシステムリソースへのアクセスが制限されています。メッセージサービスを有効にすると、標準のファイルピッカーでchat.db
ファイルを開くように求められます。開くと、macOSによってそのファイルがアプリのサンドボックスに追加されます。NSOpenPanel NSOpenPanel
まさに魔法のようです。
しかし、iMessageデータベースの公開は、戦いの半分に過ぎません。ここ数年、Appleはメッセージをプレーンテキストで保存するのではなく、独自のtypedstream
形式に移行してきました。
このプロジェクトのために、iMessageデータベースを読み込むためのSwiftパッケージ「Madrid」を作成しました。このパッケージには、Christopher Sardegna氏のimessage-exporterプロジェクトとtypedstream
リバースエンジニアリングに関するブログ記事を参考に、Appleのtypedstream
形式をデコードするためのSwift実装が含まれています。
ツール結果のJSON-LD
iMCPが提供するツールは、結果をJSON-LDドキュメントとして返します。例えば、 fetchContacts
ツールは、 CNContact
型で個人や組織を表すContactsフレームワークを使用します。この型のオブジェクトは、以下のようにJSON-LDとしてエンコードされます。
Schema.orgは、人物、住所、イベントなど、私たちが表現したい多くのオブジェクトのための標準語彙を提供しています。また、JSON-LDは、人間、AI、そして従来のソフトウェアにとって便利なエンコード形式です。
このプロジェクトでは、構造化データを扱うためのSwiftパッケージ「Ontology」を作成しました。これには、iMCPツールから返されるものなど、Appleフレームワークの型に対応する便利な初期化子が含まれています。
デバッグ
MCPインスペクターの使用
iMCP とクライアント間のやり取りをデバッグするには、インスペクタ ツールを使用できます (Node.js が必要です)。
- クリック > 「サーバーコマンドをクリップボードにコピー」
- ターミナルを開き、次のコマンドを実行します。
このツールを使用すると、クライアントと iMCP サーバー間のすべての要求と応答を確認できるため、プロトコルの動作を理解するのに役立ちます。
謝辞
- MCP に関する作業に貢献してくれたJustin Spahr-Summers ( @jspahrsummers )、David Soria Parra ( @dsp-ant )、Ashwin Bhat ( @ashwin-ant ) に感謝します。
- メッセージ アプリで使用される
typedstream
形式をリバース エンジニアリングしてくれたChristopher Sardegna ( @ReagentX )。
ライセンス
このプロジェクトは、Apache License バージョン 2.0 に基づいてライセンスされています。
法律上の
iMessage®はApple Inc.の登録商標です。
このプロジェクトは、Apple Inc. と提携、承認、または後援されていません。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
メッセージ、連絡先などにMCPサーバーを提供するmacOSアプリ
Related MCP Servers
- -securityFlicense-qualityAn MCP server that provides safe access to your iMessage database through MCP, enabling LLMs to query and analyze iMessage conversations with proper phone number validation and attachment handlingLast updated -53Python
- -securityFlicense-qualityAn MCP server to list and launch applications on MacOSLast updated -184JavaScript
- AsecurityAlicenseAqualityA simple MCP server that can send notifications on mac devices.Last updated -598TypeScriptMIT License
- AsecurityAlicenseAqualityEnables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.Last updated -66281,692TypeScriptMIT License