mcpField
N
nushell

nushell

github.com/nushell開発1.3k77 回インストール4 日前に更新
リポジトリ

nushell について

このスキルは、構造化データを扱うシェルNushellの構文やよくある問題、参照ファイルを説明します。Bashとの使い分けや、状態を保持するMCP REPLの利用方法も案内します。

主な機能

  1. 01構造化データのパイプライン
  2. 02構文とよくあるエラーの説明
  3. 03データ形式の検索と変換
  4. 04NushellとBashの使い分け
  5. 05状態を保持するMCP REPLの利用

活用シーン

  1. 01CLIツールが出力するJSONの検索
  2. 02表形式または構造化データの調査
  3. 03MCP経由で状態を保ったNushellコードの実行

MCP 対応

このスキルは、`evaluate`、`list_commands`、`command_help`を備えたNushell MCPサーバーを説明します。`evaluate`は永続REPLでコードを実行し、変数や履歴を呼び出し間で保持します。

インストール

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

$npx skills add https://github.com/nushell/nu_scripts --skill nushell

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
advanced.md
bash-equivalents.md
commands.md
data-analysis.md
http-transport.md
types-and-syntax.md

詳細

Nushell の使用

Nushell は構造化データを扱うシェルです。コマンドはテキストではなく、パイプラインを通じてテーブル、レコード、リストを渡します。

2 つの実行方法:

  • MCP サーバー:mcp__nushell__evaluate - 永続的な REPL(変数は呼び出し間で保持されます)
  • Bash ツール:nu -c '<code>' - 1 回限りの実行(外側のラッパーにはシングルクォートを使用します)

重要なルール

MCP の stdio モードでは、裸の print を絶対に使用しないでください。 出力が失われ(空の [] が返され)ます。標準エラーには print -e "msg" を使用するか、値をそのまま返してください(暗黙の戻り値)。

文字列補間では波括弧ではなく、丸括弧を使用します:

# WRONG:  $"hello {$name}"
# CORRECT: $"hello ($name)"
$"($env.HOME)/docs"    $"2 + 2 = (2 + 2)"    $"files: (ls | length)"

注意点:$"(some text)" はエラーになります。丸括弧はコードとして評価されます。丸括弧を文字として使う場合はエスケープします:\(text\)。

Bash 構文は使えません: && ではなく cmd1; cmd2、2>&1 ではなく o+e>|、$VAR ではなく $env.VAR、$(cmd) ではなく (cmd) を使用します。

よくある間違い

間違い修正方法
$"hello {$name}"$"hello ($name)"
MCP で print "msg"print -e "msg" または値を返す
command 2>&1command o+e>| ...
$HOME/path$env.HOME または $"($env.HOME)/path"
export FOO=bar$env.FOO = "bar"
クロージャー内での変更reduce、generate、または each を使用する
ANSI に \u001b を使用削除するには ansi strip、ESC には char --unicode '1b' を使用する
where ($in.a > 1) and ($in.b > 2)2 つ目の $in が bool に再バインドされます。裸の列名を使用します:where a > 1 and b > 2
where not ($in.col | cmd)not によって $in が壊れます。where ($in.col | cmd) == false を使用します
where col | cmd(丸括弧なし)2 つのパイプラインステージとして解析されます。where ($in.col | cmd) を使用します

Nushell を使用する場面

次の場合は常に Nushell を優先してください:

  • あらゆる構造化データ(JSON、YAML、TOML、CSV、Parquet、SQLite) - すべての形式を統一して扱えます
  • --json フラグを持つ CLI ツール - JSON 出力を直接 Nushell にパイプしてクエリできます(例:^gh pr list --json title,state | from json)
  • アドホックなデータ分析と調査 - Python のセットアップよりも迅速です
  • 初期段階のデータサイエンス/分析 - ヒストグラム、表形式の出力、基本的な集計
  • 大規模データセット向けの Polars プラグイン - Python のオーバーヘッドなしで DataFrame を扱えます

Bash を使用するのは次の場合に限ります: Bash 固有のツールを使う場合、MCP を使用できない場合、または Bash 構文との統合が必要な場合。

参照ファイル

必要な内容に応じて、関連するファイルを読んでください:

ファイル次の内容が必要な場合に読みます...
commands.mdコマンドリファレンスの表(フィルター、文字列、変換、ファイルシステム、数学、日付)
types-and-syntax.md型システム、文字列型、演算子、変数、制御フロー、セルパス
data-analysis.md形式変換、HTTP、Polars、SQLite、集計パターン
advanced.mdカスタムコマンド、モジュール、エラー処理、ジョブ、外部コマンド、環境設定
bash-equivalents.mdBash から Nushell への完全な変換表
http-transport.mdstdio の代わりに HTTP トランスポートを使用する場合の違い

MCP サーバーの簡単なメモ

  • mcp__nushell__evaluate - コードを実行、mcp__nushell__list_commands - コマンドを検索、mcp__nushell__command_help - ヘルプ
  • 状態は呼び出し間で保持されます。$history に以前の結果が保存されます($history.0 などでアクセスできます)
  • 出力が大きい場合は | to text または | to json を使用します。色を除去するには ansi strip を使用します。

コメント