/ ディレクトリ / プレイグラウンド / llm-context.py
● コミュニティ cyberchitta ⚡ 即起動

llm-context.py

作者 cyberchitta · cyberchitta/llm-context.py

コードベースの必要な部分だけをLLMに共有できます。ルール駆動のファイル選択、アウトライン生成、オンデマンド取得により、「全部貼り付け」から解放されます。

llm-context.pyは、ルールベースのコード共有ツールで、MCPまたはクリップボード経由で出力を提供します。リポジトリ全体をアップロードする代わりに、タスクごとにコンポーザブルなルール(filter、instruction、style、excerpt)を定義し、焦点を絞ったコンテキストを送信できます。MCP版では、LLMが会話中に追加ファイルをオンデマンドで取得できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

llm-context-py.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "llm-context-py": {
      "command": "uvx",
      "args": [
        "llm-context.py"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "llm-context-py": {
      "command": "uvx",
      "args": [
        "llm-context.py"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "llm-context-py": {
      "command": "uvx",
      "args": [
        "llm-context.py"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "llm-context-py": {
      "command": "uvx",
      "args": [
        "llm-context.py"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "llm-context-py",
      "command": "uvx",
      "args": [
        "llm-context.py"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "llm-context-py": {
      "command": {
        "path": "uvx",
        "args": [
          "llm-context.py"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add llm-context-py -- uvx llm-context.py

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: llm-context.py

LLMに焦点を絞ったコードレビュー用コンテキストを送信する

👤 3000行をコピペするのに疲れた開発者 ⏱ ~15 min intermediate

使うタイミング: 「認証モジュールをレビューして」と依頼したいが、リポジトリ全体をコンテキストに入れたくない場合。

前提条件
  • llm-context.pyがインストール済み — uv tool install 'llm-context>=0.6.0'
  • リポジトリで初期化済み — リポジトリルートでlc-initを実行
フロー
  1. 認証用のfilterルールを作成
    Create an lc filter rule 'flt-auth' that includes src/auth/** and src/middleware/auth*.ts.✓ コピーしました
    → .lc/配下にルールファイルが作成される
  2. ルールが選択するファイルをプレビュー
    Run lc_preview on flt-auth — show me which files will be sent and total token count.✓ コピーしました
    → ファイル一覧とトークン数が表示される
  3. MCP経由でLLMにコンテキストを共有
    Using the flt-auth rule, review the module for security issues. If you need to see a specific file not included, ask via lc_missing.✓ コピーしました
    → 対象を絞ったファイルリクエストを含むレビュー結果

結果: コンテキストに収まり、必要に応じて追加探索も可能なコードレビュー。手動コピペは不要です。

注意点
  • ルールが狭すぎる → LLMがモジュールの呼び出し元を把握できない — 隣接モジュールのインターフェース/型定義を含め、残りはアウトラインで補完する
  • ルールが広すぎる → トークン予算を超過 — 広めに始めてlc_previewで確認し、クライアントの上限に収まるまで絞り込む
組み合わせ: filesystem

大規模コードベースの構造マップをLLMに提供する

👤 不慣れなモノレポにオンボーディング中のエンジニア ⏱ ~20 min intermediate

使うタイミング: 10万行以上のリポジトリで、全コードではなく全体像の把握が必要な場合。

フロー
  1. アウトラインを生成
    lc_outlines for the whole repo — classes, top-level functions, exports per file. Skip bodies.✓ コピーしました
    → 数千行程度のスケルトンアウトライン
  2. 全体構成について質問
    Given the outline, where's the entry point, where's routing defined, and which files hold the data-layer abstractions?✓ コピーしました
    → アーキテクチャに関する回答
  3. 特定の領域を深掘り
    Show me the full contents of the three files that define routing via lc_missing.✓ コピーしました
    → 指定ファイルがコンテキストに展開される

結果: リポジトリ全体を貼り付けることなく、ガイド付きのコードツアーが完了します。

プロジェクトのスタイルルールを毎回のプロンプトに自動適用する

👤 独自のコーディング規約を持つチーム ⏱ ~10 min beginner

使うタイミング: 「pytestを使う、unittestは使わない」といったルールを毎回繰り返さずにClaudeに伝えたい場合。

フロー
  1. スタイルルールを作成
    Create sty-python rule: 'pytest only, type hints required, black formatting'.✓ コピーしました
    → ルールが保存される
  2. 自動適用を設定
    Use prm-default which composes flt-current + sty-python + ins-standards for every context.✓ コピーしました
    → ルールが自動適用される

結果: タスクごとの規約が手動のボイラープレートなしで適用されます。

組み合わせ: drift

組み合わせ

他のMCPと組み合わせて10倍の力を

llm-context-py + drift

driftが規約を記録し、llm-contextがタスクごとに関連ファイルとスタイルルールのみを送信する

Load drift conventions for this repo, then use lc with rule flt-auth + sty-ts to review the auth module.✓ コピーしました
llm-context-py + filesystem

レビュー後、filesystemで編集を適用する

Based on the llm-context review, use filesystem to apply the suggested edits to src/auth/.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
lc_outlines rule?: str 大規模コードベースの全体像を把握する際に使用 free (local)
lc_preview rule: str コンテキスト送信前にスコープを確認する際に使用 free
lc_missing path: str LLMが会話中にファイルをリクエストする際に呼び出す free

コストと制限

運用コスト

APIクォータ
なし
呼び出しあたりのトークン
ルールのスコープ次第 — それがこのツールの本質です
金額
無料、オープンソース
ヒント
lc_outlines/コンテキスト送信前に必ずlc_previewを実行してください。1秒のプレビューで数千トークンを節約できます。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: なし
データ送信先: コンテキストの送信先は、接続しているLLMクライアント/プロバイダーのみです

トラブルシューティング

よくあるエラーと対処法

No rules found

リポジトリルートでlc-initを実行し、.lc/のスキャフォールディングを作成してください。

確認: ls .lc/
lc_preview token count surprisingly high(トークン数が想定以上に多い)

filterが緩すぎるか、生成ファイルが含まれています。globパターンを絞り込み、ignoreパターンを追加してください。

確認: lc_preview again
MCP tool not available

MCPサーバー設定でuvx --from llm-context lc-mcpを使用してください。

確認: claude mcp list

代替案

llm-context.py 他との比較

代替案代わりに使う場面トレードオフ
repomix / ai-digestMCPツールではなく、単一ファイルへのダンプが必要な場合インタラクティブなlc_missingなし。静的なスナップショットのみ
filesystem MCP生のファイルアクセスが必要な場合ルールベースの選択やアウトライン機能なし
driftタスクごとのファイルバンドルではなく、永続的な規約の記憶が必要な場合解決する課題が根本的に異なる

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る