CanGoal ロゴ
CanGoal

あなたの目標達成をそっと支える相棒

🤖 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/* のみ対応しています。