# MCP health report

**URL:** https://mcp.aginera.ai/mcp
**Checked:** 2026-09-21T08:12:35.859Z
**Verdict:** FAIL (score 65/100, issues 1, warnings 1)

## Checks
- ✅ 401だが WWW-Authenticate を返す(仕様どおりの拒否)
- ⚠️ レガシー initialize を HTTP 401 で拒否。ディレクトリのヘルスチェックがここで落ちる(自社の実測で確認)
- ❌ tools/list が HTTP 401 で閉じている。カタログ/ディレクトリが内容を索引できない
- ✅ tools/call は認証で守られている(正しい)
- ✅ resource_metadata を名乗っている(RFC 9728)

## Raw
| probe | HTTP |
|---|---|
| initialize (MCP-Protocol-Version) | 401 |
| initialize (legacy, no header) | 401 |
| tools/list (no auth) | 401 |
| tools/call (no auth) | 401 |


**WWW-Authenticate:** `Bearer realm="aginera-mcp", error="invalid_token", error_description="Missing bearer token.", resource_metadata="https://mcp.aginera.ai/.well-known/oauth-protected-resource"`

## How to fix
1. **Open discovery, lock execution.** Answer `initialize` and `tools/list` without credentials; keep `tools/call` behind auth. (Measured: every healthy server in a 110-server sample exposes tools; most unhealthy ones expose none.)
2. **Never reject a legacy handshake.** Directory health checks identify as legacy clients and omit `MCP-Protocol-Version`. Rejecting it is what kept our own server unhealthy for three days.
3. **On 401, always send `WWW-Authenticate: Bearer realm="…"`.** A 401 without it looks broken to crawlers.
4. **Optionally advertise `resource_metadata`** (RFC 9728) in that header and serve the document at that URL.

Generated by https://mcp-health.rowu.workers.dev
