litport-mcp について
litport-mcp は、コーディングエージェントやチャットクライアントを Litport API に接続し、プロキシトークン、パッケージ、プール、地域指定を扱います。一覧ではトークンのパスワードを既定でマスクし、検証済みのプロキシ URL を生成できますが、トークンやパッケージの作成・購入はできません。
主な機能
- 01トークン、使用量、パッケージの確認
- 02トークンの場所とローテーションの変更
- 03パッケージの許可 IP リスト管理
- 04プールと地域指定オプションの一覧
- 05プロキシ URL の生成とドキュメント検索
活用シーン
- 01トークンの帯域使用量を確認
- 02トークンの場所変更や IP の取得
- 03パッケージの許可 IP アドレスを更新
- 04選択したプールのプロキシ URL を生成
MCP 対応
Litport API の操作を MCP クライアント向けのツールとして提供し、トークンやパッケージの確認、一部設定の変更、プロキシ URL の生成を可能にします。トークンのパスワードは一覧で既定でマスクされ、指定したトークンの個別取得時に返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Litport MCP サーバー
Litport API 用のModel Context Protocol サーバーです。コーディングエージェントやチャットクライアントから直接、プロキシトークン、使用状況、パッケージ、GB 単位の従量課金プール/地域ターゲティングを確認し、トークンのロケーションやローテーション間隔の変更、新しい IP の取得、パッケージの許可 IP リストの管理、すぐに使えるプロキシ接続 URL の作成を行えます。
このサーバーでは、トークンやパッケージの作成、購入、更新、解約、無効化、認証情報のリセット、アカウント残高の使用はできません。トークンのロケーションやローテーション間隔の変更、データセンター/ISP トークンの新しい IP のリクエスト、パッケージの許可 IP の追加、削除、設定は可能です。
インストールと設定
litport.net/users/settings で API キーを作成し、MCP クライアントの設定で env ブロックに LITPORT_API_KEY を指定してサーバーを追加します。
Claude Code
claude mcp add litport -e LITPORT_API_KEY=lit_your_key_here -- npx -y @litportnet/litport-mcp
または、.mcp.json に追加します。
{
"mcpServers": {
"litport": {
"command": "npx",
"args": ["-y", "@litportnet/litport-mcp"],
"env": {
"LITPORT_API_KEY": "lit_your_key_here"
}
}
}
}
Claude Desktop
claude_desktop_config.json の mcpServers に同じブロックを追加します。
{
"mcpServers": {
"litport": {
"command": "npx",
"args": ["-y", "@litportnet/litport-mcp"],
"env": {
"LITPORT_API_KEY": "lit_your_key_here"
}
}
}
}
Cursor
.cursor/mcp.json に同じブロックを追加するか、Cursor の「設定」→「MCP」→「新しい MCP サーバーを追加」を使用し、コマンドに npx -y @litportnet/litport-mcp を指定して、環境変数欄に LITPORT_API_KEY を設定します。
認証情報の露出 — 2 つの方法
プロキシトークンには username/password のペアが含まれています。参照操作であるにもかかわらず、list_tokens のすべてのパスワードをデフォルトでモデルのコンテキストに含める必要はありません。そのため、このサーバーでは実際のパスワードを取得する方法を 2 つ用意しています。
| オプション | 動作 |
|---|---|
デフォルト(LITPORT_MCP_REVEAL_CREDENTIALS が未設定) | list_tokens は各トークンの password をマスクして返します(null、passwordSet: true)。また、get_token_credentials または build_proxy_url を示す hint を追加します。get_token_credentials と build_proxy_url は、リクエストされた 1 つのトークンについて、常に実際のパスワードを返します。 |
LITPORT_MCP_REVEAL_CREDENTIALS=1 | list_tokens は、ほかのすべての情報とともに、すべてのパスワードをマスクせずに返します。 |
どちらの方法でも、情報にアクセスできなくなることはありません。デフォルトでは、特定のトークンが指定されるまで、一括リストがモデルのコンテキストに含まれないようにしているだけです。
ツール
| ツール | API を呼び出すか | 書き込みを行うか | 説明 |
|---|---|---|---|
list_tokens | はい | プロキシトークンの一覧を取得します。カーソルによるページネーションと任意の packageId フィルターに対応しており、デフォルトではパスワードをマスキングします。 | |
get_token_credentials | はい | ID でトークンを 1 つ取得します。実際のパスワードも含まれます。 | |
get_token_usage | はい | トークンの帯域幅使用量を取得します。ドメイン別、および/または時間単位の料金を指定できます。 | |
get_token_location | はい | トークンの現在のロケーション/キャリアのターゲットと、今すぐ変更できるかどうかを取得します。 | |
list_location_options | はい | トークンの移動先として指定できる地域/都市(データセンター/ISP)または都市/キャリア(モバイル)の値を一覧表示します。 | |
set_token_location | はい | はい | トークンのロケーション(モバイルの場合はキャリアも)を変更します。 |
set_rotation | はい | はい | トークンのローテーション間隔を変更します。 |
get_new_ip | はい | はい | データセンター/ISP トークンの新しい IP を取得します。静的トークンでは週ごとの利用枠を使い、ローテーションするトークンでは呼び出し間に短い待機時間があります。静的トークンでは、無条件に再試行しても安全ではありません。 |
list_packages | はい | プロキシパッケージの一覧を取得します。製品、ステータス、アドオン、制限、日付、トークン ID が含まれます。 | |
get_package | はい | 公開数値 ID でパッケージを 1 つ取得します。 | |
get_allowed_ips | はい | パッケージの許可 IP リストと上限を取得します。 | |
set_allowed_ips | はい | はい | パッケージの許可 IP リスト全体を一度に設定します。 |
add_allowed_ip | はい | はい | パッケージの許可 IP リストに IP を 1 つ追加します。 |
remove_allowed_ip | はい | はい | パッケージの許可 IP リストから IP を 1 つ削除します。 |
list_pools | はい | 従量課金制の GB プールと、それぞれが接続するハブを一覧表示します。 | |
list_targeting_options | はい | 1 つ以上のプールで利用できる国、地域、都市を一覧表示します。 | |
get_balance | はい | アカウントの従量課金制 GB 残高とプランを取得します。 | |
explain_proxy_error | いいえ(ローカル) | X-Proxy-Error-Code または SOCKS5 の応答を調べ、何が起きたか、再試行すべきか、何をすべきかを確認します。 | |
build_proxy_url | はい | プール/地域/セッションのターゲティング、またはパスワード不要の許可 IP エンドポイントを指定して、トークン用のすぐに使えるプロキシ接続 URL を作成します。 | |
search_docs | はい(公開) | Litport のドキュメントインデックスを検索し、クエリに一致するページを探します。 | |
get_doc | はい(公開) | Litport のドキュメントページを Markdown として取得します。 |
読み取りツールには readOnlyHint: true、destructiveHint: false、idempotentHint: true が注釈されています。
各書き込みツールの説明には、それぞれが何かを変更するか、繰り返し実行しても安全かどうかが記載されています。例外は get_new_ip(idempotentHint: false)です。以下を参照してください。
トークンのロケーション、ローテーション、新しい IP
set_token_location が送信するのは、指定したキーのみです。データセンター/ISP トークンの場合は region/city、モバイルトークンの場合は city/carrier を指定するため、どちらか一方の形式で指定してください。繰り返し実行しても安全です。すでに保存されているターゲットを再送信した場合、何も変更されません。標準の米国共有モバイルトークンでは、これを実行できるのは 48 時間に 1 回です。409 CHANGE_LIMIT が返された場合、エラーには nextChangeAt と Retry-After ヘッダーが含まれ、どちらもツールが表示するため、モデルはやみくもに再試行せず、次に実行できる時刻を把握できます。
set_rotation は、トークンのローテーション間隔を、そのトークン自身の rotation.options の値のいずれかに変更します。rotation.changeable が false の場合(たとえば、間隔が現在の電話番号に常に従うマルチロケーションモバイルトークンの場合)、NOT_SUPPORTED を返します。
get_new_ip は、データセンター/ISP トークンに新しい IP を要求します。静的トークンでは週ごとの利用枠を消費するため、やみくもに再試行するのは安全ではありません。まず get_token_location を呼び出して canChangeNow/nextChangeAt を確認してください。同じ週に 2 回目の呼び出しをすると、2 つ目の新しい IP が返されるのではなく、CHANGE_LIMIT で失敗します。呼び出し結果が失われた場合や曖昧な場合は、再度呼び出すのではなく get_token_location で読み直してください。
ローテーショントークンでは、いつでも実行できます。新しい IP は常に現在の IP と異なり、トークンの自動タイマーはリセットされます。2 回の呼び出しの間隔は、そのタイプで最短のローテーション間隔(トークンの rotation.options で最小の値)以上にする必要があります。この待機時間内に呼び出すと、CHANGE_LIMIT、nextChangeAt、Retry-After が返されます。LOCATION_UNAVAILABLE は、現時点で条件を満たす別の IP がないことを意味します。何も変更されませんが、呼び出しによって待機時間は発生します。結果が失われた後は、get_token_location で変更を確認できません。その canChangeNow/nextChangeAt は、この待機時間ではなくロケーションに関するものです。Retry-After の後に再度呼び出しても問題ありません。その場合は別の新しい IP が返されます。結果が失われた直後に CHANGE_LIMIT が返っても、変更が行われたことの証明にはなりません。
パッケージの許可 IP の書き込み
MCP サーバーは、正確なパブリック IPv4 アドレスを対象とする set_allowed_ips(リスト全体を一度に設定)、add_allowed_ip、remove_allowed_ip を提供します。IPv6 はサポートされていません。サポートにお問い合わせください。アドレスは IP 自体で識別されます。アドレス ID やリビジョンの事前条件はありません。最後にコミットされた成功した呼び出しが優先されます。すでに有効なアドレスを追加した場合や、すでに存在しないアドレスを削除した場合は、何も変更されません。remove_allowed_ip は、IP からのパスワード不要アクセスを削除するため、破壊的操作としてマークされています。省略したアドレスが削除されるため、set_allowed_ips も同様です。パッケージには IPv4 アドレスが 1 つ含まれます。アドオンを利用すると最大 50 個までサポートされます。50 個に達した場合はサポートにお問い合わせください。パスワード不要エンドポイント自体はここではなく、各トークンの ipAuth(list_tokens/get_token_credentials)にあります。
build_proxy_url と 2 種類のトークン
従量課金制トークンでは、リクエストごとに選択します。build_proxy_url はプール、地域、セッションの各セグメントをユーザー名に追加し、選択したプロトコルに対応するポートを選びます。保存済みのプールがあるトークンでは pool 引数は不要で、競合する値を指定すると拒否されます。保存済みのプールがないトークンでは、価格がプールによって決まるため pool が必須です。
無制限トークンにはエンドポイントが 1 つだけ割り当てられているため、プール、地域、セッションの各引数は不要です。これらを渡すと、プロキシに拒否されるユーザー名を黙って生成するのではなく、どの引数が原因かを示して拒否します。また、このトークンではプールのリクエスト自体を行いません。ハブがすでにサービスを提供していない場合、ツールは壊れた URL を返すのではなく、そのことを通知します。無制限トークンに passwordless: true を渡すと、代わりに ipAuth エンドポイントから認証情報不要の URL が作成されます。ipAuth がまだ null の場合は、まず add_allowed_ip を参照してください。
パラメーターは、値を返す前に公開されているルールに照らして検証されます。そのため、形式が不正な国スラッグや範囲外のセッション有効期間は、リクエストを消費することなく報告されます。
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
LITPORT_API_KEY | はい | Litport API キー(lit_…/ltp_…)です。 |
LITPORT_API_URL | いいえ | API のベース URL を上書きします。デフォルトは https://litport.net です。 |
LITPORT_MCP_REVEAL_CREDENTIALS | いいえ | 1 に設定すると、list_tokens が実際のパスワードを返します。 |
開発
npm install
npm test # node --test test/
npm run generate-contracts # regenerate src/contracts.generated.js from the web app
src/contracts.generated.js は Web アプリケーションの正式なコントラクトモジュールから生成されるため、手動で編集することはありません。
ライセンス
MIT
コントラクト
src/contracts.generated.js には、Litport Web アプリケーションのプロキシエラーリファレンスと GB 単位の従量課金パラメーター規則が含まれているため、explain_proxy_error と build_proxy_url はネットワーク呼び出しなしで応答できます。このファイルは生成されるものであり、手動で編集することはありません。2 つの内容に不一致がある場合は、アプリケーションのパリティチェックでエラーになります。ソースコントラクトがある Litport アプリケーションリポジトリ内のコピーから、npm run generate-contracts を実行して再生成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。