inferwatch-mcp
inferwatch
ローカルで提供されるLLM(Ollama と vLLM)のリアルタイムおよび履歴メトリクス。ブラウザダッシュボード、設定画面、そしてエージェントが同じデータを照会できるMCPサーバーを備えています。
1つのPythonプロセス、1つのSQLiteファイル。DockerもNodeもPrometheusも外部サービスも不要です。リクエストパスには一切関与しないため、推論を遅くしたり壊したりすることはありません。
┌── Ollama ──────────────┐ ┌── vLLM ────────────────┐
│ journald / file / │ │ GET /metrics │
│ docker logs │ │ (native Prometheus) │
└──────────┬─────────────┘ └──────────┬─────────────┘
│ per-request rows │ pre-aggregated
▼ ▼
┌──────────────── SQLite (WAL) ────────────────┐
│ requests · rollups · vllm_samples/hist │
└───────┬──────────────────────────┬───────────┘
▼ ▼
dashboard :7070 MCP server (stdio)2つのエンジンは対称ではなく、このツールはそれを偽らない
これが中心的な設計上の事実なので、明確に述べる価値があります。
Ollama | vLLM | |
ソース | そのログ |
|
リクエストごとの行 | あり | なし — 収集するものが存在しない |
TTFT / レイテンシ | リクエストごとに正確 | ヒストグラムのみ |
トークン | リクエストごと | 累積カウンター |
エラー | リクエストごとのHTTPステータス |
|
クライアントアドレス | あり | なし |
パーセンタイル | 保持期間内で正確 | バケット上限値; 平均は正確 |
独自の追加項目 | プロンプトキャッシュ再利用、ドラフト受理、コールドロード時間 | KVキャッシュ使用率、プリエンプション、バッチ使用率、理由別待機時間 |
両方のタブでGPU使用率、VRAM、温度、消費電力を表示します。これらはどちらのエンジンでもなくnvidia-smiによって測定されるためです。温度と消費電力は軸を共有せずに別々のチャートになり、それぞれの単位に応じて集約されます。使用率はカード全体で平均、VRAMとワットは合計、温度は最も高温のカードを報告します。温度はゼロからプロットされない唯一の系列です。0から始まる33〜68°Cの範囲では、プロットの大部分が無駄になります。
したがって、これらは別々のダッシュボードタブ、別々のテーブル、別々のMCPツールを取得します。カウンターの差分によってvLLMのリクエストごとの行を再構築する試みは行われません。どのTTFTがどのリクエストに属していたかを復元することはできず、偽造すると実際の行の隣に発明された行が置かれることになります。
Ollama: 数値の出所
Ollamaは/metricsエンドポイントを公開していません(確認済み — このルートはバイナリに存在しません)。OLLAMA_DEBUG=1を使用すると、組み込みのllama.cppがリクエストごとにタイミングブロックを出力し、それがアクセス行とスケジューラー行と結合されます。
slot print_timing: id 0 | task 6763 | prompt eval time = 1254.52 ms / 55 tokens
slot print_timing: id 0 | task 6763 | eval time = 14591.31 ms / 416 tokens
[GIN] ... | 200 | 16.862061865s | 192.0.2.10 | POST "/v1/chat/completions"
time=... msg="context for request finished" runner.name=.../llama3.2:3bこれにより、TTFT、プリフィル/デコード分割、トークン数、デコードレート、ステータス、クライアント、エンドポイント、モデルが、すべてのクライアントからのすべてのリクエストについて、リクエストパスに触れることなく得られます。どちらのソースにも単独では存在しない2つの数値が、この組み合わせから得られます。
キュー待ち時間 = ウォールレイテンシ − ランナー時間: 生成ではなく待機に費やされた時間。プロキシはこれらを分離できません。
プロンプトキャッシュ再利用 = 完全なプロンプト長 − 実際に評価されたトークン数。
OLLAMA_DEBUG=1 が必要です。 これがないと、llama.cppはタイミング行を出力しません。リクエストレート、ステータス、GPUメトリクスは引き続き機能しますが、TTFTとトークン数は空のままです。ダッシュボードはゼロを表示する代わりに、バナーでその旨を通知します。
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_DEBUG=1"vLLM: 数値の出所
vLLMのネイティブPrometheusエンドポイントは、collection.scrape_interval_s(デフォルト10秒)ごとにスクレイピングされます。累積カウンターは差分され、ヒストグラムバケットはバケットごとに差分され、両方とも1分ごとに集約されて書き込まれます。すべてのスクレイピングを保存すると、どのチャートも使用しない解像度で月に数百万行が追加されるためです。
知っておく価値のある3つの詳細:
vLLM独自のバケット境界はカウントとともに保存されます。 その境界は1ms/20ms/250ms/2.5s/40s/640sのステップです。Ollamaのステップは25ms/200ms/1.5s/15s/60sです。どちらも他方の改良版ではないため、一方を他方に再バケット化するには境界間の補間、つまり数値の発明が必要になります。パーセンタイルは各ソースの独自の境界に対して計算され、バケット上限値として報告されます。
_sumと_countは正確であるため、平均は正確です。vLLMのバケットは秒単位の範囲では粗いため、ダッシュボードとMCPツールは平均を先頭に表示し、パーセンタイルを「最大」とラベル付けします。再起動は
process_start_time_secondsによって(そしてカウンターが逆方向に進むことによって)検出されます。再起動にまたがる間隔は、偽のデルタとして出力されるのではなく、破棄されます。
トークン間レイテンシは、vLLMのリリースによってtime_per_output_token_seconds、inter_token_latency_seconds、request_time_per_output_token_secondsと綴られてきました。すべてが収集され、データがある方が使用されるため、これは古いサーバーと新しいサーバーの両方で設定なしで機能します。
Related MCP server: System Monitor MCP Server
インストール
Python 3.10以降が必要です。これはこのコード(3.9でクリーン)のためではなく、fastapi、uvicorn、starlette、mcpがすべてそれを必要とするためです。
pip install git+https://github.com/floatsmyboat/inferwatch # or:
git clone https://github.com/floatsmyboat/inferwatch && cd inferwatch
python3 -m venv --upgrade-deps .venv && .venv/bin/pip install -e ".[dev]"インストールすると、2つのコマンドが得られます:
コマンド | 説明 |
| コレクター、ダッシュボード、API( |
| MCPサーバー(stdio経由) |
まだPyPIにはありません。今のところgitからインストールしてください。
既に持っているジャーナルからバックフィルし、データベースを確認します:
inferwatch ingest --since 2d # or: python -m inferwatch.main ingest
inferwatch stats実行します:
inferwatch serve # http://127.0.0.1:7070サービスとして — ユニットは現在のユーザー、チェックアウトパス、インタープリター用にsystemd/inferwatch.service.inからレンダリングされるため、ハードコードされたものはありません:
./scripts/install-systemd.sh # system service (uses sudo)
sudo systemctl enable --now inferwatch
./scripts/install-systemd.sh --user # or per-user, no sudo
systemctl --user enable --now inferwatchHOST=0.0.0.0 PORT=7070 DATADIR=... ./scripts/install-systemd.shでオーバーライドします。
ネットワーク上での公開
認証はありません。 ダッシュボードは読み取り専用(GETのみ)で、プロンプトや応答テキストは保存されません。カウント、タイミング、モデル名、クライアントアドレスのみです。ファイアウォールで制限してください:
sudo ufw allow from 192.168.1.0/24 to any port 7070 proto tcp comment "inferwatch"監視対象の設定
すべてダッシュボードの設定タブ、またはCLIから編集できます:
python -m inferwatch.main sources # list
python -m inferwatch.main sources add --kind vllm --name qwen \
--set url=http://127.0.0.1:8000
python -m inferwatch.main sources add --kind ollama --name box \
--set reader=file --set path=~/.ollama/logs/server.log
python -m inferwatch.main sources disable qwenOllamaログリーダー。 誰もがsystemdでOllamaを実行しているわけではありません:
リーダー | 対象 | タイムスタンプ精度 |
|
| マイクロ秒、journaldから |
| ターミナルでの | 派生; 以下を参照 |
| コンテナ内のOllama | 行ごと、 |
fileリーダーはtail -Fのように追従し、ローテーション(inode変更)と切り詰めを生き延び、オフセットを永続化するため、再起動しても再生されません。OllamaのGo行にはtime=が含まれますが、トークン数を保持するllama.cppのslot行にはタイムスタンプが含まれないため、最後に見られたものが繰り越されます。結合が依存する順序は常に保持されます。絶対的な精度はjournaldよりも低く、秒解像度の[GIN]行は時間が逆方向に進むように見えないように前方にクランプされます。
設定の優先順位
spec default < database (Settings tab) < environment < command line環境またはフラグによって提供されたキーは、その発信元とともに設定タブに読み取り専用で表示されます。プロセスはそれを使用するように指示されており、ブラウザがそれを静かにオーバーライドしてはならないためです。保存は全か無かであるため、1つのフィールドのタイプミスで半分適用された構成が残ることはありません。ソース、間隔、保持期間の変更は再起動なしで適用されます。server.hostとserver.portは再起動が必要としてマークされ、APIは保存後にその旨を通知します。
設定リファレンス
以下のすべての設定は、設定タブで編集可能で、環境変数として設定可能であり、一部はフラグで固定できます。テーブルはコードから生成されるため(scripts/gen-config-docs.py)、プログラムが実際に受け入れるものから逸脱することはありません。
scripts/gen-config-docs.pyによって生成 — 手動で編集しないでください。
収集
設定 | デフォルト | 受け入れ値 | 環境変数 | メモ |
|
| 1–300 |
| nvidia-smiとエンジン自体のステータスエンドポイントがサンプリングされる頻度。 |
|
| 1–300 |
| 各vLLMインスタンスの/metricsエンドポイントが読み取られる頻度。vLLMカウンターは累積的であるため、これによりそこから派生するすべてのレートとヒストグラムの解像度が設定されます。 |
|
|
|
| 再起動が必要 — 再開状態が存在する前の初回実行時に、どのくらい遡って読み取るか。7d / 6h、または'-2 days'のようなjournalctl形式を受け入れます。 |
|
| 10–3600 |
| 1分および1時間の集計が再計算される頻度。 |
保持
設定 | デフォルト | 受け入れ値 | 環境変数 | メモ |
|
| 0.5–3650 |
| これより古いリクエストごとの詳細は削除されます。ロールアップは、長期的なチャートが存続するように、関係なく無期限に保持されます。 |
|
| 0.5–3650 |
| GPUサンプル、エンジンサンプル、イベントログはこれに切り詰められます。 |
ダッシュボード
設定項目 | デフォルト | 指定可能な値 | 環境変数 | 説明 |
|
|
|
| ダッシュボードを開いたときに選択されている期間。 |
|
| — |
| HEADリクエストとステータスポーリングをリクエストレートに含める。ポーリング環境ではヒット数の90%以上を占めることがあるため、デフォルトではオフ。 |
|
| 2–600 |
| ダッシュボードが再取得する間隔。ライブリクエストフィードは別途プッシュされるため、この影響を受けない。 |
サーバー
設定項目 | デフォルト | 指定可能な値 | 環境変数 | 説明 |
|
| — |
| 再起動が必要 — |
|
| 1–65535 |
| 再起動が必要 — ダッシュボードとAPIが待ち受けるポート。 |
ソースフィールド
--set key=value を sources add で指定するか、設定タブで指定する。
Ollama (--kind ollama)
フィールド | デフォルト | 必須条件 | 説明 |
|
| — | ollamaのログの読み取り元。リクエストごとのメトリクスはllama.cppのデバッグ行から取得されるため、このいずれかが必要。 |
|
|
| |
| — |
|
|
|
|
| |
|
| — | 常駐モデルのポーリングに使用。 |
| — | — | オプション。ロードイベント時にblobダイジェストをモデル名に解決する。デフォルトは |
vLLM (--kind vllm)
フィールド | デフォルト | 必須条件 | 説明 |
|
| — | OpenAI互換サーバーのルート。 |
| — | — | 設定すると、journalからHTTPステータスコード、クライアントアドレス、エンジンエラーも読み取られる( |
| — | — | サーバーが要求する場合にBearerトークンとして送信される。 |
コマンドラインフラグ
フラグ | 目的 | 固定される設定項目 |
| — | — |
| シードされたOllamaソースのsystemdユニット / 取り込み用 | — |
| — | — |
| ollamaモデルディレクトリ(blobダイジェストをモデル名に解決) | — |
| 取り込み: journalの代わりにこのログファイルを読む | — |
| ログのバックフィル期間(例: '-2 days') |
|
| 生リクエストの保持期間。ロールアップは永久保持。 |
|
| — |
|
| — |
|
| — |
|
| — |
|
| — | — |
設定を固定するフラグは、環境変数や設定タブよりも優先される。設定タブでは、そのキーは読み取り専用で表示され、由来が示される。
スコープ: Ollamaソース1つ、vLLMソースは複数
vLLMの行はソースごとにキー付けされるため、vLLMインスタンスはいくつでも並行して監視できる。Ollamaのテーブル(requests、events、ps_samples)はソースで分割されないため、Ollamaソースは同時に1つだけ実行される。2つ目を有効にすると、2つのインスタンスの数値を暗黙的に1つの集合に混ぜるのではなく、警告をログに記録して無視する。テーブルの分割はスキーマ変更を伴うため、意図的に行う価値がある。
ダッシュボード
http://127.0.0.1:7070 — 3つのタブ: Ollama、vLLM、設定。
どのGPUがどのエンジンに属するか
1つのホストで複数のエンジンが動作することはよくあるため、インスタンスのペインにすべてのカードをプロットすると、そのインスタンスがすべてのカードを使用しているかのように見えてしまう。各vLLMインスタンスのGPUは、プロセスの追跡によって解決される — サービスが待ち受けるポート → リッスンしているpid → その子プロセス → nvidia-smi のコンピュートプロセスとの交差 → それらのプロセスが使用するカード。インスタンスのカードには系列の色が付けられ、そのVRAMタイルはそのカードのみをカウントする。ホストの他のカードはグレーで表示され、「other engine」とラベル付けされる。
属性の特定には ss、ローカルインスタンス、およびnvidia-smiのプロセス可視性(コンテナ内ではしばしば欠落)が必要。そのいずれかが欠けている場合、ペインはその旨を表示し、推測する代わりに強調なしですべてのカードを表示する。
1つのフィルタ行がその下のすべてをスコープする。各チャートにはテーブルトグルがあり、同じ系列を数値として表示するため、ホバーだけでしか値を確認できないということはない。ライブSSEフィードがリクエストティッカーと現在のレート表示を駆動する。
URLパラメータ: ?tab=vllm、?window=6h、?model=llama3.2:3b、?source=name、?nostream=1(ライブフィードを無効化 — キオスク表示やスクリーンショットツールで、開いたままのストリームを無期限に待つのを避けるのに便利)。
API
エンドポイント | 戻り値 |
| Ollamaタブに必要なすべてを1つのタイムスライスで |
| 1つのvLLMインスタンスについて同様 |
| Ollamaの内訳 |
| vLLMの内訳 |
| 生の行とタイムライン |
| 設定 |
| 監視対象のエンジン |
| ダッシュボードのデフォルト、コレクターの状態 |
| SSEライブフィード |
/api/sources/probe は定義を保存する前にチェックするため、タイポはチャートが沈黙するのではなく、そこで表面化する。
MCPサーバー
./scripts/install-mcp.sh # writes .mcp.json for this checkout (gitignored)または claude mcp add inferwatch -- /path/to/.venv/bin/python -m inferwatch.mcp_server。
同じSQLiteファイルを読み取り専用(mode=ro に加えて PRAGMA query_only)で開き、ダッシュボードと同じクエリレイヤーを通じて応答するため、報告される数値は常に画面上の数値と一致する。
ツール | 目的 |
| Ollamaの主要メトリクスと系列 |
| モデルごとの内訳。何が常駐しているか |
| Ollamaのリクエストごとの詳細 |
| コールドロード、エビクション、切り詰め、警告 |
| vLLMメトリクス、到達可能性、GPU属性 |
| デバイスごとの使用率/VRAM/温度/電力 |
| 何が監視されているか、どのように設定されているか |
| 収集は動作しているか、デバッグログは有効か |
| 読み取り専用のSELECT脱出ハッチ。単位付き |
保持期間
生のリクエストごとの行(Ollama): 7日間 (
retention.raw_days)。GPUサンプル、イベント、vLLM行: 30日間 (
retention.sample_days)。rollup_1mとrollup_1h: 無期限に保持。
ロールアップは、事前計算されたパーセンタイルではなく、TTFTとレイテンシの固定バケットヒストグラムを格納する。ヒストグラムは加算できるため、任意の範囲に対するパーセンタイルは、バケットを合計して目標の順位まで歩くことで計算される。パーセンタイルのパーセンタイルは無意味になる。これはそうではない。
生のウィンドウ内のクエリは正確なパーセンタイルを返します。それを超えるとヒストグラムから算出され、それを含むバケットの上限として報告されます。すべてのレスポンスには exact: true|false が付与されます。
再起動とリブート
再開状態はソースごとに管理されます(journald カーソル、ファイルの inode+オフセット、または docker タイムスタンプ)が、SIGTERM でフラッシュされます。これを「単なる可能性」ではなく「安全」にする理由は2つあります。
書き込みは冪等です。 すべてのリクエスト行とイベント行には UNIQUE インデックスの下に dedupe_key が付与され、挿入は INSERT OR IGNORE です。すでに保存済みの行を再読み取りしても何も起きないため、ingest は繰り返し実行でき、再開が安全に重複することもありません。
使用できないカーソルは信頼されません。 カーソルが指すジャーナルがローテーションで消えていた場合、journalctl はカーソルに埋め込まれたタイムスタンプを使って静かに位置を再調整し、正しく再開します。しかし、未来のタイムスタンプが刻まれたカーソル(クロックスキュー、復元されたデータベース)は、journalctl が到着しないエントリを待ち続け、収集が静かに停止します。そのようなカーソルは起動時に拒否されます。フォロー試行が2回連続で何も返さなかった場合も同様です。
systemctl stop は1秒未満で完了します。systemd は Result=success とともに ExecMainStatus=15 を記録します。uvicorn はシャットダウン後に意図的にシグナルを再送出するため、SIGTERM による終了はクラッシュではなく想定内の動作です。
正直な制限事項
並列実行時の帰属(Ollama)。 llama.cpp のタイミング行のタスク ID とアクセス行のステータスは決して同時に現れないため、到着順で結合されます。処理中のリクエストが1つの場合は正確です。2つがアクセス行の出力前に完了した場合、ログにはそれらを区別する情報がなく、推測ではなく attribution='ambiguous' として保存されます。値は exact、ambiguous、none(ランナーに到達する前に失敗 — モデルも推測されません)、orphan(アクセス行のないタイミング)です。開発ホストでの2日間のバックフィルでは、OLLAMA_NUM_PARALLEL=1 の下で exact 174件、ambiguous 9件、orphan 4件でした。並行リクエストが多いほど ambiguous の割合が高くなると予想されます。
vLLM のトークンカウンタとリクエストカウンタはリクエスト単位で整合していません。 generation_tokens_total はトークンがストリーミングされるにつれて進み、request_success_total はリクエストが完了したときだけ進みます。したがって、短いウィンドウではこれらは重複するが異なるリクエストの集合を表しており、一方を他方で割ってもリクエストあたりのトークン数にはなりません。API はこれを counters_aligned: false で示し、ダッシュボードも vLLM タブでその旨を表示します。
vLLM のリクエスト単位の情報はありません。 上記で説明済みです。vLLM からリクエスト単位の詳細が必要な場合、リクエストレベルのログが唯一の情報源ですが、そこにはプロンプトテキストが記録されます — このツールは意図的にそれを保存しません。
ログは供給源であり、アーカイブではありません。 ジャーナルは journald.conf によっては1〜2日分しか保持しない場合があります。SQLite ファイルが履歴の保管庫です。ログが inferwatch の実行より速くローテーションした場合、そのギャップは回復できません。
同じマイクロ秒内のバイト単位で同一の2つのイベントは1つにまとめられます。 イベントの dedupe キーはその値から構築されるため、同一の警告がマイクロ秒以内に2回記録されても行は1つだけ残ります。これは保証された冪等性のための意図的なトレードオフです — 繰り返された警告を落とすことは、履歴を重複させることより優れています。
ヘルスチェックトラフィックは分離され、カウントされません。 HEAD / と GET /api/ps は開発ホストでのリクエストの96%を占めていました。これらは class='health' として保存され、dashboard.include_health がオンの場合を除き推論レートから除外されます。requests_all には常に含まれます。
ログ形式とメトリクス名に依存します。 Ollama のタイミング行はデバッグ出力であり、契約ではありません。また vLLM はリリース間でメトリクス名を変更します。tests/test_parse.py には逐語的なフィクスチャ行が、tests/test_vllm.py には実際の /metrics 抜粋が保持されています。アップグレードでパースが壊れた場合、それらのテストが失敗し、何が変わったかを示します。
テスト
python -m unittest discover -s tests -t .CI は Python 3.10 から 3.14 で実行され、さらにホイールをビルドし、ダッシュボードの HTML がその中に含まれていることを検証し、空のディレクトリからクリーンな環境にインストールしてソースツリーがパッケージングのミスを隠せないようにするパッケージングジョブも実行します。ネットワーク、GPU、エンジンは不要です。パーサーフィクスチャは実際のログ行と実際の /metrics 抜粋を逐語的に使用します。カバレッジには、コリレータの結合とその ambiguous/orphan/failed ケース、ヒストグラムのパーセンタイルとロールアップの冪等性、スキーママイグレーション、シグナルセーフなコミット、カーソル検証、ファイルのローテーションと切り詰め、タイムスタンプの単調性、カウンタリセット検出、設定の優先順位とロックが含まれます。このファイル内の設定リファレンスはスペックから生成され、逸脱した場合はテストが失敗します。ダッシュボードの JavaScript は純 Python パーサーで構文チェックされ、そのフォーマッタは実際の JS エンジンで実行されます(どちらもオプション — Node は不要です)。
.venv/bin/python scripts/gen-config-docs.py --check # docs match the code?レイアウト
inferwatch/parse.py ollama log line parsers (pure, fixture-tested)
inferwatch/readers.py journald / file / docker log readers
inferwatch/collect.py correlator, GPU + model pollers, maintainer
inferwatch/vllm.py Prometheus scraper, delta and reset handling
inferwatch/gpuproc.py maps GPUs to the process tree holding them
inferwatch/vllm_metrics.py vLLM query layer
inferwatch/metrics.py ollama query layer (shared by API and MCP)
inferwatch/store.py SQLite schema, rollups, histograms, retention
inferwatch/config.py typed settings spec, precedence, source validation
inferwatch/supervisor.py builds and rebuilds collectors from the sources table
inferwatch/api.py FastAPI endpoints + SSE
inferwatch/web/index.html dashboard (single file, no CDN, no build step)
inferwatch/mcp_server.py MCP server (read-only)
inferwatch/main.py serve / ingest / stats / sourcesコントリビューション
Issue とプルリクエストを歓迎します。変更を受け入れやすくする2つのポイント:
python -m unittest discover -s tests -t .が通ること。inferwatch/config.pyに触れた場合は、python scripts/gen-config-docs.pyを実行して README の設定リファレンスがコードと一致するようにすること — テストで強制されます。
パーサーの変更には、既存のテストと同様に、実際のエンジン出力から逐語的にコピーしたフィクスチャ行を添付してください。ログ形式とメトリクス名は契約ではなく、実際のフィクスチャがあれば将来の破損が明確になります。
ライセンス
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI agents to query Prometheus metrics and Loki logs for intelligent alert investigation and troubleshooting. Provides service discovery, metric querying, log searching, and correlation tools to help identify root causes of issues.9
- FlicenseNot gradedqualityDmaintenanceGives AI agents real-time access to system metrics, process management, and container orchestration.
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct access to Red Hat OpenShift AI observability data, enabling querying of Prometheus metrics, Alertmanager alerts, Loki logs, Grafana dashboards, and Kubernetes cluster state to troubleshoot vLLM inference workloads.4MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to monitor real-time CPU, RAM, and disk usage on the local machine.
Related MCP Connectors
Provide real-time data querying and visualization by integrating Tako with your agents. Generate o…
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/floatsmyboat/inferwatch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server