🤖 MCP(モデル・コンテキスト・プロトコル)
CanGoalにはMCP(Model Context Protocol)サーバーが組み込まれており、Claude Desktop、Cursor、ChatGPT DesktopなどのAIアシスタントが、安全なローカル接続経由であなたの目標、タスク、計測セッション、ノート、統計情報を直接読み取って管理できます。
- プロトコル:MCP
2025-06-18+ JSON-RPC 2.0 - トランスポート:stdioのみ(stdin/stdout) — HTTPやWebSocketサーバーは使用しません
- ツール数:22(Goal 6 / Task 6 / Timing 3 / Note 5 / Stats 2)
- プラットフォーム:macOSのみ(iOSのプロセスはデスクトップクライアントから起動できません)
MCPはCanGoalに同梱された独立したヘルパー実行ファイルとして動作するため、メインアプリに干渉することはありません — GUIとAIアシスタントを同時に実行できます。
MCPでAIにできること
接続すると、AIアシスタントは以下のことができます:
- データの読み取り — 目標、タスク、計測記録、ノート、統計情報を一覧表示します。
- 作成・編集 — 目標やタスクの追加、タスクの完了、フォーカスタイマーの開始/停止、ノートの追加を行います。
- 進捗の追跡 — 統計情報や目標ごとの定量化の進捗を照会します。
AIが行う操作はすべてCanGoalアプリとまったく同じビジネスロジックを経由するため、連続記録(ストリーク)、ウィジェット、通知、CloudKit同期も同一の動作をします。
AIクライアントの接続
MCPヘルパーは、インストールされたアプリの次の場所にあります:
/Applications/CanGoal.app/Contents/Helpers/CanGoalMCP.app/Contents/MacOS/CanGoalMCP
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json を編集します:
{
"mcpServers": {
"cangoal": {
"command": "/Applications/CanGoal.app/Contents/Helpers/CanGoalMCP.app/Contents/MacOS/CanGoalMCP",
"args": []
}
}
}
Claude Desktopを再起動します。ツールメニューに cangoal サーバーの22個のツールが表示されます。
Cursor
Settings → MCP Servers → Add new MCP Server に移動します:
- Type:
command - Name:
cangoal - Command:
/Applications/CanGoal.app/Contents/Helpers/CanGoalMCP.app/Contents/MacOS/CanGoalMCP
ChatGPT Desktop
Settings → Connectors → Add new connector に移動し、Claude Desktopと同じJSONを使用します。
利用可能なツール(22)
Goal (6)
list_goals— すべての目標を一覧表示(ステータス / アクティブでフィルタ可能)get_goal— 目標の詳細を取得(進捗、統計サマリー)create_goal— 目標を作成(名前、種類、カラー、期限、定量化ターゲット)update_goal— 目標のフィールドを更新delete_goal— 目標を論理削除list_goal_templates— 利用可能な目標テンプレートを一覧表示
Task (6)
list_tasks— タスクを一覧表示(目標 / 日付 / ステータスでフィルタ)get_task— タスクの詳細を取得(チェックリスト、ストリーク)create_task— 目標の下にタスクを作成update_task— タスクのフィールドを更新complete_task— タスクを完了としてマーク(GUIと同様にストリーク / ウィジェット / 通知をトリガー)delete_task— タスクを削除
Timing (3)
start_timing— タスクのフォーカスセッションを開始(ストップウォッチまたはポモドーロ)stop_timing— 現在のセッションを停止し、TimingRecord + GoalEventを書き込みlist_timing_records— 計測履歴を照会
Note (5)
list_notes— ノートを照会(目標 / タスク / 日付ごと)get_note— ノートの全文を取得add_note— 目標またはタスクにテキストノートを追加update_note— ノートを編集delete_note— ノートを削除
Stats (2)
get_statistics— 全体の統計(今日の完了数、ストリーク、合計計測時間、目標の概要)get_goal_progress— 目標の定量化の進捗 + タスクごとの貢献度
プライバシーとセキュリティ
- MCPはstdio経由で完全にローカルで実行されます — データが追加のサーバーを経由することは一切ありません。
- ヘルパーはCanGoalアプリと同じCore Dataストア(App Groupコンテナ経由)を読み書きし、App Sandboxによって保護されています。
- MCP接続自体は個人データを収集または送信しません。CanGoalのデータベースに既に存在するデータにのみアクセスします。
- CloudKit同期により、MCPヘルパーとGUI間のデータは、デバイス間と同様に常に一貫性が保たれます。
トラブルシューティング
- AIクライアントがツールを認識しない — コマンドパスが
--mcpを使う古いメインバイナリを指している。解決策:Contents/Helpers/CanGoalMCP.app/...以下のヘルパーパスを使用し、--mcp引数を削除してください。 - ツールが
isError: trueを返す — ビジネスエラー(リソース未検出 / 状態競合 / パラメータ不正)。解決策:content[0].textのメッセージを確認してください。 - ツールがJSON-RPCエラー
-32602を返す — ツール名の誤りまたはスキーマ不一致。解決策:tools/listを実行してスキーマを再確認してください。 - ヘルパーが空のデータを読み取る — Core Dataストアの不一致。解決策: アプリがインストールされてデータが存在することを確認してください。ヘルパーは同じストアを共有します。
注意事項
- MCPはmacOS専用です — iOSアプリはデスクトップのAIクライアントから起動できません。
- サポートされるトランスポートはstdioのみです(HTTP / WebSocket / SSEには対応していません)。
- 1つのヘルパープロセスが一度に1つのクライアントセッションに対応します。
resources/*およびprompts/*MCPメソッドには対応していません。tools/*のみ対応しています。
