spanlens について
spanlensは、IDEエージェントやクライアントからSpanlensのLLMオブザーバビリティデータを照会するMCPサーバーです。利用量やコスト、リクエスト、トレース、異常、削減提案、ユーザー分析を扱い、読み取り専用のpublic-scopeキーのみを受け付けます。
主な機能
- 01利用量とコストの集計
- 02絞り込み可能なリクエスト記録
- 03エージェントトレースとスパンの詳細
- 04コストとレイテンシーの異常照会
- 05モデル変更によるコスト削減提案
- 06ユーザー別の利用分析
活用シーン
- 01プロバイダー別の週次LLM支出の確認
- 02エラーや高コストなトレースの調査
- 03コストやレイテンシーの異常の特定
MCP 対応
Cursor、Continue、Claude DesktopなどのMCPクライアントに、読み取り専用のSpanlens分析ツールを7種類公開します。APIキーがpublic scopeであることを検証し、フルアクセスキーは拒否します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @spanlens/mcp-serverSPANLENS_API_KEYシークレットSpanlens API key. Must be a scope=public key (sl_live_pub_*) issued from the Public Keys card at https://spanlens.io/projects — the server refuses to start with a full-access sl_live_* key.SPANLENS_BASE_URLOverride the API endpoint for self-hosted Spanlens. Default: https://api.spanlens.ioローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@spanlens/mcp-server
Cursor、Continue、または Claude Desktop 内から、LLM のオブザーバビリティデータをクエリできます。Spanlens を利用しています。
IDE のエージェントに、「今週の OpenAI の利用額はいくらですか?」、「コストに異常はありますか?」、「今日最も高額なトレースを表示して」 といったことを尋ねると、Model Context Protocol を通じて、Spanlens ワークスペースから実際のデータを取得できます。
30 秒でセットアップ
1. Spanlens のパブリックスコープキーを発行する
パブリックスコープキー(sl_live_pub_*)は読み取り専用です。ダッシュボードのデータをクエリできますが、LLM プロキシの利用料金が発生する操作は実行できません。このサーバーは、フルアクセスキーでは起動しません。認証情報が IDE のプレーンテキスト設定ファイルに保存されるためです。
spanlens.io/projects を開き、上部にある Public Keys カードから + New public key を選択して作成します。表示された sl_live_pub_… の値をコピーします。
2. IDE にサーバーを追加する
Cursor — ~/.cursor/mcp.json(またはワークスペースの .cursor/mcp.json)
{
"mcpServers": {
"spanlens": {
"command": "npx",
"args": ["-y", "@spanlens/mcp-server"],
"env": { "SPANLENS_API_KEY": "sl_live_pub_..." }
}
}
}
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)
{
"mcpServers": {
"spanlens": {
"command": "npx",
"args": ["-y", "@spanlens/mcp-server"],
"env": { "SPANLENS_API_KEY": "sl_live_pub_..." }
}
}
}
Continue — ~/.continue/config.yaml
mcpServers:
- name: spanlens
command: npx
args: ['-y', '@spanlens/mcp-server']
env:
SPANLENS_API_KEY: sl_live_pub_...
3. IDE を再読み込みして、質問を始める
エージェントは 7 つのツールを検出し、必要に応じて自動的に使用します。
質問できること
| 質問 | 呼び出されるツール |
|---|---|
| 「今週の LLM の利用額はいくらですか?」 | get_stats |
| 「過去 30 日間のモデル別コストを内訳表示して」 | get_stats(groupBy=model) |
| 「今週、最もコストがかかっているプロバイダーはどこですか?」 | get_stats(groupBy=provider) |
| 「コストやレイテンシに異常はありますか?」 | get_anomalies |
| 「gpt-4o で直近に発生したエラー呼び出しを 10 件表示して」 | query_requests |
| 「最近のエージェントの実行を一覧表示して」 | list_traces |
「トレース abc123… の内容を順に説明して」 | get_trace |
| 「コストを抑えるために切り替え可能なモデルはありますか?」 | get_savings |
| 「最も利用額が多いエンドユーザーは誰ですか?」 | get_user_analytics |
利用可能なツール
| ツール | 返される内容 |
|---|---|
get_stats | コスト、リクエスト数、トークン使用量、レイテンシ、エラー率の集計データです。オプションの groupBy を指定すると、コスト、リクエスト数、レイテンシ、エラー率の内訳を取得できます。model はプロバイダーとモデルの組み合わせごとに 1 行を返し、provider はその行をプロバイダーごとに集約して 1 行にまとめます。レイテンシとエラー率はリクエスト数で重み付けされます。 |
query_requests | コスト、レイテンシ、モデル、エラーメッセージを含む個別の LLM リクエストです。model、provider、status、userId、since、limit で絞り込めます。 |
list_traces | トレース ID を見つけるための、エージェントトレースの概要(名前、ステータス、実行時間、スパン数、合計トークン数、合計コスト)です。limit、status、since、query で絞り込めます。トレースのスパンツリー全体を確認するには、get_trace と組み合わせてください。 |
get_trace | トレース ID に対応するエージェントのスパンツリー全体です。タイミング、トークン数、コストを含むすべての LLM/ツール/検索スパンを取得できます。 |
get_anomalies | プラットフォームが検出したコスト/レイテンシ/エラー率の異常です。オプションで since(観測期間)と sigma(感度)を指定できます。 |
get_savings | 月間の予測節約額と導入状況を含む、モデル切り替えの推奨情報です。 |
get_user_analytics | エンドユーザーごとの利用内訳です。合計コスト、リクエスト数、利用モデル、最近の呼び出しを確認できます。 |
安全性
このサーバーは、認証情報を漏えいしやすいプレーンテキストファイルに保存する IDE 設定のユースケース向けに設計されています(ドットファイルの同期、画面共有、誤ったコミットなど)。次の 2 つの対策を講じています。
- パブリックスコープのキーのみを使用します。 サーバーは起動時にワークスペースの
/api/v1/me/key-infoを呼び出し、キーのscope=publicを検証します。誤ってフルアクセスのsl_live_*キーを貼り付けた場合は、正しいキーの種類を示す明確なエラーを表示して、サーバーの起動を拒否します。 - API レイヤーで読み取り専用にします。 パブリックキーが漏えいしても、
/proxy/*や/ingest/*を呼び出すことはできません。Spanlens サーバーは403とPUBLIC_KEY_WRITE_FORBIDDENコードでこれを強制します。キーが漏えいした場合の影響は「競合他社に使用状況の統計を見られる」ことであり、「競合他社に OpenAI の請求額を膨らませられる」ことではありません。
設定
| 環境変数 | デフォルト | 説明 |
|---|---|---|
SPANLENS_API_KEY | 必須 | /projects の Public Keys カードで取得する sl_live_pub_* キーです。キーが設定されていない場合、または sl_live_*(フルアクセス)キーが設定されている場合、サーバーは起動を拒否します。 |
SPANLENS_BASE_URL | https://api.spanlens.io | セルフホストの Spanlens を使用する場合に上書きします。末尾のスラッシュは正規化されます。 |
SPANLENS_TIMEOUT_MS | 30000 | タイムアウトエラーで失敗するまで、各 API 呼び出しを待つ時間をミリ秒単位で指定します。起動時のキー確認と各ツール呼び出しに適用されます。1 から 600000 までの整数を指定できます。それ以外の値を指定すると、変数名を示すエラーが表示され、サーバーの起動が停止します。 |
セルフホストの Spanlens
{
"mcpServers": {
"spanlens": {
"command": "npx",
"args": ["-y", "@spanlens/mcp-server"],
"env": {
"SPANLENS_API_KEY": "sl_live_pub_...",
"SPANLENS_BASE_URL": "https://spanlens.your-company.com"
}
}
}
}
リンク
ライセンス
MIT — リポジトリのルートにある LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。