Airmcp について
AirMCPは、macOS上のAppleアプリやサービスの実データをAIクライアントから扱えるローカルMCPサーバーです。プロファイルと段階的なツール公開で幅広い機能を整理し、承認と監査記録で機微な操作を管理します。
主な機能
- 01Appleアプリとシステム操作のツール
- 02Google Workspaceツール
- 03プロファイルと段階的なツール公開
- 04イベントや再試行に対応するワークフロー
- 05機微な操作ごとの承認
- 06改ざん検知可能な監査ログ
活用シーン
- 01カレンダー、リマインダー、メールの要約
- 02アプリを横断した会議資料の検索
- 03承認を伴うメール返信の下書き
- 04Shortcutsルーチンの実行
MCP 対応
AirMCPはローカルアプリとシステムの機能をツールとしてMCPクライアントに公開します。stdioとHTTP/SSEに対応し、プロファイルや段階的な公開で利用可能なツールを管理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AirMCP
AI アシスタントは、いつも使っている Mac アプリを利用できます。 普通の言葉で頼むだけで、AirMCP はお使いのマシン上の実際のメモ、メール、カレンダー、リマインダー、メッセージ、写真、Safari、Finder、ショートカットで操作します。データはコピーでもサンドボックス内のものでもなく、実際のデータです。macOS ランタイムは現在利用可能で、iOS ランタイムはプレビュー版です。
リリース状況(2026-10-27 KST): v2.16.7 は npm と MCPB 拡張機能から利用できます。macOS アプリの ZIP は、Apple の公証認証に失敗したため、まだ利用できません。CLI または MCPB の手順を使用してください。完了したチェックと残っているアプリ配布の条件については、リリース検証記録をご覧ください。
"Brief me on today's calendar, overdue reminders, and unread mail."
"For my next meeting, pull up the related notes, contacts, files, and reminders."
"Search my Safari tabs for that article and save a summary to Notes."
"Draft replies to the urgent mail, but ask me before sending anything."
"Run my Morning Routine shortcut."
Node.js 20 以降を使って macOS で始めましょう。
npx airmcp init
あとはクライアントに頼むだけです。Claude、Codex、Cursor、Raycast、Xcode エージェント、その他すべての MCP クライアントで動作します。オプトインするまで、クライアントの設定を読み取ったり変更したりすることはありません。
もっと試してみましょう:一般的なワークフロー · すべてのツール · クイックスタート
裏で勝手に操作することはありません
AirMCP は接続・制御レイヤーであり、新たなエージェントではありません。破壊的な呼び出しは実行前にプレビューされ、承認は呼び出しごとに求められます。また、監査チェーンは改ざんを検出でき、あなた自身で検証できます。airmcp://trust を読み、自分で確認してください。詳しくは安全性モデルをご覧ください。
scripts/demo/governed-flow.mjs による実際のローカル MCP ラウンドトリップから生成。実際のターミナル出力であり、演出された記録ではありません。
多言語プロジェクトページ:heznpc.github.io/AirMCP
利用できる機能
- Apple ワークスペースツール:メモ、リマインダー、カレンダー、連絡先、メール、 メッセージ、ミュージック、Finder、Safari、写真、ショートカット、システム制御、画面 キャプチャ、天気、マップ、位置情報、Bluetooth など。
- Google Workspace ツール:Gmail、Drive、Sheets、Calendar、Docs、Tasks、
People、および生の
gwsCLI アクセス。 - プロファイルと段階的な公開:クライアントに、読み込まれたすべてのツールではなく、小さな入口から使い始めてもらえます。
- Skills DSL ワークフロー:
parallel、loop、retry、on_error、ランタイム入力、イベントトリガーに対応しています。 - App Intent アクションブリッジ:macOS ショートカット向けに MCP マニフェストから生成されます。iOS 専用の App Shortcuts プロバイダーもあり、破壊的なインテントは別途制御されます。
- ネイティブ Swift ブリッジ:EventKit、PhotoKit、HealthKit、Vision、オンデバイスのセマンティック検索、FoundationModels のプレビュービルドに対応しています。AirMCP.app には通常のブリッジが組み込まれています。npm および MCPB を使う場合は任意で、必要に応じて個別にビルドできます。
- デュアルトランスポート:標準 MCP クライアント向けの stdio と、共有ローカルランタイム、ブラウザクライアント、レジストリ、常時稼働ホスト向けの HTTP/SSE に対応しています。
Apple プラットフォームの方針
AirMCP は、すべてのデバイスに完全な Mac ランタイムを複製するのではなく、プラットフォームごとの役割を備えた、統制された単一のアクションレイヤーです。
| プラットフォーム | 状態 | 役割 |
|---|---|---|
| macOS | 利用可能 | 完全なローカル MCP ランタイムと、Apple アプリおよびシステムとの幅広い統合。 |
| iOS / iPadOS | プレビュー | ネイティブのカレンダー、リマインダー、連絡先、ヘルスケア、位置情報のアクションに加え、プロセス内の AppIntents。 |
| visionOS | ロードマップ | 空間インタラクションとネイティブアクション。Mac 専用の自動化は Mac にルーティングします。 |
| watchOS | ロードマップ | ペアリングした iPhone のランタイムを通じたコマンド、通知、呼び出しごとの承認。 |
共通の Swift レイヤーと AppIntents レイヤーが、移植性の境界となります。プラットフォームのサンドボックスとライフサイクルのルールによって、どのアクションをローカルで実行し、どのアクションをペアリングした Mac または iPhone にルーティングするかが決まります。
クイックスタート
Claude Desktop ワンクリック
- リリースから
airmcp-<version>.mcpbをダウンロードします。 - Claude Desktop にドラッグするか、Settings -> Extensions -> Install from file... を使用します。
- インストールフォームでモジュールを選択し、セットアップを完了します。
詳細なガイド:docs/mcpb.md。
macOS アプリ(署名済み+公証済み)
デスクトップ版は、Developer ID で署名され、公証され、チケットが添付された AirMCP-<version>.zip です。この方法を選ぶ前に、リリースで選択したバージョンのアセットを確認してください。v2.16.6 と v2.16.7 にはアプリ ZIP がありません。v2.16.7 の試行は Apple の公証アカウント認証で停止し、アプリの配布は未完了です。この ZIP にはビルド手順は不要です。埋め込みの Node ランタイム、Swift ブリッジ、メニューバーのトラストセンター、生成された App Intents(ショートカットアクション)とウィジェットがすべて含まれています。
アプリ ZIP が添付された v2.16.5 以降を選択してください。v2.16.3 と v2.16.4 のリリースには、正しく署名、公証、チケット添付されたアプリ ZIP が含まれていますが、起動時にメニューバーアイコンが表示される前にクラッシュします。これは v2.16.5 で修正されたリソースバンドルのパスの不具合が原因です。
AirMCP-<version>.zipをダウンロードして解凍します。AirMCP.appを/Applicationsに移動して開きます。公証チケットが添付されているため、Gatekeeper はオフラインでもこれを受け入れます。- 同意に基づくセットアップウィンドウの案内に従います。クライアントを選択するまでは、何も起動せず、クライアントの設定も編集されません。
CLI ウィザード
Node.js 20+ をインストールしてから、次を実行します。
npx airmcp init
ウィザードでプロファイルを選択し、設定を ~/.config/airmcp/config.json に保存します。クライアントの登録は別途同意が必要な手順で、デフォルトは No です。オプトインするまで、Claude、Codex、Cursor、Windsurf の設定が読み取られたり変更されたりすることはありません。
Codex、Claude Code、Cursor、Windsurf などの stdio クライアントでは、直接ランタイムを使用するか、アセットとして含まれるリリースから署名済みの AirMCP-<version>.zip をインストールした後に、アプリ所有のランタイムを使用してください。
npx airmcp init --no-clients
npx airmcp connect-clients --client-runtime direct --dry-run
npx airmcp connect-clients --client-runtime direct
アプリ所有のランタイムは、署名済みアプリ ZIP をインストールし、明示的に Start Local Runtime を選択した後にのみ利用できます。v2.16.5 より前のリリースにはアプリのアセットがないか、起動できないアセットが含まれています。そのようなリリースでは、AirMCP.app の起動を待つようにクライアントを設定しないでください。
非対話型の例:
npx airmcp init --profile starter --yes
npx airmcp init --profile communications-safe --yes
npx airmcp init --profile productivity --yes
npx airmcp init --profile productivity --yes --connect-clients
npx airmcp init --profile productivity --yes --connect-clients --client-runtime direct
インストールを確認します。
npx airmcp doctor
よくあるワークフロー
接続したら、MCP クライアントに自然な言葉で依頼します。
- 「今日のカレンダーの予定と期限超過のリマインダーを教えてください。何も変更しないでください。」
- 「今日のカレンダー、期限超過のリマインダー、未読メール、最近のメモについて、概要を教えてください。」
- 「今日の会議を準備用チェックリストにまとめてください。」
- 「緊急メールへの返信を下書きしてください。ただし、送信する前に確認してください。」
- 「次の会議に関連するメモ、連絡先、ファイル、リマインダーを探してください。」
- 「Safari のタブからあの記事を検索し、要約をメモに保存してください。」
- 「Morning Routine ショートカットを実行してください。」
- 「スクリーンショットを撮って、デスクトップに保存してください。」
ワークフローの例は、docs/workflows.md をご覧ください。
ランタイムモデル
AirMCP は、カタログ全体をすべてのクライアントコンテキストに読み込ませることなく、大規模なローカル機能群を利用できるように設計されています。
現在、生成される完全なカタログには、32 個のモジュールにわたる 293 個のツールが含まれています。 プロファイルと段階的な公開により、クライアントがすべてを一度に読み込まずに済みます。
- プロファイル:
starter、communications-safe、productivity、full、またはcustom。 - ツールの公開:
progressive、profile、またはfull。 - モジュールパック:
npx airmcp modulesまたはAIRMCP_MODULE_PACKS=core,productivityを使って、必要なパックだけを有効にします。 - タスクセッション:
start_tool_session、discover_tools、run_toolを使うと、幅広いランタイムをタスクに特化したツールセットのように動作させられます。 - オプトインのネットワークモジュール:
webhooksとpowerautomateは、明示的に有効にするまで、どのプロファイルでもオフのままです。
便利なコマンド:
npx airmcp modules
npx airmcp modules enable productivity --install
npx airmcp --full
npx airmcp workflows
npx airmcp workflows --readiness
npx airmcp workflows today-overview --prompt
today-overview は、スターター向けに安全な最初のワークフローです。Calendar
と Reminders だけを読み取り、データを書き込むことはありません。出力されたプロンプトを接続済みの
MCP クライアントに貼り付けると、クライアントによる認可と AirMCP の監査対象範囲のもとで、管理された初回実行ができます。
workflows <id> --preview は、独立したローカル診断機能です。Apple アプリを
直接読み取り、MCP のガバナンス経路を迂回し、AirMCP の監査エントリーを作成しません。
最初の成功ワークフローとして使用しないでください。daily-briefing --preview などの
より広範な診断では、ライブデータを読み取る前に、不足しているモジュールを報告します。
生成された完全なツールマニフェストは docs/tool-manifest.json にあります。
現在生成されるインターフェース:230 個の App Intent アクションタイプ、85 個の Interactive Snippet ビュー、 15 個の AppEnum ピッカー、およびプレビューランタイムに対応する、読み取り専用の App Shortcuts を 8 個備えた iOS 専用プロバイダー。セッションレスの検出カードでは MCP スキーマバージョン 2025-11-25 を使用します。
安全性モデル
AirMCP は、ローカルアプリへのアクセスをエージェント向けの無制限なシェルではなく、ガバナンスの対象となるアクションレイヤーとして扱います。
この主張は検証可能であり、宣伝文句ではありません。ファーストパーティの airmcp://trust
リソースを読み取ると、改ざん検知機能を備えた監査チェーン、アクティブな HITL レベル、レート制限/緊急停止の状態、および監査キーのグレードから構成される、ライブの governed 判定を確認できます。これは、ツールへのアクセス範囲を広げる前に利用できます。破壊的な呼び出しを実行せずに、どのように記録され、ゲート対象になるかを正確に確認するには、preview_action でプレビューしてください。
- 既定の
sensitive-onlyHITL レベルでは、破壊的な操作と機密性の高い操作に対して呼び出しごとに人間の承認が必要です。 ~/.airmcp/audit.jsonlに保存される HMAC チェーン監査ログ。改ざん検知はテストで確認されています。- ガバナンス対象の実行タイムライン、承認状態、監査の整合性、緊急制御、権限プローブ、ローカルデータのマスキング済みエクスポートに対応するネイティブの Trust Center。
監査履歴がバックグラウンドで読み取られることはありません。Load または Refresh を実行すると、
audit_logリクエストが 1 回明示的に送信され、この呼び出しには有効な HITL ポリシーによる承認が必要な場合があります。 - レート制限:全体で毎分 60 回、破壊的操作は毎時 10 回。
- 緊急停止:
touch ~/.config/airmcp/emergency-stopを実行すると、サーバーを再起動せずに破壊的なツールをブロックします。 AIRMCP_ALLOW_NETWORKによるインバウンド HTTP ポリシー:既定ではループバックのみを許可し、より広範な公開にはトークン、オリジン、または OAuth モードを利用できます。- スコープ付きアクセス制御が必要な HTTP ランタイム向けの OAuth 2.1 + Resource Indicators。RS256/ES256 JWT 検証に対応しています。
環境変数は docs/environment.md に一覧があります。 HTTP ポリシーの詳細は RFC 0002、OAuth の詳細は RFC 0005 を参照してください。
クライアントのセットアップ
署名済みの AirMCP.app ZIP を含むリリースでは、接続されたすべての
クライアントの背後に単一のローカルランタイムを配置する、アプリ所有の
デスクトップパターンがサポートされています。インストールごとのトークンは、
明示的な操作によってのみ作成されます。AirMCP.app の Start
Local Runtime、または --connect-clients / connect-clients のような
アプリランタイムへの接続をオプトインしたクライアント接続です。トークンは次の場所に保存されます。
~/Library/Application Support/AirMCP/http-token
macOS のセットアップウィンドウはユーザーの同意を前提としており、自動的に一度だけ表示され、 再度開くと最後のステップから再開します。セットアップを開いたり進めたりするだけでは ランタイムは起動せず、クライアントの設定も編集されません。また、ランタイムがない状態で初回起動時に Finish Later を選ぶと、選択内容のみが保存されます。アプリ所有のランタイムがすでに実行中で、 選択内容が変更された場合、Finish Setup によって、保存されたスコープと実際に有効なスコープが 一致するように、そのアプリが所有する同一世代のランタイムを停止して再起動することがあります。 Start Local Runtime を選ぶとトークンが作成され、自動起動が有効になります。各クライアントは、 そのクライアント自身の Connect 操作と、最新のスコープ/準備状態の確認が完了した後にのみ登録されます。
既存の Codex 登録は、設定を削除せずに確認または無効化できます。
npx airmcp codex status
npx airmcp codex disable
npx airmcp codex コマンドは、子プロセスとして起動する Codex CLI のアクティブなユーザー設定ルートに従います。優先順位は、まず AIRMCP_CODEX_CONFIG_PATH、次に
$CODEX_HOME/config.toml、最後に ~/.codex/config.toml です。明示的なオーバーライドは、
コマンドを実行した作業ディレクトリを基準に解決され、ファイル名は
config.toml である必要があります。
stdio クライアントは、アプリ所有の HTTP ランタイムにプロキシ接続できます。
npx -y airmcp connect --url http://127.0.0.1:3847/mcp
このプロキシを使う場合は、トークンの値を AIRMCP_HTTP_TOKEN に設定します。
例:
claude mcp add --env AIRMCP_HTTP_TOKEN=<token> airmcp -- npx -y airmcp connect --url http://127.0.0.1:3847/mcp
codex mcp add --env AIRMCP_HTTP_TOKEN=<token> airmcp -- npx -y airmcp connect --url http://127.0.0.1:3847/mcp
開発用またはクライアント所有の隔離されたランタイムでは、直接 stdio モードも引き続き使用できます。
npx -y airmcp
ブラウザベースの MCP クライアントでは、トークンとオリジンのチェックを行う HTTP モードを使用してください。ブラウザー/OAuth の フローについては、docs/oauth-browser-pkce.md を参照してください。
App Intents とショートカット
AirMCP は、同じ MCP ツールマニフェストから App Intent アクションを生成します。macOS では、
これらのアクションをショートカットのアクションライブラリから利用できます。Apple は macOS で
AppShortcutsProvider のフレーズサーフェスをサポートしていません。iOS のプレビュービルドでは、
ワークフローを優先する App Shortcuts プロバイダーもコンパイルできます。
破壊的な Intent のソース生成を有効にするには、ビルド/コード生成時に
AIRMCP_APPINTENTS_DESTRUCTIVE=true を明示的に指定します。すでにビルド済みのアプリの隣でこの値を設定しても、
そのバイナリの Intent サーフェスは拡張されません。
AskAirMCPIntent と FoundationModels を利用する Apple Intelligence の各パスはプレビュー専用であり、
明示的な Swift ビルドが必要です。
ガイド:docs/shortcuts.md。アーキテクチャ: RFC 0007。
ローカル開発
git clone https://github.com/heznpc/AirMCP.git
cd AirMCP
npm install
npm run build
node dist/index.js
便利なチェック:
npm test
npm run mcp:validate
npm run dev:test -- notes
npm run dev:test:changed
Swift ブリッジ:
npm run swift-build
FoundationModels のプレビュービルドには、macOS 26 以降、Apple Silicon、互換性のある SDK、および明示的なコンパイルフラグが必要です。
cd swift
swift build -c release -Xswiftc -DAIRMCP_ENABLE_FOUNDATION_MODELS
Swift またはアプリのビルド後、ローカルのビルド成果物が増えることがあります。無視対象の成果物を 確認または削除するには、次のコマンドを実行します。
npm run clean:local
npm run clean:local:apply
npm run size:check
テストガイド:docs/testing.md。
要件
- サーバーランタイムには macOS が必要です。
- Node.js 20 以降。
- 有効にするモジュールに応じて、macOS のオートメーション、アクセシビリティ、フルディスクアクセス、位置情報、Bluetooth、または 写真へのアクセス許可が必要です。
- 単体で動作する AirMCP.app ディストリビューションには、固定バージョンの Node ランタイムと
通常の Swift ブリッジが組み込まれています。npm パッケージと
.mcpbには Swift バイナリが組み込まれていません。これらの成果物を使うユーザーは、Swift 対応ツールを使うためにソースからビルドするか、 Swift バイナリが組み込まれた署名済みの AirMCP.app リリースアセットをインストールしてください。 - FoundationModels を利用する Apple Intelligence のプレビューには、macOS 26 以降、Apple
Silicon、および
AIRMCP_ENABLE_FOUNDATION_MODELSが必要です。
macOS ランタイムは、現在サポートされているリリースです。iOS ランタイムは プレビュー版です。visionOS と watchOS はロードマップ上の対象であり、リリース済み製品ではありません。
ドキュメント
- ツールマニフェスト:登録済みツールの生成リストです。
- ワークフロー:対象ワークフローとプロンプトカタログです。
- スキル DSL:YAML ワークフローの構文と組み込み機能です。
- ショートカット:macOS App Intent のアクションと、iOS 専用の App Shortcuts の機能です。
- 環境変数:すべてのランタイム設定項目です。
- MCPB のインストール:Claude Desktop の拡張パッケージです。
- OAuth ブラウザー PKCE:ブラウザークライアントのセットアップです。
- RFC インデックス:設計記録とアーキテクチャに関するメモです。
- テスト:開発時のテストワークフローです。
- プロジェクトの方向性:製品の方向性と位置付けです。
コントリビューション
開発環境のセットアップ、コードスタイル、PR ガイドラインについては、CONTRIBUTING.md をご覧ください。
初めてコントリビューションする方は、
good first issueをご覧ください。
コミュニティ
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
