「n8nでClaude APIを呼び出したい。でも公式ノードだと細かい設定ができない…」
これは、n8nでAIエージェントを構築しようとした開発者が最初にぶつかる壁です。n8nにはAnthropicの公式ノードもありますが、リクエストヘッダーのカスタマイズ、ストリーミングレスポンス、ツール呼び出し(Tool Use)など、細かい制御が必要な場面ではHTTP Requestノードを直接使う方が柔軟です。
この記事では、n8nのHTTP RequestノードでClaude Messages APIを直接呼び出し、本格的なAIエージェントワークフローを構築する方法を、コピペ可能なJSON設定・コード例つきで解説します。既存のn8nノーコード自動化ガイドと合わせて読むと、さらに理解が深まります。
5分で試せる:Claude APIへのはじめてのHTTP Request
まずはシンプルな動作確認から始めましょう。以下のHTTP Requestノード設定でClaude APIを呼び出せます。
n8nのワークフローエディタでHTTP Requestノードを追加し、以下のように設定します。
// HTTP Requestノード設定(n8n UI)
{
"method": "POST",
"url": "https://api.anthropic.com/v1/messages",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{ "name": "x-api-key", "value": "{{ $credentials.anthropicApiKey }}" },
{ "name": "anthropic-version", "value": "2023-06-01" },
{ "name": "content-type", "value": "application/json" }
]
},
"sendBody": true,
"bodyContentType": "json",
"jsonBody": {
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "{{ $json.userInput }}"
}
]
}
}
動作環境: n8n v1.80+(セルフホスト / Cloud どちらも可)
注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
レスポンスは $json.content[0].text でテキストを取り出せます。
Claude Credentials(認証)の正しい設定方法
APIキーをワークフロー内にハードコードするのは絶対NGです。n8nのCredentials Managerを使って安全に管理しましょう。
設定手順は次のとおりです。
# n8n Credentials Manager での設定(UI操作)
# 1. Settings > Credentials > Add Credential
# 2. "Header Auth" を選択
# 3. 以下を入力:
# Name: Anthropic API Key
# Header Name: x-api-key
# Header Value: sk-ant-api03-xxxx(Anthropic ConsoleのAPI Key)
# または環境変数で管理する場合(セルフホスト)
# .env ファイルに追加:
ANTHROPIC_API_KEY=sk-ant-api03-xxxx
# n8n ワークフロー内での参照:
# {{ $env.ANTHROPIC_API_KEY }}
n8nの公式ドキュメント(Anthropic credentials)では、Anthropic専用のCredentialタイプも用意されています。HTTP Requestノードで使う場合は「Header Auth」が最も汎用的です。
n8n × Claude APIの構成パターン3選
実際にどのような構成でAIエージェントを組むか、用途ごとの早見表を示します。
| パターン | 構成 | 適した用途 | 難易度 |
|---|---|---|---|
| シンプル呼び出し | Webhook → HTTP Request(Claude)→ Respond | チャットボット、要約 | ★☆☆ |
| 会話履歴付き | Webhook → Code(履歴管理)→ HTTP Request → DB保存 | 複数ターン対話 | ★★☆ |
| Tool Use(関数呼び出し) | HTTP Request → Code(ツール実行)→ HTTP Request(結果返却)→ ループ | データ検索、外部API連携 | ★★★ |
会話履歴を保持したマルチターン構成の実装
実際の業務ではシングルターンだけでなく、会話の流れを保持しながらClaude APIを呼び出すケースが多くなります。以下のCodeノード設定で履歴を管理できます。
// n8n Codeノード(JavaScript): 会話履歴の構築
// 動作環境: n8n v1.80+, Node.js 20+
const userMessage = $input.first().json.userInput;
const sessionId = $input.first().json.sessionId;
// データベース(例: PostgreSQL)から過去の会話を取得
// この例では静的配列で代替(実運用ではDB参照に変更すること)
const history = $node["DB_Load"].json.messages || [];
// 新しいメッセージを追加
const messages = [
...history,
{ role: "user", content: userMessage }
];
// Claude API用のペイロードを構築
return [{
json: {
model: "claude-sonnet-4-6",
max_tokens: 2048,
system: "あなたは丁寧なカスタマーサポートエージェントです。過去の会話履歴を踏まえて回答してください。",
messages: messages
}
}];
// 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
ポイント: messages 配列に role: "user" と role: "assistant" を交互に並べることで、Claudeは会話の流れを理解します。最大コンテキスト長(claude-sonnet-4-6は200Kトークン)に注意しながら、古い履歴は適宜トリミングしましょう。
Tool Use(関数呼び出し)でClaude APIを外部ツールに接続する
Claude APIのTool Use機能を使うと、外部APIやデータベース検索をClaude自身が判断・呼び出せるようになります。これがAIエージェントの核心です。
n8nでのTool Use実装は「Claude呼び出し → ツール判定 → ツール実行 → 結果返却 → Claude再呼び出し」のループになります。
// HTTP Requestノード: Tool Useを有効にしたClaude API呼び出し
// 動作環境: Claude API anthropic-version: 2023-06-01
{
"model": "claude-sonnet-4-6",
"max_tokens": 4096,
"tools": [
{
"name": "search_customer",
"description": "顧客IDから顧客情報を検索します",
"input_schema": {
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"description": "検索する顧客のID(例: CUST-12345)"
}
},
"required": ["customer_id"]
}
}
],
"messages": [
{
"role": "user",
"content": "顧客CUST-98765の注文履歴を確認して"
}
]
}
Claudeが tool_use を返したら、n8nのSwitchノードで分岐して該当ツール(CRMや在庫管理API)を実行し、結果を tool_result としてClaude APIに返します。
// n8n Codeノード: tool_result を組み立てる
// 動作環境: n8n v1.80+
const claudeResponse = $input.first().json;
const toolUseBlock = claudeResponse.content.find(b => b.type === "tool_use");
// 外部ツールの実行結果(前のノードで取得済み)
const toolResult = $node["CRM_Search"].json;
// Claudeに返すメッセージを構築
return [{
json: {
messages: [
// 既存の会話履歴
{ role: "user", content: "顧客CUST-98765の注文履歴を確認して" },
// Claudeのtool_use応答
{ role: "assistant", content: claudeResponse.content },
// ツール実行結果
{
role: "user",
content: [
{
type: "tool_result",
tool_use_id: toolUseBlock.id,
content: JSON.stringify(toolResult)
}
]
}
]
}
}];
// 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
【要注意】よくある失敗パターンと回避策
失敗1: anthropic-versionヘッダーを忘れる
❌ anthropic-version ヘッダーなしでリクエストを送る
⭕ "anthropic-version": "2023-06-01" を必ずヘッダーに含める
なぜ重要か: このヘッダーがないとAPIは400エラーを返します。n8nのHeaderParametersに忘れずに設定してください。
失敗2: APIキーをワークフロー内にハードコードする
❌ jsonBodyに "api_key": "sk-ant-xxx" と直書き
⭕ n8nのCredentials ManagerまたはEnvironment Variablesで管理
なぜ重要か: ワークフローのエクスポート・共有時にキーが漏洩します。必ず外部管理にしてください。
失敗3: max_tokensの設定が小さすぎる
❌ "max_tokens": 100 と設定して応答が途中で切れる
⭕ 用途に応じて1024〜4096(長文生成は8192以上)に設定
なぜ重要か: stop_reason: "max_tokens" が返ってきたら設定値を増やしましょう。
失敗4: Tool Useのループを正しく組まない
❌ Claudeが tool_use を返した後、ループせずに終了させる
⭕ stop_reason: "tool_use" を検出したらツールを実行→結果をClaude APIに返す→stop_reason: "end_turn" まで繰り返す
なぜ重要か: Tool Useは1往復で終わらないケースがあります。n8nのLoopOverItemsノードを使ってループを実装してください。
セキュリティと運用ルール
n8n × Claude APIを本番運用する際の必須チェックリストです。
| 項目 | 対策 |
|---|---|
| APIキー管理 | n8n Credentials Manager または Vault(HashiCorp等)を使用 |
| レート制限 | Claude APIのレート制限(Tier別)に合わせてn8nのThrottleノードを設定 |
| コスト管理 | Anthropic Consoleで月次上限アラートを設定(Usage > Limits) |
| プロンプトインジェクション対策 | ユーザー入力をsystem promptと分離し、messagesのuserロールのみに格納 |
| ログ | n8nの実行ログに個人情報を含めないよう、機密フィールドをマスクする |
参考・出典
- Anthropic Messages API公式ドキュメント — Anthropic(参照日: 2026-04-09)
- n8n Anthropic Credentials公式ドキュメント — n8n(参照日: 2026-04-09)
- n8n HTTP Request Credentials — n8n(参照日: 2026-04-09)
- Claude Tool Use(Function Calling)公式ガイド — Anthropic(参照日: 2026-04-09)
まとめ:今日から始める3つのアクション
- 今日やること: n8nにHTTP Requestノードを追加してClaude APIへのシンプルな呼び出しを動かす
- 今週中: Credentials Managerでキー管理を安全化し、会話履歴付きのマルチターン構成を組む
- 今月中: Tool Useを実装して外部API(CRM・在庫管理・検索等)と連携したAIエージェントを本番稼働させる
あわせて読みたい:
- AIエージェント構築完全ガイド — 設計パターンと構築アプローチの全体像
- n8n×AIエージェント|ノーコード自動化の完全ガイド — n8nの基本とAIエージェント構築の基礎
AI研修・導入支援のご相談は 株式会社Uravation(お問い合わせフォーム) からどうぞ。