🌐 i18n MCP Server について
i18n MCP Server は、JSON のローカライズファイルを管理する開発者向けです。基準言語ファイルからテキストを分割して翻訳し、言語別ファイルに保存します。Cursor Agent などの MCP クライアントと連携し、選択したモデルで翻訳します。
主な機能
- 01基準ファイルから多言語翻訳を生成
- 02翻訳対象のテキストを分割して取得
- 03翻訳をキャッシュして言語ファイルに保存
- 04選択したモデルによる翻訳
活用シーン
- 01アプリに言語ファイルを追加
- 02基準言語のテキストを分割して翻訳
- 03生成した JSON 翻訳を保存
MCP 対応
Cursor IDE などのクライアントと stdio で連携する MCP サーバーです。基準言語ファイルの読み込み、翻訳テキストの取得、翻訳のキャッシュ、言語ファイルの保存を行うツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🌐 i18n MCP Server
i18n MCP Server は、プロジェクトの国際化(i18n)を管理する強力なツールです。ベース言語ファイルから高性能な言語モデルを使って直接翻訳を生成できるため、JSON ベースの言語ファイルを翻訳するプロセスを効率化できます。すべてを使いやすいサーバーインターフェースから操作できます。
この MCP サーバーは、stdio トランスポートを使用して Cursor IDE と連携することを想定しています。stdio トランスポートに対応するすべてのクライアントでも正常に動作するはずです。
💡 i18n MCP Server を使う理由
- 手作業での翻訳にかかる時間を大幅に削減できます
- i18n ファイルの一貫性を保ち、最新の状態に維持できます
- アプリをグローバルに展開する際の、繰り返し発生するコピー&ペースト作業をなくせます。
🚀 機能
🌍 多言語サポート
1 つのベース言語ファイルから、複数の言語への翻訳を自動生成します。
🤖 Cursor 上のモデルを使った翻訳
追加の翻訳サービスに料金を支払う必要はありません。使用する翻訳モデルを選択し、必要に応じて翻訳を生成できます。
⚡ 効率的なワークフロー
JSON ファイルを手動で複製したり編集したりする必要はありません。リクエストを送信するだけで、すぐに使える翻訳済みファイルが得られます。
🛠️ 開発者に優しい設計
開発パイプラインにシームレスに統合できるよう、シンプルさと速度を重視して構築されています。
作業の流れ
この MCP サーバーは、JSON ファイルの段階的な翻訳を支援します。次のシンプルなツールを提供します。
- すべてのテキストを 1 つの言語で記述したベース言語ファイルと、サポート対象言語の一覧を取得します。
- 翻訳するテキストのチャンクを取得します。各チャンクは、改行で区切られたテキストのリストです。
- 生成した翻訳をメモリーキャッシュに更新します。
- 言語ごとの JSON ファイルに翻訳を保存します。
📦 インストールと設定
- リポジトリをクローンします
git clone
- 依存関係をインストールします:
pnpm install # or npm/yarn
- サーバーをビルドします:
pnpm run build
- Cursor で MCP サーバーを設定します
Cursor Settings / MCP に移動し、新しい MCP サーバーの追加をクリックします。開いた JSON にサーバー定義を追加します:
{
"mcpServers": {
...
"i18n-translation-server": {
"command": "node",
"args": ["<base-path>/i18n-mcp/dist/mcp_server.js"]
},
...
}
}
<base-path> は、コンパイル済みサーバーへの正しい絶対パスに置き換えてください。
📤 使い方
MCP サーバーが起動したら、Cursor Agent を使ってサーバーのツールを操作できます。例:
We are preparing the i18n files for a project and have a base language file. Using the following data, execute the
proposed tasks to prepare the additional required languages.
Base JSON language file: <absolute path to the base language file>
Base language: <base language>
Supported languages: <comma-separated list of supported languages>
These are the tasks that we need to perform:
1. Clear the previous data
2. Read the base JSON language file
3. Get the next chunk
4. For each language in the supported languages, do the following subtasks:
4.1. Translate all items in the chunk from the base language to the target language. Ensure that the order is
preserved and that any i18n string parameters are respected.
4.2. Update the translations for the language
5. Repeat from task 3 until the next chunk does not return any data.
6. After processing all chunks, save translations for each supported language.
このリクエストにより、ベース言語の JSON ファイルと同じフォルダーに、言語ごとの JSON ファイルが生成されます。現在のバージョンは、gpt-4.1 と 250 件のチャンクサイズを使用してテストされています。ほかのモデルでは、トークン制限に応じてこの値の調整が必要になる場合があります。また、Cursor のツール呼び出し制限が 25 回のため、手順 5 と 6 の間で処理が中断され、手動で再開しなければならない場合があります。
これは提案されているタスクリクエストにすぎませんが、定義済みのツールを連続して呼び出すことで、新しいリクエストを作成できます。
テストでは、すべての言語を一度に生成するより、1 回のリクエストで 1 つの言語を生成するほうが、言語ファイルをより速く生成できることが分かりました。また、応答時間は使用するモデルによって異なります。
📚 今後の予定
- 複数のキャッシュをサポート
- 言語ファイルの整合性チェック
- チャンクサイズの動的な設定をサポート
- 未翻訳の項目のみ翻訳
- 特定の項目のみ翻訳
- 言語ファイルのバージョン追跡
- 翻訳用ローカルキャッシュの改善
🙌 貢献
プルリクエストや課題を歓迎します。一緒により良い翻訳ワークフローを作りましょう。
📄 ライセンス
このプロジェクトは GNU Affero General Public License v3.0 のもとでライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。