Skip to main content

Validation and troubleshooting

Run these checks from the actual client execution environment. A successful request from an administrator laptop does not prove that a hosted vendor service can reach the gateway.

Verify the public authentication surface​

These commands do not send credentials or invoke an upstream tool. Replace the URL with the complete dashboard-provided endpoint and its matching metadata path.

curl --silent --show-error --include \
'https://mcpgateway.quilr.ai/.well-known/oauth-protected-resource/quilrone/mcp'

curl --silent --show-error --include \
'https://mcpgateway.quilr.ai/.well-known/oauth-authorization-server/quilrone'

curl --silent --show-error --include \
'https://mcpgateway.quilr.ai/quilrone/mcp' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
--data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"quilr-admin-diagnostic","version":"1.0"}}}'

Expected results:

  • Metadata endpoints return JSON and the intended external HTTPS origin.
  • The protected resource matches the MCP URL and identifies the matching issuer.
  • The request without credentials returns 401 with a Bearer challenge pointing to resource metadata. This is expected authentication discovery, not a failed login.
  • An HTML login page, reverse-proxy redirect, WAF challenge, or unrelated 404 means the client has not reached a usable MCP authentication surface.

For a tenant-scoped URL, include /quilrone/<quilr-tenant-id> in both discovery paths. For a direct endpoint, follow the actual WWW-Authenticate metadata URL rather than assuming the OneMCP issuer.

Validate through the client​

After adding and authenticating the server:

  1. Confirm initialization completes and the tool catalog loads. Use the client's server logs/status panel if it fails.
  2. Ask for available Quilr connectors. list_mcp_connections reports connection state for visible MCPs.
  3. With dynamic tool calling on, use find_relevant_tools to discover a suitable read-only operation, then call_tool with its returned schema. With it off, select the prefixed upstream tool.
  4. Complete any upstream sign-in or personal-key connection in the gateway dashboard, connector card, or returned connection flow. Re-run the original request afterwards.
  5. Check gateway logs for the expected employee, MCP, tool, policy result, and request time.

A client may show an in-chat connection card, a URL flow, or plain text depending on its capabilities. Use the dashboard as the fallback; do not rely on every client rendering interactive MCP Apps.

For raw authenticated protocol diagnostics, use a real MCP client or Inspector. It must initialize, send the initialized notification, retain returned session IDs, use the negotiated protocol version, and then list/call tools. A standalone curl tools/list is not an end-to-end session validation.

Symptom reference​

SymptomLikely boundaryAdministrator action
Custom MCP option is absentClient plan, role, version, or workspace policyCheck the client-specific guide and current vendor documentation; enable the supported organization control
404 or dashboard HTML instead of MCPWrong host/path, proxy rewrite, ambiguous slugCopy the complete dashboard URL; prefer backend UUID where necessary
TLS/DNS failure or timeoutNetwork from the actual runtimeVerify certificate, DNS, egress and hosted-service ingress; laptop VPN access alone is insufficient
Metadata points to another hostnameGateway canonical-origin configurationHave the operator check GATEWAY_BASE_URL; use the configured deployment consistently
Initial 401 before loginNormal discoveryFollow the Bearer resource-metadata challenge and sign in
Repeated 401 after sign-inRevoked/wrong token, lost header, endpoint-family mismatchCheck proxy header forwarding; reconnect the exact MCP URL; verify the token's resource and tenant compatibility
Form requires client secretWrong registration mode or unsupported confidential-client requirementChoose dynamic registration where available; OneMCP does not issue a secret
Missing authorization code during renewalClient attempted refresh-token grantOneMCP currently has no downstream refresh grant; reconnect and review client compatibility
PKCE, ID-token, audience, or scope-validation requirement failsUnsupported authentication requirementCapture the exact requirement and escalate; do not disable required verification to force rollout
Wrong organization or unknown tenantWrong Quilr tenant path or sign-in identityCompare the dashboard URL and company account; do not substitute an Entra tenant ID
API token rejectedWrong backend, missing/invalid mcpuser, domain or agent mismatchUse the issuing server's direct endpoint; verify employee domain and selected agent
Sign-in succeeds but tools are missingTool visibility, disabled server, user preference, access rule, or smart modeCheck OneMCP discovery tools, user-visible connectors, Allowed Agents and effective policies
Tool says connection is neededUpstream user credentials missing/expiredConnect that provider as the same user; a successful gateway login does not grant upstream access
Client refuses a tool before a gateway log appearsClient tool approval or workspace policyCheck vendor tool permissions and managed allowlists
Gateway policy denies a toolGateway access, tool visibility, guardrail, quota, or published policyInspect the denial reason and change only the intended administrative rule
Tool schema stays old after configuration changeClient cached catalog or published integration snapshotRefresh the client integration's metadata and retest in a new conversation
Disconnect/reconnect loopClient session, ingress buffering/timeout, upstream transport failureCapture timestamps and session-related logs; verify streaming/header handling and use current client version

Safe support bundle​

Include the exact client product, version, workspace type, gateway origin, endpoint family, timestamp with timezone, HTTP status, and redacted error message. Include non-secret discovery JSON and the stage that fails: discovery, registration, sign-in, code exchange, initialization, listing, or tool invocation.

Remove access tokens, client secrets, cookies, authorization codes, connection tickets, API keys, personal tool arguments, and sensitive results. A screenshot of the configuration form should show field names and non-secret URLs, not credentials.

Rollout acceptance record​

CheckRecord
Canonical URL and metadata consistentPass/fail + date
Fresh user sign-inClient version + result
Tool catalog and expected discovery modeResult
Approved read-only operationTool name + request time
Correct employee attributionResult
Excluded user/tool remains blockedResult
Restart and reconnectResult
Upstream reconnectResult
Client-specific expiry/refresh limitations acceptedOwner + result

See administrator checklist for distribution and authentication reference for exact fields.