mcpField
N
n8n-code-python

n8n-code-python

github.com/sickn33開発49.2k203 回インストール今日更新
リポジトリ

n8n-code-python について

n8n Code ノードで範囲を限定したデータ変換に Python を使うためのガイドです。ネイティブランタイムの仕様やバージョン上の注意、安全な運用を扱い、ワークフローやランナーは含みません。

主な機能

  1. 01全アイテム・単一アイテムの処理例
  2. 02ネイティブ Python ランタイムの注意点
  3. 03インポートと許可リストの制約
  4. 04入力と実行の安全に関する指針
  5. 05アイテム連携と出力の制約

活用シーン

  1. 01n8n Code ノードでのデータ変換
  2. 02ネイティブ Python ランタイムへのコード移行
  3. 03インポートとランナーの制約確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill n8n-code-python

インストール後、Claude Code で/n8n-code-pythonを入力して読み込まれたか確認します。

同梱ファイルreferences/detailed-guide.md

詳細

Python Code Node(ネイティブ)

使用する場面

ネイティブノードや式では不十分な場合に、n8n Code ノードで範囲を限定した Python 変換に使用します。まず、インストールされている n8n のバージョンとタスクランナーを確認してください。

ランタイムの仕様

n8n 2 では従来の Pyodide ランタイムが削除されました。ネイティブ Python は、全アイテムモードでは _items、アイテムごとのモードでは _item を使用します。従来の _input、_json、_node、_now ヘルパーは使用できません。セルフホスト環境でのインポートは、インストール済みのランナーパッケージと明示的な許可リストに依存します。Cloud 環境では、標準モジュールも含めてインポートできない場合があります。JavaScript のインポートも制限されているため、言語を切り替えても、ファイルシステム、ネットワーク、パッケージに無制限にアクセスできるわけではありません。

例

インポートを使わない全アイテムモード:

return [
    {"json": {"id": item["json"].get("id"), "processed": True},
     "pairedItem": {"item": index}}
    for index, item in enumerate(_items)
    if item["json"].get("active")
]

アイテムごとのモード:

return {"json": {**_item["json"], "name_upper": (_item["json"].get("name") or "").upper()}}

文字列操作の前に、入力の型を実際に確認してください。リモート呼び出しには、管理対象の認証情報を使う HTTP Request ノードを使用し、許可された接続先のみを利用するよう徹底してください。ペイロードやトークンをログに記録したり、Webhook ユーザーから提供されたコードを実行したりしないでください。アイテム数、入力サイズ、実行時間に上限を設けてください。また、メッセージの送信、支出、外部システムの変更を行うワークフローを有効化する前に、非アクティブなテスト用ワークフローで変更を準備してください。

詳細ガイド

変換パターンと移行時の注意点については、ガイドをお読みください。参照先の上流の補助ファイルは同梱されていません。

制限事項

ワークフローもランナーも含まれていません。インポートの可否と出力の正規化は、デプロイ先のバージョンで確認する必要があります。アイテムのリンク、バイナリデータ、集約には明示的な処理が必要です。これらの例では、ランタイムテストは確立されていません。

主なランタイムのリファレンス:n8n Code node のドキュメントソース。

コメント