0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPサーバーでNotion・GitHub・Slackを横断接続 — AI駆動の開発基盤を1日で構築する手順書

0
Posted at

MCPサーバーを「1つのツール専用」で使っていませんか?複数サービスを横断接続した瞬間、Claude Codeは単なるコード生成ツールから**「開発プロセス全体を動かすエージェント」**に進化します。

この記事でわかること

結論:GitHub・Notion・SlackのMCPサーバーを同時接続すると、「Issue起票 → 実装 → PR作成 → Slack通知 → Notionタスク更新」の一連のワークフローをClaude Codeが自律的に実行できるようになります。 構築にかかる時間は、各サービスのAPIトークンが揃っていれば約1日です。

この記事では、以下を実際の設定ファイル付きで解説します。

  • 3つのMCPサーバーのセットアップ手順と権限設計
  • Claude Codeからの統合呼び出し方法(CLAUDE.mdの設計含む)
  • 本番運用で踏むハマりどころと対策

環境・前提条件

項目 バージョン / 要件
Claude Code 最新版(CLIでインストール済み)
Node.js v18以上
GitHub Personal Access Token(Fine-grained推奨)
Notion Internal Integration Token
Slack Bot Token(xoxb-)+ App Manifest
OS macOS / Linux(Windowsの場合はWSL2推奨)

1. 完成イメージ — 全自動開発ワークフロー

まず、最終的にどんな体験になるのかを示します。

開発者が一言指示するだけで、4つのサービスを横断した処理が一気に完了します。

2. MCPサーバーの基本アーキテクチャとマルチツール接続の仕組み

MCPとは

MCP(Model Context Protocol)は、AIモデルが外部ツールやデータソースと安全に通信するための標準プロトコルです。各MCPサーバーは「どんな操作ができるか(ツール定義)」をClaude Codeに公開し、Claude Codeが必要に応じて呼び出します。

マルチ接続のアーキテクチャ

重要なポイントは以下の3つです。

  • 各MCPサーバーは独立したプロセスとして動作し、Claude Codeがstdio経由で通信する
  • Claude Codeは複数のMCPサーバーを同時に認識でき、タスクに応じて適切なサーバーのツールを呼び分ける
  • 認証情報は各MCPサーバーが個別に管理するため、Claude Code本体にAPIキーを渡す必要がない

3. ステップ1:GitHub MCP Serverのセットアップ

3-1. トークンの発行

GitHub > Settings > Developer settings > Fine-grained personal access tokens で発行します。

推奨スコープ(最小権限の原則):

スコープ 用途
contents: read/write ブランチ作成・コードプッシュ
pull_requests: read/write PR作成・更新
issues: read/write Issue読み取り・コメント
metadata: read リポジトリ情報の取得

⚠️ Classic tokenでrepoスコープを全開放するのは避けてください。Fine-grainedでリポジトリ単位に絞るのがベストプラクティスです。

3-2. Claude Codeへの登録

claude mcp add github-mcp \
  --env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxx \
  -- npx -y @modelcontextprotocol/server-github

3-3. 動作確認

Claude Codeを起動して以下のように聞いてみます。

> リポジトリ my-org/my-app のオープンなIssue一覧を取得して

Issue一覧が返ってくれば接続成功です。

4. ステップ2:Notion MCP Serverでタスク管理DBと双方向同期する

4-1. Notion Internal Integrationの作成

  1. Notion Integrations で「New integration」を作成
  2. 「Content Capabilities」で Read content / Update content / Insert content を有効化
  3. 対象のNotionデータベースページで「コネクト」からこのIntegrationを追加

4-2. データベース設計のポイント

Claude Codeと連携するデータベースは、以下のプロパティを持たせると便利です。

プロパティ名 タイプ 用途
Title タイトル タスク名
Status セレクト Todo / In Progress / In Review / Done
GitHub Issue URL GitHub Issueへのリンク
GitHub PR URL PRへのリンク
Assignee ピープル 担当者

4-3. Claude Codeへの登録

claude mcp add notion-mcp \
  --env OPENAPI_MCP_HEADERS='{"Authorization":"Bearer ntn_xxxxxxxxxxxx","Notion-Version":"2022-06-28"}' \
  -- npx -y @notionhq/notion-mcp-server

4-4. 動作確認

> Notionのタスクデータベースから、ステータスが「Todo」のタスク一覧を取得して

タスク一覧が返ってくれば成功です。データベースIDは、Claude Codeが検索ツールで自動的に特定してくれる場合もありますが、CLAUDE.mdに明記しておくとより確実です。

5. ステップ3:Slack MCP Serverで通知・承認フローを組み込む

5-1. Slack Appの作成

Slack API で新規アプリを作成し、以下のBot Token Scopesを付与します。

スコープ 用途
chat:write メッセージ送信
channels:read チャンネル一覧取得
reactions:write リアクション追加(承認フロー用)
users:read ユーザー情報取得

5-2. Claude Codeへの登録

claude mcp add slack-mcp \
  --env SLACK_BOT_TOKEN=xoxb-xxxxxxxxxxxx \
  --env SLACK_TEAM_ID=T0XXXXXXX \
  -- npx -y @anthropic/mcp-server-slack

5-3. 動作確認

> Slackの #dev-notifications チャンネルに「テスト通知です」と送信して

メッセージが届けば接続完了です。

6. Claude Codeからの統合呼び出し — CLAUDE.mdの設計

すべてのMCPサーバーが接続できたら、CLAUDE.mdで統合的なワークフローを定義します。これがマルチMCP運用の肝です。

6-1. 設定ファイルの確認

.claude/settings.json(またはプロジェクト直下の.mcp.json)に3つのMCPサーバーが登録されていることを確認します。

{
  "mcpServers": {
    "github-mcp": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    },
    "notion-mcp": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer ntn_xxxxxxxxxxxx\",\"Notion-Version\":\"2022-06-28\"}"
      }
    },
    "slack-mcp": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx",
        "SLACK_TEAM_ID": "T0XXXXXXX"
      }
    }
  }
}

6-2. CLAUDE.mdのプロンプト設計

プロジェクトルートにCLAUDE.mdを配置し、ワークフローのルールを記述します。

# 開発ワークフロー規約

## MCP連携ルール

### GitHub Issue実装フロー
1. 指定されたGitHub Issueの内容を `github-mcp` で取得する
2. Issue番号に基づいてブランチ `feature/issue-{番号}` を作成する
3. 実装完了後、テストを実行してパスすることを確認する
4. PRを作成する(タイトルに `closes #{番号}` を含める)
5. `notion-mcp` でNotionタスクDBの該当タスクのステータスを「In Review」に更新し、PRリンクを記録する
6. `slack-mcp` で #dev-notifications チャンネルにPR作成を通知する

### Notionデータベース情報
- タスクDB ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- ステータス遷移: Todo → In Progress → In Review → Done

### Slack通知フォーマット
- チャンネル: #dev-notifications
- 形式: 「🚀 PR作成: {PRタイトル} - {PR URL}(Issue #{番号})」

6-3. 実際の呼び出し例

> Issue #42 の内容を確認して、実装からPR作成、Slack通知、Notion更新まで一気にやって

CLAUDE.mdにフローが定義されているため、Claude Codeはこの一言で以下を自律的に実行します。

7. トラブルシューティングと本番運用Tips

よくあるエラーと対処法

症状 原因 対処
MCP server connection failed npxのキャッシュ問題 npx clear-npx-cache 後に再起動
GitHub APIで403 トークンのスコープ不足 Fine-grained tokenのPermissionsを確認
Notion APIで400 データベースIDの指定ミス NotionのURLからIDをコピーし直す(ハイフン除去不要)
Slack投稿でchannel_not_found Botがチャンネルに未参加 Slackチャンネルで /invite @bot名 を実行

レート制限への対策

  • GitHub: 認証済みで5,000リクエスト/時。通常の開発フローなら問題ないが、大量Issue一括処理時は注意
  • Notion: 3リクエスト/秒の制限あり。バッチ更新時は CLAUDE.md に「Notion操作は1件ずつ間隔を空けて」と指示を入れる
  • Slack: Tier制に基づく制限。chat:writeは1秒1メッセージ程度が安全ライン

認証トークンのローテーション

本番運用では、トークンの定期ローテーションが必須です。

# トークン更新時のコマンド例
claude mcp remove github-mcp
claude mcp add github-mcp \
  --env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_新しいトークン \
  -- npx -y @modelcontextprotocol/server-github

推奨運用:

  • GitHub Fine-grained tokenは有効期限を90日以下に設定
  • Notion / Slackトークンはローテーション機能がないため、定期的にregenerateして差し替え
  • 環境変数で管理し、.envファイルは.gitignoreに追加

ログ監視

MCPサーバーの通信ログは以下で確認できます。

# macOS
ls ~/Library/Application\ Support/claude/logs/

# Linux
ls ~/.config/claude/logs/

エラー発生時はこのログで、どのMCPサーバーのどのツール呼び出しが失敗したかを特定できます。

まとめ

  • MCPサーバーの複数接続により、Claude Codeは「コード生成ツール」から「開発ワークフロー全体を駆動するエージェント」に進化する。 GitHub・Notion・Slackの3つを繋ぐだけで、Issue起票から通知・タスク管理まで一気通貫で自動化できます。
  • CLAUDE.mdによるワークフロー定義が成功の鍵。 各MCPサーバーの接続だけでなく、「どの順番で何をするか」をCLAUDE.mdに明文化することで、Claude Codeの行動精度が大幅に向上します。
  • 本番運用ではトークン管理とレート制限対策を忘れずに。 Fine-grained tokenによる最小権限の原則、定期ローテーション、ログ監視の3点を押さえれば、安定した運用が可能です。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?