NotionのタスクをGitHub Issueへ自動同期!Claude Code + MCPで実現してみた

b-men
2026-02-20
2026-02-20

日々のタスク管理はNotion、開発の実務はGitHub。
そう使い分けているエンジニアは多いはずです。しかし、Notionで書き出したメモや要件を、改めてGitHub Issueに書き直す作業に「二度手間だな」と感じたことはありませんか?

今回は、ClaudeのCLIツールである「Claude Code」と「MCP(Model Context Protocol)」を組み合わせることで、Notion上の未着手タスクを自動で解析し、適切なフォーマットでGitHub Issue化する仕組みを構築しました。

MCP(Model Context Protocol)とは?

今回、Claude CodeにNotionを読み取らせるためにMCPを利用しています。

ざっくり言えば、「AI(Claude)が外部ツールやデータと対話するための共通規格」のことです。これまではツールごとに専用の連携プログラムを書く必要がありましたが、MCPに対応したサーバー(今回はNotion MCPサーバー)を導入するだけで、Claude Codeから直接Notionのデータベースを検索したり、中身を読み取ったりできるようになります。

Step 1: Notion インテグレーションの作成

  1. https://www.notion.com/my-integrations にアクセスし、新しいインテグレーションを作成します。
    260202_1
  2. 「内部インテグレーションシークレット」をコピーしておきます。 ⇒ Step2で使用
    260202_2
  3. Notionで連携用のデータベースを作ります。
    以下の項目を用意しました
     ・タイトル:課題の概要
     ・ステータス : 課題のステータス(未着手、進行中、完了など)
     ・Github-URL : 作成したIssueのURL


    このデータベースの右上の「・・・」→「接続」で作成したインテグレーションを設定します。
    260202_3-1

  4. 次に作成したデータベースのデータソースIDを取得する ⇒ Step3で使用
    「データベースの設定」⇒「データソースを管理する」⇒「対象のDB名の「・・・」」⇒「データソースIDをコピー」

    260202_4-1

    260202_5

Step 2: MCPサーバーの設定

Claude CodeにNotion MCPサーバーを追加します。
これはMCPサーバーをClaude Codeに認識させるための設定です。
※ 環境によって設定ファイルの位置は異なりますが、一般的にWindowsでClaudeCodeの場合は ~/.claude.json 等に以下のように記述します。

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "NOTION_TOKEN": "Step1-2で取得したAPIキー"
      }
    }
  }
}

記載して、ClaudeCode再起動後「/mcp」を入力。
以下のように出力されればMCPサーバーに接続している状態です。
260202_6

Step 3. CLAUDE.mdへの組み込み

Step1-4で取得したデータソースIDをClaudeCodeに渡してあげれば、データベースの中身を確認できますが、毎回長いIDを入力するのは大変なのでCLAUDE.mdに定義します。
以下のように書くことでNotionに書ききれないことをClaudeCode自身がソースを解析し、追記してくれます。

CLAUDE.mdの追記例:

## NotionからGitHubへのワークフロー
Notion上の要望をGitHub Issue化する際は、以下の情報を参照してください。

**Notion の  data_source_id**: `STEP1-4で取得したデータソースID`
**Issue作成条件**: プロパティ `ステータス` == `未着手`
**Notionの更新**:
  1. プロパティ `Github-URL` に作成したIssueのURLを書き込む
  2. プロパティ `ステータス` を `進行中` に更新する

**Issue 記載ルール**:
Notionのメモ書きをGithub Issueに変換する際は、必ず以下のセクションを含めて再構成してください。
1. **概要**: 何が問題/要望か
2. **背景/目的**: なぜこれが必要か
3. **技術的な考慮事項**: フロントエンドへの影響範囲
4. **完了条件**: 何をもってCloseとするか

4. 実行フロー(Claude Codeへの指示)

準備ができたら、ターミナルで以下のコマンドを打つだけ。

プロンプト例:

Notionの「未着手」ステータスのタスクをIssue化して。

よくあるエラーとしてプロンプトを投げた後に以下のようなエラーが発生する場合があります。

その場合は~/.claude.jsonに設定した項目名やAPIキーが間違ってる可能性がありますので、
もう一度合っているかどうか確認してみてください。

実行した結果は以下の通りとなりました。

■GitHub-Issueに出力した結果
260202_8
■管理表(Issue出力後)
ステータスとURLが更新されています。
260202_9

最後に

MCPの登場によってAIが私たちの使い慣れたツール(Notion)と開発環境(GitHub)の架け橋になってくれるようになりました。
単に「同期する」だけでなく、Claude Codeが文脈を汲み取ってIssueの構成を整えてくれるのがこのフローの強力な点です。

設定自体は数分で終わるので、ぜひ手元のプロジェクトで試してみてください。