Ninar AI
Audit your brand's visibility across ChatGPT, Gemini, Claude, Perplexity + 6 more engines.
Executive verdict
Current trust snapshot
trustsnap_15e797967e832851Own this MCP?
Claim ownership, prove control with a GitHub, DNS, or HTTP token challenge, revalidate now, publish a badge, and configure monitoring.
POST /v1/servers/ai.ninar/ninar/revalidateBadge embed
[](https://verify.sentinelsignal.io/servers/ai.ninar/ninar)
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/decideAlert subscription types
MCP Runtime hosting
Verify Hosted MCP turns a trusted server report into a managed remote MCP endpoint with GitHub deployment provenance, sandbox policy, encrypted secrets, release history, rollback, and audit/usage events.
/hosted/{namespace}/{name}/mcp| Deployment | Status | Endpoint | Release |
|---|---|---|---|
| No hosted runtime deployments yet. | |||
Production readiness class
Evidence confidence
Recommended for
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Errorstep_up_auth_probe• OKconnector_replay_probe• Error — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Error
Evidence provenance
action_safety_probe• Warning
Evidence provenance
tool_snapshot_probe• Errorconnector_replay_probe• Error
Why compatibility is limited by client
Remediation checklist
Transport compliance should be in good shape.search fetch only is not yet satisfiedsafe for company knowledge is not yet satisfiedsafe for messages api remote mcp is not yet satisfiedTransport compliance issues should be resolved before wider client rollout.
Remediation checklist
Transport behavior should match Claude-compatible HTTP expectations.search fetch only is not yet satisfiedsafe for company knowledge is not yet satisfiedsafe for messages api remote mcp is not yet satisfiedTransport compliance issues should be resolved before wider client rollout.
Remediation checklist
- No explicit blockers recorded.
Verdict traces
tool_snapshot_changed• high • Tool snapshot changedconnector_refresh_breaking• high • Connector refresh would break
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | connector_refresh_breakage |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | connector_refresh_breakage |
unsafe_for_write_actions |
Publishing allowed | action_safety_probe | live_validation | none |
snapshot_churn_risk |
High | tool_snapshot_probe, connector_replay_probe | history | connector_refresh_breakage |
Publishability policy profiles
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: Yes
- Admin Refresh Required: Yes
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: Yes
- Admin Refresh Required: Yes
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Passes
- frozen_tool_snapshot_refresh: Likely to fail
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Passes
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewPublic server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| May 22, 2026 10:06:55 AM UTC | Latest validation: healthy | Score 72.6 with status healthy. |
| May 22, 2026 10:06:55 AM UTC | Score changed | Score delta -1.1 versus the previous run. |
| May 22, 2026 10:06:55 AM UTC | Tool snapshot changed | Added 1, removed 1, and changed 0 tool contracts. |
| May 22, 2026 10:06:55 AM UTC | Connector refresh would break | The latest tool snapshot introduces breaking changes for frozen connector snapshots. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: https://ninar.ai
- Docs: none
- Support: none
- Icon: none
- Remote endpoint: https://ninar.ai/mcp
- Server card: none
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
get_latest_score |
read admin | Medium | none | No explicit safeguard hints detected. |
scan_visibility |
read exec network admin | Medium | command execution | Safeguards hinted in metadata. |
list_content_gaps |
read admin | Medium | none | No explicit safeguard hints detected. |
generate_content |
other | Low | none | No explicit safeguard hints detected. |
audit_brand_visibility |
exec | Medium | command execution | No explicit safeguard hints detected. |
Write-action governance
Status detail: 2 exec-capable tool(s); auth boundary is oauth or auth required with 1 safeguard(s) and 0 confirmation signal(s).
Exec-capable tools are medium risk here because they are scoped/authenticated and not destructive, but they still require confirmation safeguards before write-safe publishing.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
| No high-risk tools were detected on the latest run. | |||
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
audit_brand_visibility | Medium | command execution |
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Why this score?
Algorithmic score breakdown
Compatibility profiles
Connector URL: https://ninar.ai/mcp # Complete OAuth in the client when prompted. # Server: ai.ninar/ninar
{
"mcpServers": {
"ninar": {
"command": "npx",
"args": ["mcp-remote", "https://ninar.ai/mcp"]
}
}
}
smithery mcp add "https://ninar.ai/mcp"
curl -sS https://ninar.ai/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Add confirmation and dry-run semantics for risky actions | High-risk write, delete, exec, or egress tools should communicate safeguards clearly. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| High | Associate roots, sampling, and elicitation with active client requests | Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Keep connector refreshes backward compatible | Managed connector clients freeze tool snapshots, so removed tools, new required args, and breaking output changes can break published integrations after refresh. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Publish a complete server card | Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. | Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.Playbook
|
| High | Respond to connector refresh would break | The latest tool changes would break a previously published frozen tool snapshot after refresh. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Respond to tool snapshot changed | Tools were added, removed, or materially changed between the latest two validations. | Publish a first-class changelog for tool additions, removals, and breaking schema changes.Playbook
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Reduce tool-surface churn | Frequent add/remove or output-shape drift makes published connectors and cached tool snapshots brittle. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Repair prompts/list or stop advertising prompts | Prompt metadata should either work live or be removed from the advertised capability set. | Only advertise prompts if prompts/list works and prompt arguments are documented.Playbook
|
| Medium | Repair resources/list or stop advertising resources | Resource metadata should either work live or be removed from the advertised capability set. | Only advertise resources if resources/list works and resources expose stable URIs/types.Playbook
|
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
| Low | Publish newer MCP capability signals | Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Transport Compliance | 0/4 | -4.0 |
| Recovery Semantics | 0/4 | -4.0 |
| Connector Replay | 1.5/4 | -2.5 |
| Utility Coverage | 2/4 | -2.0 |
| Safety Transparency | 2/4 | -2.0 |
| Result Shape Stability | 2/4 | -2.0 |
| Resource Contract | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
| Prompt Contract | 2/4 | -2.0 |
| Execution Sandbox Safety | 2/4 | -2.0 |
| Backward Compatibility | 2/4 | -2.0 |
Validation diff
Regressed checks: connector_replay_probe, tool_snapshot_probe
Improved checks: action_safety_probe
| Component | Previous | Latest | Delta |
|---|---|---|---|
execution_sandbox_safety_score | 3.75 | 2.0 | -1.75 |
connector_replay_score | 3.0 | 1.5 | -1.5 |
trust_confidence_score | 1.75 | 2.94 | 1.19 |
least_privilege_scope_score | 2.0 | 3.0 | 1.0 |
registry_consistency_score | 2.6 | 2.0 | -0.6 |
error_contract_score | 2.83 | 2.43 | -0.4 |
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header, bad_protocol_not_rejected
Request association
Utility coverage
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Likely to fail |
|
| OAuth-required connect | Passes |
|
| Safe write flow with confirmation | Degraded |
|
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | n/a |
| Version | n/a | n/a |
| Homepage | n/a | n/a |
Active alerts
- Tool snapshot changed (high)
Tools were added, removed, or materially changed between the latest two validations. - Connector refresh would break (high)
The latest tool changes would break a previously published frozen tool snapshot after refresh.
Aliases & registry graph
| Identifier | Source | Canonical | Score |
|---|---|---|---|
ai.ninar/ninar |
official_registry | yes | 72.64 |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Install snippets
Connector URL: https://ninar.ai/mcp # Complete OAuth in the client when prompted. # Server: ai.ninar/ninar
{
"mcpServers": {
"ninar": {
"command": "npx",
"args": ["mcp-remote", "https://ninar.ai/mcp"]
}
}
}
smithery mcp add "https://ninar.ai/mcp"
curl -sS https://ninar.ai/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.ai.ninar/ninar.Claims & monitoring
No verified maintainer claim recorded.
Alert routing
| Watch | Team | Channels | Minimum severity |
|---|---|---|---|
| No active watch destinations. | |||
Maintainer analytics
Maintainer response quality
Maintainer annotations
No maintainer annotations have been recorded yet.
Maintainer rebuttals & expected behavior
No maintainer rebuttals or expected-behavior overrides are recorded yet.
Latest validation evidence
Failures
openid_configurationClient error '404 Not Found' for url 'https://ninar.ai/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404server_cardClient error '404 Not Found' for url 'https://ninar.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404transport_compliance_probeIssues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200).
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Warning | n/a | 2 exec-capable tool(s); auth present; safeguards=1; confirmation=none. |
advanced_capabilities_probe |
Missing | n/a | No advanced MCP capability signals detected. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: transport compliance, connector replay, server card. |
connector_replay_probe |
Error | n/a | Would break after refresh; removed tools=1, required-arg breaks=0, output breaks=0. |
determinism_probe |
OK | 34.6 ms | Check completed |
initialize |
OK | 34.7 ms | Protocol 2024-11-05 |
interactive_flow_probe |
OK | n/a | Check completed |
oauth_authorization_server |
OK | 53.2 ms | authorization_endpoint, code_challenge_methods_supported, grant_types_supported, issuer |
oauth_protected_resource |
OK | 61.9 ms | 1 authorization server(s) |
official_registry_probe |
OK | n/a | Check completed |
openid_configuration |
Error | 57.8 ms | Client error '404 Not Found' for url 'https://ninar.ai/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
probe_noise_resilience |
OK | 47.6 ms | Fetched https://ninar.ai/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
Missing | 37.7 ms | not supported |
protocol_version_probe |
Warning | n/a | Claims 2024-11-05; 3 release(s) behind 2025-11-25. |
provenance_divergence_probe |
OK | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
Missing | n/a | not advertised |
resources_list |
Missing | 51.0 ms | not supported |
server_card |
Error | 121.3 ms | Client error '404 Not Found' for url 'https://ninar.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
OK | n/a | Scopes=content:write, visibility:read, visibility:scan; broad scopes=content:write. |
tool_snapshot_probe |
Error | n/a | Check completed |
tools_list |
OK | 33.7 ms | 5 tool(s) exposed |
transport_compliance_probe |
Error | 33.5 ms | Issues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200). |
utility_coverage_probe |
Missing | 33.4 ms | No completions evidence; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": true,
"confirmation_signals": [],
"safeguard_count": 1,
"summary": {
"bulk_access_tools": 0,
"capability_distribution": {
"admin": 3,
"exec": 2,
"network": 1,
"other": 1,
"read": 3
},
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 2,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 1,
"medium": 4
},
"secret_tools": 0,
"tool_count": 5
}
},
"latency_ms": null,
"status": "warning"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [],
"enabled_count": 0,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "missing"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"connector_replay",
"server_card"
],
"criteria": {
"action_safety": true,
"auth_flow": true,
"connector_replay": false,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 0,
"tool_count": 5,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [
"audit_brand_visibility"
],
"additive_output_changes": [],
"backward_compatible": false,
"output_breaks": [],
"removed_tools": [
"start_audit"
],
"required_arg_breaks": [],
"would_break_after_refresh": true
},
"latency_ms": null,
"status": "error"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "7d241749ae0dddbbdec811c435123d14c46a25e0ec2118706136931a4996d97d",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 34.56,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {}
},
"protocolVersion": "2024-11-05",
"serverInfo": {
"name": "ninar-ai",
"version": "1.0.0"
}
}
},
"url": "https://ninar.ai/mcp"
},
"latency_ms": 34.66,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": true,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "ok"
},
"oauth_authorization_server": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"authorization_endpoint": "https://ninar.ai/mcp/oauth/authorize",
"code_challenge_methods_supported": [
"S256"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"issuer": "https://ninar.ai",
"registration_endpoint": "https://ninar.ai/mcp/oauth/register",
"response_types_supported": [
"code"
],
"revocation_endpoint": "https://ninar.ai/mcp/oauth/revoke",
"scopes_supported": [
"visibility:read",
"visibility:scan",
"content:write"
],
"token_endpoint": "https://ninar.ai/mcp/oauth/token",
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"none"
]
},
"url": "https://ninar.ai/.well-known/oauth-authorization-server"
},
"latency_ms": 53.21,
"status": "ok"
},
"oauth_protected_resource": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"authorization_servers": [
"https://ninar.ai"
],
"bearer_methods_supported": [
"header"
],
"resource": "https://ninar.ai/mcp",
"resource_documentation": "https://ninar.ai/integrations/claude",
"scopes_supported": [
"visibility:read",
"visibility:scan",
"content:write"
]
},
"url": "https://ninar.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 61.86,
"status": "ok"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.ninar/ninar",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"error": "Client error '404 Not Found' for url 'https://ninar.ai/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://ninar.ai/.well-known/openid-configuration"
},
"latency_ms": 57.76,
"status": "error"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"url": "https://ninar.ai/robots.txt"
},
"latency_ms": 47.59,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: prompts/list"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://ninar.ai/mcp"
},
"latency_ms": 37.66,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2024-11-05",
"lag_days": 385,
"latest_known_version": "2025-11-25",
"releases_behind": 3,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method not found: resources/list"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://ninar.ai/mcp"
},
"latency_ms": 50.96,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://ninar.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://ninar.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 121.3,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2024-11-05",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [
"content:write"
],
"challenge_headers": [],
"minimal_scope_documented": true,
"oauth_present": true,
"scope_specificity_ratio": 0.4,
"step_up_signals": [],
"supported_scopes": [
"content:write",
"visibility:read",
"visibility:scan"
]
},
"latency_ms": null,
"status": "ok"
},
"tool_snapshot_probe": {
"details": {
"added": [
"audit_brand_visibility"
],
"changed_outputs": [],
"current_tool_count": 5,
"previous_tool_count": 5,
"removed": [
"start_audit"
],
"similarity": 0.6667
},
"latency_ms": null,
"status": "error"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get my latest AI Visibility Index score"
},
"description": "Get the AI Visibility Index (0-100) for the signed-in user's most recently scanned brand, broken down by engine. Requires a free Ninar account (no credit card).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_latest_score",
"title": "Get my latest AI Visibility Index score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Run an AI visibility scan"
},
"description": "Run an AI visibility scan for a brand. Pass `city` for a local-business check (ChatGPT + Gemini, city-scoped). Omit `city` for a multi-engine GEO scan across ChatGPT, Gemini, Perplexity, Claude, AI Overviews \u2014 engine count scales with the user's Ninar plan (free = 2).",
"inputSchema": {
"properties": {
"brand_name": {
"description": "Brand to scan, e.g. 'Ninar', 'Joe's Pizza'.",
"type": "string"
},
"category": {
"description": "Category, e.g. 'AI visibility platform', 'pizza restaurant'.",
"type": "string"
},
"city": {
"description": "City for a local-business check. Omit for multi-engine GEO scan.",
"type": "string"
},
"country": {
"description": "Optional ISO country: us, gb, in, eu.",
"type": "string"
},
"use_case": {
"description": "Optional GEO use case, e.g. 'for sales teams'.",
"type": "string"
},
"website": {
"description": "Optional brand URL for GEO citation matching.",
"type": "string"
}
},
"required": [
"brand_name",
"category"
],
"type": "object"
},
"name": "scan_visibility",
"title": "Run an AI visibility scan"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List content gaps from my latest scan"
},
"description": "List AI-generated content suggestions (FAQs, differentiators, use cases, about copy) the signed-in user can publish to close visibility gaps found in their latest scan.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_content_gaps",
"title": "List content gaps from my latest scan"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Generate AI-optimized content for a gap"
},
"description": "Generate fresh AI-optimized content for a specific gap type. Pro plan or higher required.",
"inputSchema": {
"properties": {
"gap_type": {
"description": "Which content block to generate.",
"enum": [
"faq",
"about",
"use_cases",
"differentiators"
],
"type": "string"
}
},
"required": [
"gap_type"
],
"type": "object"
},
"name": "generate_content",
"title": "Generate AI-optimized content for a gap"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Audit a brand entity via System of Record adjudication"
},
"description": "Run a System of Record adjudication on an entity surfaced by an AI engine (e.g. is 'Banner Life' a valid PMI competitor to Enact?). Uses dual-model consensus (Haiku 4.5 + Gemini Flash, escalating to Sonnet 4.6 + Gemini Pro on disagreement) against a versioned taxonomy. Returns the Why Drawer headline, audit trail, and per-model judgments. Pro plan or higher required.",
"inputSchema": {
"properties": {
"entity": {
"description": "Entity name to adjudicate, e.g. 'Banner Life', 'Enact Solar'.",
"type": "string"
},
"raw_evidence": {
"description": "Source text the entity appeared in. Should contain 'raw_answer_excerpt' and optionally 'entity_sentence' and 'source_probe_id'.",
"properties": {
"entity_sentence": {
"type": "string"
},
"raw_answer_excerpt": {
"type": "string"
},
"source_probe_id": {
"type": "string"
}
},
"required": [
"raw_answer_excerpt"
],
"type": "object"
},
"taxonomy_id": {
"description": "Taxonomy registry to validate against. Default: pmi.v1",
"type": "string"
}
},
"required": [
"entity",
"raw_evidence"
],
"type": "object"
},
"name": "audit_brand_visibility",
"title": "Audit a brand entity via System of Record adjudication"
}
]
}
},
"url": "https://ninar.ai/mcp"
},
"latency_ms": 33.69,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get my latest AI Visibility Index score"
},
"description": "Get the AI Visibility Index (0-100) for the signed-in user's most recently scanned brand, broken down by engine. Requires a free Ninar account (no credit card).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_latest_score",
"title": "Get my latest AI Visibility Index score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Run an AI visibility scan"
},
"description": "Run an AI visibility scan for a brand. Pass `city` for a local-business check (ChatGPT + Gemini, city-scoped). Omit `city` for a multi-engine GEO scan across ChatGPT, Gemini, Perplexity, Claude, AI Overviews \u2014 engine count scales with the user's Ninar plan (free = 2).",
"inputSchema": {
"properties": {
"brand_name": {
"description": "Brand to scan, e.g. 'Ninar', 'Joe's Pizza'.",
"type": "string"
},
"category": {
"description": "Category, e.g. 'AI visibility platform', 'pizza restaurant'.",
"type": "string"
},
"city": {
"description": "City for a local-business check. Omit for multi-engine GEO scan.",
"type": "string"
},
"country": {
"description": "Optional ISO country: us, gb, in, eu.",
"type": "string"
},
"use_case": {
"description": "Optional GEO use case, e.g. 'for sales teams'.",
"type": "string"
},
"website": {
"description": "Optional brand URL for GEO citation matching.",
"type": "string"
}
},
"required": [
"brand_name",
"category"
],
"type": "object"
},
"name": "scan_visibility",
"title": "Run an AI visibility scan"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List content gaps from my latest scan"
},
"description": "List AI-generated content suggestions (FAQs, differentiators, use cases, about copy) the signed-in user can publish to close visibility gaps found in their latest scan.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_content_gaps",
"title": "List content gaps from my latest scan"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Generate AI-optimized content for a gap"
},
"description": "Generate fresh AI-optimized content for a specific gap type. Pro plan or higher required.",
"inputSchema": {
"properties": {
"gap_type": {
"description": "Which content block to generate.",
"enum": [
"faq",
"about",
"use_cases",
"differentiators"
],
"type": "string"
}
},
"required": [
"gap_type"
],
"type": "object"
},
"name": "generate_content",
"title": "Generate AI-optimized content for a gap"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Audit a brand entity via System of Record adjudication"
},
"description": "Run a System of Record adjudication on an entity surfaced by an AI engine (e.g. is 'Banner Life' a valid PMI competitor to Enact?). Uses dual-model consensus (Haiku 4.5 + Gemini Flash, escalating to Sonnet 4.6 + Gemini Pro on disagreement) against a versioned taxonomy. Returns the Why Drawer headline, audit trail, and per-model judgments. Pro plan or higher required.",
"inputSchema": {
"properties": {
"entity": {
"description": "Entity name to adjudicate, e.g. 'Banner Life', 'Enact Solar'.",
"type": "string"
},
"raw_evidence": {
"description": "Source text the entity appeared in. Should contain 'raw_answer_excerpt' and optionally 'entity_sentence' and 'source_probe_id'.",
"properties": {
"entity_sentence": {
"type": "string"
},
"raw_answer_excerpt": {
"type": "string"
},
"source_probe_id": {
"type": "string"
}
},
"required": [
"raw_answer_excerpt"
],
"type": "object"
},
"taxonomy_id": {
"description": "Taxonomy registry to validate against. Default: pmi.v1",
"type": "string"
}
},
"required": [
"entity",
"raw_evidence"
],
"type": "object"
},
"name": "audit_brand_visibility",
"title": "Audit a brand entity via System of Record adjudication"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 33.46,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 33.36,
"status": "missing"
}
},
"failures": {
"openid_configuration": {
"error": "Client error '404 Not Found' for url 'https://ninar.ai/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://ninar.ai/.well-known/openid-configuration"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://ninar.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://ninar.ai/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get my latest AI Visibility Index score"
},
"description": "Get the AI Visibility Index (0-100) for the signed-in user's most recently scanned brand, broken down by engine. Requires a free Ninar account (no credit card).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_latest_score",
"title": "Get my latest AI Visibility Index score"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Run an AI visibility scan"
},
"description": "Run an AI visibility scan for a brand. Pass `city` for a local-business check (ChatGPT + Gemini, city-scoped). Omit `city` for a multi-engine GEO scan across ChatGPT, Gemini, Perplexity, Claude, AI Overviews \u2014 engine count scales with the user's Ninar plan (free = 2).",
"inputSchema": {
"properties": {
"brand_name": {
"description": "Brand to scan, e.g. 'Ninar', 'Joe's Pizza'.",
"type": "string"
},
"category": {
"description": "Category, e.g. 'AI visibility platform', 'pizza restaurant'.",
"type": "string"
},
"city": {
"description": "City for a local-business check. Omit for multi-engine GEO scan.",
"type": "string"
},
"country": {
"description": "Optional ISO country: us, gb, in, eu.",
"type": "string"
},
"use_case": {
"description": "Optional GEO use case, e.g. 'for sales teams'.",
"type": "string"
},
"website": {
"description": "Optional brand URL for GEO citation matching.",
"type": "string"
}
},
"required": [
"brand_name",
"category"
],
"type": "object"
},
"name": "scan_visibility",
"title": "Run an AI visibility scan"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List content gaps from my latest scan"
},
"description": "List AI-generated content suggestions (FAQs, differentiators, use cases, about copy) the signed-in user can publish to close visibility gaps found in their latest scan.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_content_gaps",
"title": "List content gaps from my latest scan"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": false,
"title": "Generate AI-optimized content for a gap"
},
"description": "Generate fresh AI-optimized content for a specific gap type. Pro plan or higher required.",
"inputSchema": {
"properties": {
"gap_type": {
"description": "Which content block to generate.",
"enum": [
"faq",
"about",
"use_cases",
"differentiators"
],
"type": "string"
}
},
"required": [
"gap_type"
],
"type": "object"
},
"name": "generate_content",
"title": "Generate AI-optimized content for a gap"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Audit a brand entity via System of Record adjudication"
},
"description": "Run a System of Record adjudication on an entity surfaced by an AI engine (e.g. is 'Banner Life' a valid PMI competitor to Enact?). Uses dual-model consensus (Haiku 4.5 + Gemini Flash, escalating to Sonnet 4.6 + Gemini Pro on disagreement) against a versioned taxonomy. Returns the Why Drawer headline, audit trail, and per-model judgments. Pro plan or higher required.",
"inputSchema": {
"properties": {
"entity": {
"description": "Entity name to adjudicate, e.g. 'Banner Life', 'Enact Solar'.",
"type": "string"
},
"raw_evidence": {
"description": "Source text the entity appeared in. Should contain 'raw_answer_excerpt' and optionally 'entity_sentence' and 'source_probe_id'.",
"properties": {
"entity_sentence": {
"type": "string"
},
"raw_answer_excerpt": {
"type": "string"
},
"source_probe_id": {
"type": "string"
}
},
"required": [
"raw_answer_excerpt"
],
"type": "object"
},
"taxonomy_id": {
"description": "Taxonomy registry to validate against. Default: pmi.v1",
"type": "string"
}
},
"required": [
"entity",
"raw_evidence"
],
"type": "object"
},
"name": "audit_brand_visibility",
"title": "Audit a brand entity via System of Record adjudication"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2024-11-05",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://ninar.ai/mcp",
"server_card_payload": null,
"server_identifier": "ai.ninar/ninar"
}
Known versions
1.0.0
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| May 22, 2026 10:06:55 AM UTC | Healthy | 72.6 | 642.2 ms | 5 |
| May 21, 2026 10:03:30 PM UTC | Healthy | 73.7 | 784.0 ms | 5 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| May 22, 2026 10:06:55 AM UTC | Healthy | 72.6 | 2024-11-05 | oauth_supported | 5 | 0 | tool_snapshot_changed |
| May 21, 2026 10:03:30 PM UTC | Healthy | 73.7 | 2024-11-05 | oauth_supported | 5 | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| May 22, 2026 10:06:54 AM UTC | Completed | Healthy | 642.2 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| May 21, 2026 10:03:29 PM UTC | Completed | Healthy | 784.0 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |