mcpField
I
i18n-codelens-mcp

i18n-codelens-mcp

ローカル
github.com/hepter開発ツール08 週間前に更新

i18n-codelens-mcp について

i18n-codelens-mcpは、翻訳JSONファイルを調査、監査、編集するためのエージェント向けMCPサーバーです。結果を簡潔にし、書き込みを制御することで、ファイル全体をLLMのコンテキストに読み込まずに多様なロケール構成を扱えます。

主な機能

  1. 01ロケールのキーと値を調査
  2. 02不足・未使用・プレースホルダーを監査
  3. 03ソース内のキー参照を検索
  4. 04キーの安全な追加・変更・削除
  5. 05ロケールリソースの整形

活用シーン

  1. 01ロケールごとの翻訳漏れを発見
  2. 02整理前に未使用キーを特定
  3. 03競合を上書きせず翻訳を追加
  4. 04ソースファイルで使われるキーを確認

MCP 対応

ロケールJSONリソースの調査、監査、編集に使う10種類のツールとプロンプトをMCPクライアントに公開します。stdio接続に対応し、既定ではワークスペースを設定済みのプロジェクトルート内に制限します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"hepter-i18n-codelens": {
"command": "npx",
"args": [
"-y",
"i18n-codelens-mcp"
],
"env": {
"WORKSPACE_ROOT": "<WORKSPACE_ROOT>",
"I18N_GLOB": "<I18N_GLOB>",
"I18N_CODE_GLOB": "<I18N_CODE_GLOB>"
}
}
}
}
起動コマンドnpx -y i18n-codelens-mcp
設定が必要な環境変数
WORKSPACE_ROOTAbsolute path of the project whose locale files should be managed. Defaults to CLAUDE_PROJECT_DIR or the working directory.
I18N_GLOBGlob for locale JSON files (default **/locales/**/*.json).
I18N_CODE_GLOBGlob for source files scanned for t("key") references (default **/*.{ts,tsx,js,jsx}).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmi18n-codelens-mcp2.0.0

ツール

10

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
workspaceDirstringいいえ操作対象となるワークスペースルート配下のサブディレクトリ。通常は省略します。

詳細

i18n-codelens-mcp

i18n 翻訳ファイル用の Model Context Protocol(MCP)サーバーです。AI エージェント(Claude Code、Cursor、Antigravity、GitHub Copilot、Codex、Gemini CLI、その他の MCP クライアント)が、ロケールファイル全体をモデルコンテキストに読み込むことなく、ロケール JSON ファイルを調査、監査し、安全に編集できます。

  • コンパクトな設計。 10 個のツール、1 行の JSON 結果、入力のエコーなし、どこでも limit/includeValues を使用できます。一般的な読み取りで消費するトークン数は 50~200 です。
  • 設計による安全性。 ロケールファイルのキーセットを減らす書き込み方法はありません。フラット形式とネスト形式が混在するファイルは形式を変換せず、そのまま編集されます。アップサートでは上書きせず、競合を報告します。
  • 最新の MCP。 TypeScript SDK v2 を基盤としており、プロトコルリビジョン 2026-07-28 および 2025 年のリビジョン、サーバー指示、プロンプト(スラッシュコマンド)、キャッシュヒント、破壊的なツールに対するエリシテーションベースの確認に対応しています。
  • あらゆるレイアウトに対応。 locales/en.json、locales/en-US.json、messages.en.json、i18next 形式の locales/en/common.json(名前空間ファイル。キーは common:nav.home)に対応します。

このパッケージは、i18n CodeLens VS Code extension の MCP バックエンドでもあります。

要件

  • Node.js 20 以降
  • JSON ファイル形式のロケールリソース
  • stdio サーバーに対応した MCP クライアント

インストール

npx -y i18n-codelens-mcp
# or
npm install -g i18n-codelens-mcp

クライアントの設定

以下の各コマンドはすべて、npx -y i18n-codelens-mcp を実行する i18n-codelens という名前の stdio サーバーを登録します。クライアントを選び、1 行のコマンドを実行すれば完了です。

サーバーには、作業対象のプロジェクトを知らせる必要があります。ほとんどのクライアントはプロジェクトディレクトリでサーバーを起動し、Claude Code はプロジェクトルートを明示的に渡すため、それ以外の設定は不要です。クライアントが別の場所からサーバーを起動する場合は、たとえば -e WORKSPACE_ROOT=/absolute/path/to/project のように、クライアントの env フラグを使ってプロジェクトパスを追加してください。

Windows PowerShell: PowerShell が CLI に渡る前に単独の -- を取り除いてしまい、unknown option '-y' と表示されることがあります。その場合は区切り文字を '--' と引用符で囲むか、cmd、Git Bash、または WSL からコマンドを実行してください。

Claude Code
# for the whole team: writes .mcp.json in the repo
claude mcp add --scope project i18n-codelens -- npx -y i18n-codelens-mcp

# just for you, in every project
claude mcp add --scope user i18n-codelens -- npx -y i18n-codelens-mcp

Claude Code は stdio サーバーに CLAUDE_PROJECT_DIR を設定するため、サーバーは常に適切なプロジェクトを見つけられます。ツール検索機能では MCP ツールの読み込みが遅延されますが、i18n_upsert_translations と i18n_get_translations には anthropic/alwaysLoad が指定されているため、日常的に使う 2 つのツールは検索なしで利用できます。プロンプトは /i18n-codelens:audit、/i18n-codelens:add-key、/i18n-codelens:translate-missing として表示されます。

手動で設定する

プロジェクトスコープの設定は、リポジトリのルートにある .mcp.json です。

{
  "mcpServers": {
    "i18n-codelens": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"]
    }
  }
}
Google Antigravity
agy mcp add i18n-codelens -- npx -y i18n-codelens-mcp

その後は agy mcp list、agy mcp disable i18n-codelens、agy mcp remove i18n-codelens で管理できます。IDE 内では /mcp を実行すると MCP マネージャーが開きます。

手動で設定する

グローバル設定は ~/.gemini/config/mcp_config.json(Windows:%USERPROFILE%\.gemini\config\mcp_config.json)、プロジェクトごとの設定は .agents/mcp_config.json です。IDE では … → MCP サーバー → MCP サーバーの管理 → 生の設定を表示 を選択します。

{
  "mcpServers": {
    "i18n-codelens": {
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "cwd": "/absolute/path/to/project",
      "env": { "WORKSPACE_ROOT": "/absolute/path/to/project" }
    }
  }
}

Antigravity では、サーバーごとに disabled: true と disabledTools: ["i18n_format_resources"] も指定できます。

Gemini CLI
gemini mcp add -s user i18n-codelens npx -y i18n-codelens-mcp

代わりに -s project を使うと、プロジェクトの設定に書き込めます。Gemini ではコマンドと引数を位置指定で渡すため、-- は不要です。

OpenAI Codex CLI
codex mcp add i18n-codelens -- npx -y i18n-codelens-mcp
手動で設定する

~/.codex/config.toml:

[mcp_servers.i18n-codelens]
command = "npx"
args = ["-y", "i18n-codelens-mcp"]
VS Code と Copilot Chat
code --add-mcp "{\"name\":\"i18n-codelens\",\"command\":\"npx\",\"args\":[\"-y\",\"i18n-codelens-mcp\"]}"

これによりユーザープロファイルに書き込まれます。コマンドパレットの MCP: サーバーの追加 からもガイド付きの手順で同じ設定を行え、ワークスペースを対象にすることもできます。

手動で設定する

リポジトリ内の .vscode/mcp.json に設定します。このファイルはコミットできます。

{
  "servers": {
    "i18n-codelens": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": { "WORKSPACE_ROOT": "${workspaceFolder}" }
    }
  }
}
OpenCode
opencode mcp add i18n-codelens -- npx -y i18n-codelens-mcp
手動で設定する

プロジェクトルートの opencode.json、または ~/.config/opencode/opencode.json に設定します。

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "i18n-codelens": {
      "type": "local",
      "command": ["npx", "-y", "i18n-codelens-mcp"],
      "enabled": true
    }
  }
}
### GitHub Copilot CLI

Copilot CLI では、シェルからではなく、セッション内でサーバーを追加します。copilot を起動してから、次のように実行します。

/mcp add

フォームに Server Name i18n-codelens、Server Type STDIO、Command npx -y i18n-codelens-mcp を入力します。以降は /mcp、/mcp show i18n-codelens、/mcp delete i18n-codelens で管理できます。

手動設定

ユーザーレベルの設定ファイルは ~/.copilot/mcp-config.json です。リポジトリで共有する場合は .github/mcp.json をコミットするか、プロジェクトのルートに未コミットの .mcp.json を配置します。

{
  "mcpServers": {
    "i18n-codelens": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": {},
      "tools": ["*"]
    }
  }
}
Cursor、Windsurf、Claude Desktop、Kiro、Cline、Roo Code

これらのクライアントにはサーバーを追加するコマンドがないため、設定ファイルを使います。形式はどのクライアントでも同じで、パスだけが異なります。

Cursor と Windsurf

プロジェクト内の .cursor/mcp.json または ~/.cursor/mcp.json を使用します。Windsurf では ~/.codeium/windsurf/mcp_config.json を使用します。

{
  "mcpServers": {
    "i18n-codelens": {
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": { "WORKSPACE_ROOT": "/absolute/path/to/project" }
    }
  }
}

設定後は、ターミナルから cursor-agent mcp list と cursor-agent mcp enable i18n-codelens で管理できます。

Claude Desktop

Settings → Developer → Edit Config を開きます。

{
  "mcpServers": {
    "i18n-codelens": {
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": { "WORKSPACE_ROOT": "/absolute/path/to/project" }
    }
  }
}
Kiro

コマンドパレットから Kiro: Open workspace MCP config (JSON) を選択して .kiro/settings/mcp.json を開くか、ユーザー設定ファイル ~/.kiro/settings/mcp.json を使用します。

{
  "mcpServers": {
    "i18n-codelens": {
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": { "WORKSPACE_ROOT": "/absolute/path/to/project" },
      "disabled": false,
      "autoApprove": ["i18n_project_info", "i18n_get_translations", "i18n_search_keys", "i18n_file_keys", "i18n_key_references", "i18n_audit"]
    }
  }
}
Zed

~/.config/zed/settings.json、またはチーム用の .zed/settings.json を使用します。Zed では MCP サーバーを context_servers と呼びます。

{
  "context_servers": {
    "i18n-codelens": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": { "WORKSPACE_ROOT": "/absolute/path/to/project" }
    }
  }
}
Cline と Roo Code

拡張機能パネル → MCP Servers → Configure MCP Servers を開きます。Cline は cline_mcp_settings.json に、Roo Code は mcp_settings.json またはプロジェクトごとの .roo/mcp.json に設定を書き込みます。

{
  "mcpServers": {
    "i18n-codelens": {
      "command": "npx",
      "args": ["-y", "i18n-codelens-mcp"],
      "env": { "WORKSPACE_ROOT": "/absolute/path/to/project" },
      "disabled": false,
      "autoApprove": []
    }
  }
}
チームでの共有

プロジェクトレベルの設定をコミットすると、グローバル設定を変更しなくても、すべてのチームメンバーとエージェントが同じサーバーを利用できます。

クライアントプロジェクトレベルのファイルコマンド
Claude Code.mcp.jsonclaude mcp add --scope project i18n-codelens -- npx -y i18n-codelens-mcp
Antigravity.agents/mcp_config.json
GitHub Copilot CLI.github/mcp.json または .mcp.json
VS Code / Copilot Chat.vscode/mcp.json
Gemini CLIプロジェクト設定gemini mcp add -s project i18n-codelens npx -y i18n-codelens-mcp
OpenCodeopencode.jsonopencode mcp add i18n-codelens -- npx -y i18n-codelens-mcp
Cursor.cursor/mcp.json
Kiro.kiro/settings/mcp.json
Zed.zed/settings.json
Roo Code.roo/mcp.json

ワークスペースのルート

解決順序:

  1. ツールごとの workspaceDir 引数(設定済みのルート内である必要があります。下記を参照)
  2. CLI の --workspaceRoot <path> / --workspace-root <path>
  3. WORKSPACE_ROOT
  4. CLAUDE_PROJECT_DIR(Claude Code が設定)
  5. 現在の作業ディレクトリ
  6. サーバーパッケージのディレクトリ

workspaceDir ツール引数で選択できるのは、設定済みのルートのサブディレクトリだけです。サーバーを I18N_ALLOW_ANY_WORKSPACE=1 を指定して起動しない限り、モデルがサーバーにディスク上の別のディレクトリを指定することはできません。

設定

変数デフォルト説明
WORKSPACE_ROOTcwdスキャンおよび編集するプロジェクトのルート
I18N_GLOB**/locales/**/*.jsonロケール JSON の glob
I18N_CODE_GLOB**/*.{ts,tsx,js,jsx}キーのスキャン対象となるソースの glob
I18N_CODE_REGEXbuilt-in名前付きグループ key を含む正規表現。デフォルトでは t("key")、T('key')、i18n.t("key")、および /** @i18n */ "key" に一致します
I18N_IGNOREnode_modules, .git, dist, build, out, coverage, .next, .turbo, .cacheglob の JSON 配列またはカンマ/セミコロン区切りリスト。.gitignore も適用されます
I18N_STRUCTUREauto書き込み形式:auto(維持)、flat、nested
I18N_INSERT_ORDERnearby新しいキーの挿入位置:nearby、append、sort
I18N_NS_SEPARATOR:{locale}/{namespace}.json レイアウトでの名前空間とキーの区切り文字
I18N_DEFAULT_NSunset名前空間を使用するプロジェクトで、名前空間なしで書き込まれたキーに適用する名前空間
I18N_ALLOW_ANY_WORKSPACEunsetworkspaceDir が設定済みのルート外を指定できるようにします
I18N_MCP_LOG_PORTunsetVS Code 拡張機能で使用するログリレー

ツール

ツール書き込み目的
i18n_project_infoいいえロケール、キー形式、件数、設定、警告。セッションごとに一度呼び出します。
i18n_get_translationsいいえロケールごとのキーの値。nav. は名前空間を返します。存在確認のみの場合は includeValues:false を指定します
i18n_search_keysいいえキーまたは値を部分一致で検索します。keyPrefix は省略可能です。一部のロケールに存在しないキーを示します
i18n_file_keysいいえあるソースファイルで使用されているキーと、それぞれのキーが欠けているロケール
i18n_key_referencesいいえコード内でキーが使用されている箇所(path:line:col)
i18n_auditいいえmissing、placeholders、code(使用されているが未翻訳)、unused。checks を選択します
i18n_upsert_translationsはいロケールごとの値を指定してキーを作成/更新します。即時に書き込み、削除は行いません。overwrite:true でない場合、競合があると失敗します
i18n_delete_keysはいキーを削除します。dryRun:false を指定しない限り、プレビューします
i18n_rename_keyはいキーの名前を変更します。from が . で終わる場合は名前空間を移動します。dryRun:false を指定しない限り、プレビューします
i18n_format_resourcesはいキーを並べ替え、書式を統一します。dryRun:false を指定しない限り、プレビューします

すべての結果は、1 行にまとめたコンパクトな JSON です。空のセクションは省略され、パスはワークスペース相対のスラッシュ区切りで、すべてのリストに limit(デフォルトは 50)が適用されます。エラーは isError のテキストとして返され、メッセージには修正方法が含まれます(たとえば、利用可能なロケールの一覧)。

破壊的なツールの確認

i18n_delete_keys、i18n_rename_key、i18n_format_resources はデフォルトでプレビューします。モデルが dryRun を省略し、クライアントが MCP のエリシテーションに対応している場合(Claude Code は対応しています)、サーバーは変更内容を説明する質問を 1 つだけ含むダイアログをユーザーに表示し、承認された場合に適用します。ダイアログなしで適用するには dryRun:false、プレビューのみを行うには dryRun:true を渡します。i18n_upsert_translations はキーを削除せず、異なる値の上書きも overwrite:true がない限り拒否するため、確認は不要です。

プロンプト

サーバーは、クライアントがコマンドとして公開する 3 つのプロンプトを提供します:audit(完全な監査と修正案)、add-key <key> [text](すべてのロケール向けの文言を付けてキーを 1 つ追加)、translate-missing [locale](不足している翻訳をバッチ処理で補完)。

指示

接続時に、サーバーは使用方法の指示(2 KB 未満)を送信します。Claude Code などのクライアントはこれをシステムプロンプトに追加します。ロケールファイルを直接編集しないこと、i18n_project_info を一度呼び出すこと、1 回の呼び出しですべてのロケールを指定して upsert することなどが含まれます。キーの命名規則、文体、プレースホルダーのスタイルなど、プロジェクト固有のルールは引き続き独自の CLAUDE.md / AGENTS.md に記載してください。

名前空間付きレイアウト

ロケールファイルがロケールごとのディレクトリ(locales/en/common.json、locales/tr/auth.json)にある場合、ディレクトリがロケール、ファイルが名前空間になります。キーは namespace:key(common:nav.home)として指定します。i18n_project_info は keyFormat: "namespace:key" と名前空間を報告します。i18n ライブラリで別の区切り文字を使う場合は I18N_NS_SEPARATOR を、区切り文字なしで記述されたキーに使用するデフォルトの名前空間には I18N_DEFAULT_NS を設定してください。

ロケールタグではない名前のファイル(config.json)は警告を出してスキップされます。また、グロブが同じロケールに複数回一致する場合(src/locales/en.json と public/locales/en.json)、最初のものが使われ、i18n_project_info は I18N_GLOB を絞り込むよう警告します。

構造とキーの安全性

ロケールファイルは、葉の格納方法によって フラット("nav.home": "Home")、ネスト(オブジェクト)、または 混在 に分類されます。I18N_STRUCTURE=auto の場合、フラットなファイルはフラットに、ネストされたファイルはネストされた形式で書き込まれ、混在ファイルは決して変換されません。すべてのキーはそのままの場所に保持され、新しいキーはファイル内で優勢な形式で書き込まれます。書き込み時にはファイルのインデント、改行コード、末尾の改行が保持されるため、キーを1つ変更した場合の差分は1行だけです。

構造上、キーの消失を不可能にするガードが2つあります。

  • unflattenObject は、値と名前空間が衝突する場合(dashboard.announcement が文字列であると同時に親キーでもある場合)、一方を上書きするのではなくエラーをスローします。
  • すべての書き込みでは、新しいドキュメントをディスク上のファイルと比較し、キーが消失する場合は書き込みを拒否します。削除と名前変更では、削除対象を明示します。それ以外の理由でキーが消失した場合は、書き込みを中止して該当するキーを示します。

src/__tests__/tools-write.test.ts と resource-manager.test.ts の回帰テストスイートでは、この仕組みのきっかけとなった事例(3,000キーを含む混在ファイル、名前空間でもある葉)を再現し、すべての書き込み経路で損失がゼロであることと、差分が1行だけであることを検証します。

1.x からの移行

2.0では18個のツールを10個に統合し、デフォルト設定を2つ変更しています。

1.x2.0
i18n_list_localesi18n_project_info
i18n_check_keysincludeValues:false を指定した i18n_get_translations
i18n_get_namespacekeys:["prefix."] を指定した i18n_get_translations、または keyPrefix を指定した i18n_search_keys
i18n_diff_localeschecks:["missing"] を指定した i18n_audit
i18n_validate_placeholderschecks:["placeholders"] を指定した i18n_audit。upsert も不一致をインラインで報告します
i18n_scan_workspace_missingchecks:["code"] を指定した i18n_audit(場所の特定には includeReferences:true)
i18n_unused_keyschecks:["unused"] を指定した i18n_audit
i18n_untranslated_keys_on_pagei18n_file_keys
i18n_delete_key(キー1つ)i18n_delete_keys(keys 配列)
i18n_move_namespacefrom が . で終わる i18n_rename_key
upsert の dryRun のデフォルトは trueデフォルトは false。既存の値は overwrite(デフォルトは false)で保護されます
整形済み JSON + structuredContentコンパクトな1行の JSON テキストのみ

その他の変更:Node 20 以降、@modelcontextprotocol/sdk は @modelcontextprotocol/server 2.0 に置き換え(2026-07-28 および2025年のプロトコル改訂版の両方に対応)、デフォルトの無視グロブで一般的なビルド出力をスキップ、workspaceDir は設定済みのルート内に限定、パスは posix 形式、コード正規表現は ns:key を受け入れ、ファイルの先頭にある呼び出しにも一致します。

1.x の名前を使用していたプロジェクト向けの、推奨するエージェント指示ブロック:

i18n: never edit src/locales/*.json by hand. Call i18n_project_info once, then
i18n_upsert_translations with values for every locale (en and tr) in one call; it
reports conflicts and placeholder mismatches. Use i18n_get_translations to read,
i18n_audit for QA, i18n_rename_key / i18n_delete_keys with dryRun:false to apply.

MCP Registry

package.json には mcpName: io.github.hepter/i18n-codelens-mcp が含まれ、server.json はパッケージの内容を記述します。次のコマンドで公開します:

npm publish --access public
mcp-publisher login github
mcp-publisher publish

プログラム API

import { createI18nMcpServer, loadProject, createResourceManager, toolUpsertTranslations, createToolContext } from 'i18n-codelens-mcp';

const ctx = createToolContext({ workspaceRoot: '/path/to/project' });
const result = await toolUpsertTranslations({ entries: [{ key: 'nav.home', values: { en: 'Home', tr: 'Ana Sayfa' } }] }, ctx);

すべてのツールは、(args, ctx) を受け取る通常の非同期関数としてエクスポートされています。あわせて、各構成要素もエクスポートされています:loadProject(キャッシュ済み、名前空間対応)、getCodeIndex(キャッシュ済みのコードスキャン)、createResourceManager(キー消失ガード付きの書き込み状態)、writeFilePretty、flattenObject、unflattenObject、classifyResourceStructure。

変更履歴

2.0.0
  • SDK v2/プロトコル 2026-07-28。 @modelcontextprotocol/server と serveStdio、zod 4、Node 20+ を使用します。2026-07-28 版と 2025 版の両方を stdio で提供します。tools/list と prompts/list にはキャッシュヒントが付与されます。
  • ツールを18個から10個に削減し、結果をコンパクトな1行にまとめました。structuredContent と引数のエコーはありません。ツール定義は13.5 K文字から9.5 K文字に縮小しました。同じプロジェクトで1.xと比較したところ、約7,600個のキーを持つ2ロケールのコードベースで、50件に一致するキー検索は12.5 K文字から2.3 K文字に、完全な監査は6.7 K文字・1.0秒から2.0 K文字・0.4秒に減少しました。
  • Upsert のセマンティクス。 即座に書き込みます。ファイルに触れる前にバッチ全体を検証し(不明なロケールがある場合はすべて拒否)、overwrite:true が指定されていない限り上書きせずに競合を報告します。値がないロケールや、他のロケールにある値とのプレースホルダーの不一致について警告します。
  • 確認ダイアログ。 削除、名前変更、フォーマットでは、クライアントが対応している場合は MCP のエリシテーションを使用し、それ以外の場合はヒント付きのプレビューにフォールバックします。
  • サーバーの指示とプロンプト(audit、add-key、translate-missing)、サーバーメタデータ(websiteUrl、description)、package.json から読み取るバージョン。
  • 名前空間付きレイアウト({locale}/{namespace}.json、キーは ns:key)、ファイル名またはディレクトリ名からのロケール検出、重複ファイルとロケール以外のファイルに関する警告。
  • キャッシュ。 更新日時/サイズが変わらない限り、解析済みのロケールファイルとコードスキャン結果を再利用します。監査時のコードスキャンは1回です。ファイルの読み込み前に .gitignore と一般的なビルドディレクトリを除外します。
  • 修正。 コードの正規表現の文字範囲(.-_ が誤って :…^ にまたがっていた問題)とファイル先頭での一致、Windows での posix パス、CLAUDE_PROJECT_DIR の尊重、workspaceDir をルート内に制限、書き込み時のインデントと CRLF の維持、getWorkspaceRoot が呼び出しごとにログを出さないように修正しました。
1.1.0

データ損失の不具合を修正しました。単一の upsert により、値と名前空間の両方として使われている名前のキーが削除される混在ファイルに変換されることがありました。混在ファイルは変換されなくなり、unflattenObject/setNestedValue は衝突時に例外をスローし、すべての書き込みでキーの損失を防止します。

ライセンス

MIT © Mustafa Kuru

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。