Revuo
Agent-callable B2B SaaS directory: capability-structured, continuously verified listings.
Allow With Approval
trustsnap_f268091f66d373d6.- Utility Coverage
- Step Up Auth
- Resource Contract
- Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
- Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.
- Publish /.well-known/oauth-authorization-server from your issuer and include registration endpoint when supported.
- AI crawler activity
- profile inspection
Dispute this assessment
If any published claim about this server -- its score, a risk flag, a capability classification, or its taxonomy -- is factually wrong, tell us what evidence shows and we will review it. This does not require claiming or verifying ownership of the server first.
Verify responds to disputes within 5 business days and resolves them within 15.
Dispute history
No disputes filed for this server.
Risks
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes | Evidence |
|---|---|---|---|---|---|
tools.get |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"name": {
"description": "Normalized tool name (e.g. 'search_issues', 'send_message')",
"type": "string"
},
"productSlug": {
"description": "Slug of the product that exposes this tool (e.g. 'linear', 'github')",
"type": "string"
}
},
"required": [
"productSlug",
"name"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
categories.list |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
mcp.score_server |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"refresh": {
"default": false,
"description": "When passing slug, force a fresh probe instead of using cached probe data. Default false.",
"type": "boolean"
},
"slug": {
"default": null,
"description": "Product slug whose direct-probe MCP server to score. Mutually exclusive with url.",
"type": [
"string",
"null"
]
},
"url": {
"default": null,
"description": "MCP endpoint URL (HTTPS) to probe and score. Mutually exclusive with slug.",
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
products.get_mcp_setup |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"slug": {
"description": "Product slug (URL-friendly identifier)",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
products.get |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"slug": {
"description": "Product slug (URL-friendly identifier)",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
tools.find_for_task |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"access": {
"default": null,
"description": "Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all \u2014 Open tools are boosted, not required.",
"type": [
"string",
"null"
]
},
"limit": {
"default": 10,
"description": "Maximum number of tool results to return",
"type": "integer"
},
"remoteOnly": {
"default": true,
"description": "If true (default), only return tools from remote-capable MCP servers",
"type": "boolean"
},
"taskDescription": {
"description": "Natural language description of the task you want to accomplish",
"type": "string"
}
},
"required": [
"taskDescription"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
directory.overview |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
rankings.get |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"category": {
"description": "Category slug (e.g. 'pim-software'). Use categories.list for valid slugs.",
"type": "string"
},
"limit": {
"default": 25,
"description": "Max ranked entries to return (caps at 50)",
"type": "integer"
}
},
"required": [
"category"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
tools.search |
read network | Medium | arbitrary network egress freeform input surface | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"access": {
"default": null,
"description": "Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all.",
"type": [
"string",
"null"
]
},
"limit": {
"default": 20,
"description": "Maximum number of results to return",
"type": "integer"
},
"query": {
"description": "Search query to find tools by name or capability. Natural-language phrases work best (semantic search).",
"type": "string"
},
"remoteOnly": {
"default": false,
"description": "If true, only return tools available via remote (network-hosted) MCP servers",
"type": "boolean"
}
},
"required": [
"query"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
tools.list_by_name |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"name": {
"description": "Normalized tool name (e.g. 'search', 'create_issue')",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
tools.changes |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"knownHash": {
"default": null,
"description": "The schema hash you cached earlier (products.get_mcp_setup \u2192 server.schema.hash). Exact-mismatch drift signal.",
"type": [
"string",
"null"
]
},
"server": {
"default": null,
"description": "The server qualifiedName your knownHash belongs to. Required with knownHash on a multi-server product.",
"type": [
"string",
"null"
]
},
"since": {
"default": null,
"description": "ISO-8601 timestamp you last cached at. Reports whether a schema change was recorded after it.",
"type": [
"string",
"null"
]
},
"slug": {
"description": "Product slug whose MCP tool schema to check.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
products.search |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"category": {
"default": null,
"description": "Optional category slug to filter results",
"type": [
"string",
"null"
]
},
"query": {
"description": "Search query \u2014 capability slug or natural-language description; falls back to name match",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
products.find_agent_ready |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"limit": {
"default": 20,
"description": "Maximum number of results to return per page. Caps at 50.",
"type": "integer"
},
"minimumScore": {
"default": 30,
"description": "Minimum composite agent readiness score (0-100). Higher = more agent-ready. 0 returns everything; 50 is a usable threshold.",
"type": "integer"
},
"skip": {
"default": 0,
"description": "Number of results to skip (for pagination). Default 0.",
"type": "integer"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
products.find_by_capability |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"capability": {
"description": "Capability slug ('salesforce-integration') OR natural-language description ('integrates with Salesforce')",
"type": "string"
},
"category": {
"default": null,
"description": "Optional category slug to scope the search (e.g. 'pim', 'tender-management', 'billing')",
"type": [
"string",
"null"
]
},
"limit": {
"default": 20,
"description": "Maximum number of results to return",
"type": "integer"
}
},
"required": [
"capability"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
Write-action governance
Status detail: No unsafe write-action governance gaps detected on the latest validation.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
| No high-risk tools were detected on the latest run. | |||
Recommended runtime policy
No policy blockers under the default policy stance.
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Critical alerts
Compatibility
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• Warningstep_up_auth_probe• Missingconnector_replay_probe• OK — 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• Warning
Evidence provenance
action_safety_probe• OK
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Client compatibility gate details
Remediation checklist
- Add OAuth-based authentication for remote connector auth.
- Support dynamic client registration (DCR) to simplify connector setup.
- Improve OAuth interoperability -- see the OAuth Interop score breakdown.
- Configure OAuth for authenticated remote MCP access.
- Satisfy OAuth, compatibility, and connector-refresh requirements before using the Messages API remote MCP path.
- Resolve transport compliance issues before wider client rollout.
Remediation checklist
- Configure OAuth for authenticated remote MCP access.
- Satisfy OAuth, compatibility, and connector-refresh requirements before using the Messages API remote MCP path.
- Resolve transport compliance issues before wider client rollout.
Remediation checklist
- No explicit blockers recorded.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Not client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Not client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing allowed | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Degraded
- frozen_tool_snapshot_refresh: Passes
- request_association: Not Assessed
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Passes
Recommended for
Evidence
Current trust snapshot
trustsnap_f268091f66d373d6Canonical machine links
Evidence confidence
Latest validation evidence
Failures
oauth_authorization_serverno authorization serveroauth_protected_resourceClient error '404 Not Found' for url 'https://www.revuo.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404openid_configurationno authorization serverserver_cardClient error '404 Not Found' for url 'https://www.revuo.ai/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
OK | n/a | 14 egress-capable tool(s); no clear auth boundary; safeguards=5; confirmation=products.get, tools.search, tools.changes, products.search, +2 more. |
advanced_capabilities_probe |
Warning | n/a | Only 1 capability signal(s): structured outputs. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: step up auth, request association, server card. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 194.6 ms | Check completed |
initialize |
OK | 300.7 ms | Protocol 2025-03-26 |
interactive_flow_probe |
Missing | n/a | Check completed |
oauth_authorization_server |
Missing | n/a | no authorization server |
oauth_protected_resource |
Error | 287.6 ms | Client error '404 Not Found' for url 'https://www.revuo.ai/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404 |
official_registry_probe |
OK | n/a | Check completed |
openid_configuration |
Missing | n/a | no authorization server |
probe_noise_resilience |
OK | 466.6 ms | Fetched https://www.revuo.ai/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
Missing | 179.4 ms | not advertised |
protocol_version_probe |
Warning | n/a | Claims 2025-03-26; 2 release(s) behind 2025-11-25. |
provenance_divergence_probe |
Not_Assessed | 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 | 287.7 ms | not advertised |
schema_divergence_probe |
Missing | n/a | no server card tools |
server_card |
Error | 332.9 ms | Client error '404 Not Found' for url 'https://www.revuo.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 |
Missing | n/a | No OAuth or incremental-scope signals detected. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 223.8 ms | 14 tool(s) exposed |
transport_compliance_probe |
Warning | 376.9 ms | Issues: missing session id, missing protocol header (bad protocol=400). |
utility_coverage_probe |
Missing | 326.5 ms | No completions evidence; no pagination evidence; tasks missing. |
Known versions
1.0.0
Public server reputation
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Likely to fail |
|
| OAuth-required connect | Degraded |
|
| Safe write flow with confirmation | Passes |
|
Utility coverage
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. | ||
Validation diff
Regressed checks: none
Improved checks: none
Newly assessed dimensions: none
No longer assessed dimensions: none
| Component | Previous | Latest | Delta |
|---|---|---|---|
| No component deltas between the latest two runs. | |||
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
No active alerts for the current server state.
Aliases & registry graph
| Identifier | Source | Canonical | Identity evidence | Score |
|---|---|---|---|---|
ai.revuo/revuo |
official_registry | yes | canonical | 61.5 |
Alias consolidation
Strong alias identity requires matching remote URL, server-card URL, repository slug, or explicit registry cross-reference; shared provider namespace alone is not identity.
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Fix it
Why this score?
Algorithmic score breakdown
1 component(s) not assessed for this run: Provenance Divergence
Experimental candidate components
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| 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 | Expose /.well-known/oauth-protected-resource | Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. | Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.Playbook
|
| High | Publish OAuth authorization-server metadata | Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. | Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.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
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Version header.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | |
| Medium | Document minimal scopes and return cleaner auth challenges | Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. | Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.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 | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Persist session state keyed by Mcp-Session-Id and honor Last-Event-ID on GET reconnects so clients can resume a dropped Streamable HTTP session.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. | Advertise only the advanced capabilities (roots, sampling, elicitation) you have actually implemented end to end in the initialize capabilities object.Playbook
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Utility Coverage | 0/4 | -4.0 |
| Step Up Auth | 0/4 | -4.0 |
| Resource Contract | 0/4 | -4.0 |
| Request Association | 0/4 | -4.0 |
| Recovery Semantics | 0/4 | -4.0 |
| Prompt Contract | 0/4 | -4.0 |
| OAUTH Interop | 0/4 | -4.0 |
| Interactive Flow Safety | 0/4 | -4.0 |
| Advanced Capability Coverage | 0/4 | -4.0 |
| Egress SSRF Resilience | 1/4 | -3.0 |
| Discovery Metadata | 1/4 | -3.0 |
| Dependency Supply Chain Signal | 1/4 | -3.0 |
Compatibility profiles
Connector URL: https://www.revuo.ai/api/mcp # No OAuth metadata detected. # Server: ai.revuo/revuo
{
"mcpServers": {
"revuo": {
"command": "npx",
"args": ["mcp-remote", "https://www.revuo.ai/api/mcp"]
}
}
}
smithery mcp add "https://www.revuo.ai/api/mcp"
curl -sS https://www.revuo.ai/api/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"}}}'
Governance
MCP TrustOps
TrustOps turns this report into operational controls: validation targets and 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. | |||
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/previewInstall snippets
Connector URL: https://www.revuo.ai/api/mcp # No OAuth metadata detected. # Server: ai.revuo/revuo
{
"mcpServers": {
"revuo": {
"command": "npx",
"args": ["mcp-remote", "https://www.revuo.ai/api/mcp"]
}
}
}
smithery mcp add "https://www.revuo.ai/api/mcp"
curl -sS https://www.revuo.ai/api/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.revuo/revuo.History
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| Aug 12, 2026 01:26:21 PM UTC | Healthy | 61.5 | 3221.9 ms | 14 |
| Aug 12, 2026 01:25:27 AM UTC | Healthy | 61.5 | 3739.0 ms | 14 |
| Aug 11, 2026 01:22:32 PM UTC | Healthy | 61.5 | 3669.6 ms | not fetched |
| Aug 11, 2026 01:21:53 AM UTC | Healthy | 61.5 | 3948.8 ms | not fetched |
| Aug 10, 2026 01:21:46 PM UTC | Healthy | 61.5 | 4235.9 ms | not fetched |
| Aug 10, 2026 01:21:21 AM UTC | Healthy | 61.5 | 5384.6 ms | not fetched |
| Aug 09, 2026 01:20:46 PM UTC | Healthy | 61.5 | 3663.6 ms | not fetched |
| Aug 09, 2026 01:20:29 AM UTC | Healthy | 61.5 | 4033.7 ms | not fetched |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| Aug 12, 2026 01:26:21 PM UTC | Healthy | 61.5 | 2025-03-26 | public | 14 | 0 | none |
| Aug 12, 2026 01:25:27 AM UTC | Healthy | 61.5 | 2025-03-26 | public | 14 | 0 | none |
| Aug 11, 2026 01:22:32 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 11, 2026 01:21:53 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 10, 2026 01:21:46 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 10, 2026 01:21:21 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 09, 2026 01:20:46 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 09, 2026 01:20:29 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 08, 2026 01:20:18 PM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
| Aug 08, 2026 01:14:14 AM UTC | Healthy | n/a | unknown | unknown | not fetched | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| Aug 12, 2026 01:26:18 PM UTC | Completed | Healthy | 3221.9 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, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 12, 2026 01:25:23 AM UTC | Completed | Healthy | 3739.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, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 11, 2026 01:22:28 PM UTC | Completed | Healthy | 3669.6 ms | not fetched (not counted in confidence) |
| Aug 11, 2026 01:21:49 AM UTC | Completed | Healthy | 3948.8 ms | not fetched (not counted in confidence) |
| Aug 10, 2026 01:21:42 PM UTC | Completed | Healthy | 4235.9 ms | not fetched (not counted in confidence) |
| Aug 10, 2026 01:21:16 AM UTC | Completed | Healthy | 5384.6 ms | not fetched (not counted in confidence) |
| Aug 09, 2026 01:20:42 PM UTC | Completed | Healthy | 3663.6 ms | not fetched (not counted in confidence) |
| Aug 09, 2026 01:20:25 AM UTC | Completed | Healthy | 4033.7 ms | not fetched (not counted in confidence) |
| Aug 08, 2026 01:20:15 PM UTC | Completed | Healthy | 3145.2 ms | not fetched (not counted in confidence) |
| Aug 08, 2026 01:14:10 AM UTC | Completed | Healthy | 3910.6 ms | not fetched (not counted in confidence) |
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| Aug 12, 2026 01:26:21 PM UTC | Latest validation: healthy | Score 61.5 with status healthy. |
| Aug 05, 2026 10:59:53 AM UTC | Score corrected (post-1.0.503 remediation, R1 zero-anchoring) | Prior: 72.43. Corrected: 69.42. |
Technical details
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [
"products.get",
"tools.search",
"tools.changes",
"products.search",
"products.find_agent_ready",
"products.find_by_capability"
],
"reason": null,
"safeguard_count": 5,
"summary": {
"annotation_conflict_tools": 1,
"bulk_access_tools": 0,
"capability_distribution": {
"network": 14,
"read": 14
},
"declared_non_read_only_tools": 0,
"destructive_tools": 0,
"egress_tools": 14,
"exec_tools": 0,
"has_mutating_capability": false,
"has_non_read_capability": false,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 0,
"medium": 14
},
"secret_tools": 0,
"tool_count": 14
}
},
"latency_ms": null,
"status": "ok"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": true
},
"enabled": [
"structured_outputs"
],
"enabled_count": 1,
"initialize_capability_keys": [
"logging",
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"step_up_auth",
"request_association",
"server_card"
],
"criteria": {
"action_safety": true,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": false,
"server_card": false,
"session_resume": true,
"step_up_auth": false,
"tool_surface": true,
"tools_list": true,
"transport_compliance": true
},
"high_risk_tools": 0,
"tool_count": 14,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "e1ebc4d0cc6dda2d4c1d49c50a8bed84b19067cb5f93394b8f63bd33b4b8a979",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 194.57,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "text/event-stream",
"strict-transport-security": "max-age=315360000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"logging": {},
"tools": {}
},
"protocolVersion": "2025-03-26",
"serverInfo": {
"description": "B2B SaaS directory built for the AI-citation era. Capability-structured, continuously verified listings exposed to agents via MCP. Three locked verticals: PIM/PXM, Tender Management, Billing & Invoicing.",
"icons": [
{
"mimeType": "image/svg+xml",
"sizes": [
"any"
],
"src": "https://www.revuo.ai/favicon.svg"
}
],
"name": "revuo",
"title": "Revuo",
"version": "1.0.0",
"websiteUrl": "https://www.revuo.ai"
}
}
},
"url": "https://www.revuo.ai/api/mcp"
},
"latency_ms": 300.67,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://www.revuo.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://www.revuo.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 287.6,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.revuo/revuo",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"consent_error": null,
"headers": {
"content-type": "text/plain; charset=utf-8",
"strict-transport-security": "max-age=315360000; includeSubDomains; preload"
},
"http_status": 200,
"url": "https://www.revuo.ai/robots.txt",
"validation_disallowed": false
},
"latency_ms": 466.63,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "text/event-stream",
"strict-transport-security": "max-age=315360000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method 'prompts/list' is not available."
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_advertised",
"url": "https://www.revuo.ai/api/mcp"
},
"latency_ms": 179.42,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"comparable_field_count": 0,
"compared_fields": [
"title",
"version",
"homepage",
"repository"
],
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 1,
"readable_sources": [
"registry"
],
"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": "not_assessed"
},
"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": "text/event-stream",
"strict-transport-security": "max-age=315360000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "Method 'resources/list' is not available."
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_advertised",
"url": "https://www.revuo.ai/api/mcp"
},
"latency_ms": 287.7,
"status": "missing"
},
"schema_divergence_probe": {
"details": {
"auth_scheme_mismatch": false,
"card_server_name": null,
"card_server_version": null,
"compared_dimensions": [
"server_name",
"server_version",
"declared_vs_observed_auth",
"tool_membership",
"parameter_names",
"required_parameters",
"parameter_types",
"output_schema_presence"
],
"compared_tool_count": 0,
"live_server_name": "revuo",
"live_server_version": "1.0.0",
"reason": "no_server_card_tools",
"server_name_mismatch": false,
"server_version_mismatch": false
},
"latency_ms": null,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://www.revuo.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://www.revuo.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 332.93,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"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": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 14,
"previous_tool_count": 14,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "text/event-stream",
"strict-transport-security": "max-age=315360000; includeSubDomains; preload"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Get detailed information about a specific MCP tool, scoped to one product. Pass both the productSlug and the tool name \u2014 same-named tools across products are distinct. Response: { tool: { normalizedName, displayName, description, inputSchema, productSlug, productName, serverQualifiedName, isRemoteCapable, accessModel, healthScore, readOnly, destructive, tier, unverified, verifiedAt, position (always 1), rank (always 1.0) } }. Errors: { error: { code: 'not_found', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"name": {
"description": "Normalized tool name (e.g. 'search_issues', 'send_message')",
"type": "string"
},
"productSlug": {
"description": "Slug of the product that exposes this tool (e.g. 'linear', 'github')",
"type": "string"
}
},
"required": [
"productSlug",
"name"
],
"type": "object"
},
"name": "tools.get",
"outputSchema": {
"properties": {
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"tool": {
"properties": {
"accessModel": {
"enum": [
"Unknown",
"Open",
"Keyed",
"Account",
"Commercial",
null
],
"type": [
"string",
"null"
]
},
"callableNow": {
"type": [
"boolean",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"destructive": {
"type": [
"boolean",
"null"
]
},
"displayName": {
"type": "string"
},
"healthScore": {
"type": [
"integer",
"null"
]
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"inputSchema": true,
"isRemoteCapable": {
"type": "boolean"
},
"normalizedName": {
"type": "string"
},
"position": {
"type": "integer"
},
"productName": {
"type": "string"
},
"productSlug": {
"type": "string"
},
"rank": {
"type": "number"
},
"readOnly": {
"type": [
"boolean",
"null"
]
},
"relevance": {
"type": [
"integer",
"null"
]
},
"serverQualifiedName": {
"type": [
"string",
"null"
]
},
"setup": {
"type": [
"string",
"null"
]
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"position",
"rank",
"normalizedName",
"displayName",
"productSlug",
"productName"
],
"type": [
"object",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Lists all product categories in the directory. Use category slugs to filter product searches in products.search / products.find_by_capability. Response: { categories: [{ slug, name, description }] }. Note: this is a thin call. For a full directory briefing (subcategories, capability slugs per category, product counts, locked-vertical flags), prefer directory.overview as a single up-front call.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "categories.list",
"outputSchema": {
"properties": {
"categories": {
"items": {
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"description"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Score an MCP server against the Revuo quality rubric. Pass either a product slug (scored from cached probe data on the product's direct-probe MCP entry; fast) OR an endpoint URL (probed live). Returns: { target, server, summary { coreAwarded/Max/Percent, extensionAwarded/Max/Percent, probedAt }, categories[] (ServerMetadata, CapabilityQuality, ConfigurationUX, RevuoExtensions), checks[] (every rubric check with awarded/max/passed/evaluated/fixSuggestion/evidence), topFixes[] (failed checks ranked by points-at-stake), probe (probe diagnostics) }. Core score (max 100) is Smithery-comparable. Extension score covers Revuo-specific signals (response time today; freshness, error envelope, schema stability are not yet implemented and report evaluated=false \u2014 excluded from totals, never counted as a failure). A check with evaluated=false is a Revuo gap, not the server's fault. Errors: { error: { code: 'bad_input'|'not_found', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"refresh": {
"default": false,
"description": "When passing slug, force a fresh probe instead of using cached probe data. Default false.",
"type": "boolean"
},
"slug": {
"default": null,
"description": "Product slug whose direct-probe MCP server to score. Mutually exclusive with url.",
"type": [
"string",
"null"
]
},
"url": {
"default": null,
"description": "MCP endpoint URL (HTTPS) to probe and score. Mutually exclusive with slug.",
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"name": "mcp.score_server",
"outputSchema": {
"properties": {
"categories": {
"items": {
"properties": {
"awarded": {
"type": "number"
},
"category": {
"type": "string"
},
"isCore": {
"type": "boolean"
},
"max": {
"type": "number"
},
"passed": {
"type": "integer"
},
"percent": {
"type": "number"
},
"total": {
"type": "integer"
}
},
"required": [
"category",
"awarded",
"max",
"percent",
"passed",
"total",
"isCore"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"checks": {
"items": {
"properties": {
"awarded": {
"type": "number"
},
"category": {
"type": "string"
},
"evaluated": {
"default": true,
"type": "boolean"
},
"evidence": {
"type": [
"string",
"null"
]
},
"fixSuggestion": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"isCore": {
"type": "boolean"
},
"max": {
"type": "number"
},
"name": {
"type": "string"
},
"passed": {
"type": "boolean"
}
},
"required": [
"id",
"category",
"name",
"awarded",
"max",
"passed",
"isCore",
"fixSuggestion",
"evidence"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"probe": {
"properties": {
"endpoint": {
"type": [
"string",
"null"
]
},
"error": {
"type": [
"string",
"null"
]
},
"fromCache": {
"type": "boolean"
},
"responseTimeMs": {
"type": "integer"
},
"success": {
"type": "boolean"
}
},
"required": [
"fromCache",
"success",
"responseTimeMs",
"error",
"endpoint"
],
"type": [
"object",
"null"
]
},
"server": {
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"protocolVersion": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"toolCount": {
"type": "integer"
},
"version": {
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"title",
"version",
"description",
"websiteUrl",
"protocolVersion",
"toolCount"
],
"type": [
"object",
"null"
]
},
"summary": {
"properties": {
"coreAwarded": {
"type": "number"
},
"coreMax": {
"type": "number"
},
"corePercent": {
"type": "number"
},
"extensionAwarded": {
"type": "number"
},
"extensionMax": {
"type": "number"
},
"extensionPercent": {
"type": "number"
},
"probedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"coreAwarded",
"coreMax",
"corePercent",
"extensionAwarded",
"extensionMax",
"extensionPercent",
"probedAt"
],
"type": [
"object",
"null"
]
},
"target": {
"properties": {
"kind": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"kind",
"value"
],
"type": [
"object",
"null"
]
},
"topFixes": {
"items": {
"properties": {
"category": {
"type": "string"
},
"id": {
"type": "string"
},
"pointsAtStake": {
"type": "number"
},
"suggestion": {
"type": "string"
}
},
"required": [
"id",
"category",
"pointsAtStake",
"suggestion"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Get MCP server setup instructions for a product. Returns available servers, their tools, connection details, and whether they support remote (hosted) access. Each server carries a machine-usable connect block: { transport ('http'|'local'), url, mcpJson (paste-ready snippet), claudeMcpAddCommand (`claude mcp add ...`), installLinkUrl (a tracked link that routes through Revuo for vendor attribution, then redirects to the product) }. For remote servers use mcpJson/claudeMcpAddCommand directly; for local servers follow repositoryUrl. Each server also carries schema { hash, stable, lastChangeAt } \u2014 cache the hash and pass it to tools.changes(knownHash) later to detect tool-schema drift (rug-pull / tool-poisoning). Response when MCP support exists: { product: { slug, name, websiteUrl, tier, unverified, verifiedAt }, hasMcpSupport: true, totalToolCount, servers[], agentReadiness? }. Response when product exists but lacks MCP: { product: {...}, hasMcpSupport: false, message }. Errors: { error: { code: 'not_found', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"slug": {
"description": "Product slug (URL-friendly identifier)",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "products.get_mcp_setup",
"outputSchema": {
"properties": {
"agentReadiness": {
"properties": {
"aiSummary": {
"type": [
"string",
"null"
]
},
"api": {
"properties": {
"apiStyles": {
"items": {
"type": "string"
},
"type": "array"
},
"authModels": {
"items": {
"type": "string"
},
"type": "array"
},
"hasFreeTier": {
"type": "boolean"
},
"hasPublicApi": {
"type": "boolean"
}
},
"required": [
"hasPublicApi",
"apiStyles",
"authModels",
"hasFreeTier"
],
"type": "object"
},
"compositeScore": {
"type": "number"
}
},
"required": [
"compositeScore",
"api",
"aiSummary"
],
"type": [
"object",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"hasMcpSupport": {
"type": [
"boolean",
"null"
]
},
"message": {
"type": [
"string",
"null"
]
},
"product": {
"properties": {
"houseProduct": {
"default": null,
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"sponsored": {
"default": null,
"type": [
"boolean",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"slug",
"name",
"websiteUrl",
"tier",
"unverified",
"verifiedAt"
],
"type": [
"object",
"null"
]
},
"servers": {
"items": {
"properties": {
"connect": {
"properties": {
"claudeMcpAddCommand": {
"type": [
"string",
"null"
]
},
"installLinkUrl": {
"type": "string"
},
"mcpJson": {
"type": [
"string",
"null"
]
},
"transport": {
"type": "string"
},
"url": {
"type": [
"string",
"null"
]
}
},
"required": [
"transport",
"url",
"mcpJson",
"claudeMcpAddCommand",
"installLinkUrl"
],
"type": "object"
},
"description": {
"type": [
"string",
"null"
]
},
"displayName": {
"type": "string"
},
"isRemoteCapable": {
"type": "boolean"
},
"isVerified": {
"type": "boolean"
},
"license": {
"type": [
"string",
"null"
]
},
"qualifiedName": {
"type": "string"
},
"registries": {
"items": {
"type": "string"
},
"type": "array"
},
"repositoryUrl": {
"type": [
"string",
"null"
]
},
"schema": {
"properties": {
"hash": {
"type": [
"string",
"null"
]
},
"lastChangeAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"stable": {
"type": "boolean"
}
},
"required": [
"hash",
"stable",
"lastChangeAt"
],
"type": "object"
},
"setup": {
"properties": {
"isRemote": {
"type": "boolean"
},
"repositoryUrl": {
"type": [
"string",
"null"
]
},
"steps": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"steps",
"isRemote",
"repositoryUrl"
],
"type": "object"
},
"tools": {
"items": {
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"inputSchema": true,
"name": {
"type": "string"
}
},
"required": [
"name",
"description",
"inputSchema"
],
"type": "object"
},
"type": "array"
},
"useCount": {
"type": "integer"
},
"verifiedSource": {
"enum": [
"None",
"Probe",
"Registry"
],
"type": "string"
}
},
"required": [
"qualifiedName",
"displayName",
"description",
"repositoryUrl",
"isVerified",
"verifiedSource",
"isRemoteCapable",
"useCount",
"license",
"registries",
"tools",
"setup",
"connect",
"schema"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"totalToolCount": {
"type": [
"integer",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Get full details for a product by slug, including MCP integration data and agent readiness scores. Response: { product: { slug, name, tagline, description, websiteUrl, logoUrl, pricingModel, currentScore (0-100), tier (free|verified|featured), unverified (true when no approved vendor claim), verifiedAt (ISO; absent if never crawled), categories[], knownLimitations?[] (sourced weaknesses, each with evidenceUrl \u2014 weigh before recommending), alternatives?[] (neutral, score-ranked same-category options, self excluded, houseProduct disclosed) }, mcp?: { hasMcpSupport, totalToolCount, totalUseCount, servers[] }, agentReadiness?: { compositeScore (0-100), aiSummary } }. Errors: { error: { code: 'not_found', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"slug": {
"description": "Product slug (URL-friendly identifier)",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "products.get",
"outputSchema": {
"properties": {
"agentReadiness": {
"properties": {
"aiSummary": {
"type": [
"string",
"null"
]
},
"compositeScore": {
"type": "number"
}
},
"required": [
"compositeScore",
"aiSummary"
],
"type": [
"object",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"mcp": {
"properties": {
"hasMcpSupport": {
"type": "boolean"
},
"servers": {
"items": {
"properties": {
"displayName": {
"type": "string"
},
"isRemoteCapable": {
"type": "boolean"
},
"isVerified": {
"type": "boolean"
},
"qualifiedName": {
"type": "string"
},
"toolCount": {
"type": "integer"
},
"useCount": {
"type": "integer"
},
"verifiedSource": {
"enum": [
"None",
"Probe",
"Registry"
],
"type": "string"
}
},
"required": [
"qualifiedName",
"displayName",
"isVerified",
"verifiedSource",
"isRemoteCapable",
"useCount",
"toolCount"
],
"type": "object"
},
"type": "array"
},
"totalToolCount": {
"type": "integer"
},
"totalUseCount": {
"type": "integer"
}
},
"required": [
"hasMcpSupport",
"totalToolCount",
"totalUseCount",
"servers"
],
"type": [
"object",
"null"
]
},
"product": {
"properties": {
"alternatives": {
"items": {
"properties": {
"currentScore": {
"type": "number"
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"slug",
"name",
"tagline",
"currentScore",
"tier",
"houseProduct",
"unverified"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"currentScore": {
"type": "number"
},
"description": {
"type": [
"string",
"null"
]
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"knownLimitations": {
"items": {
"properties": {
"detail": {
"type": [
"string",
"null"
]
},
"evidenceUrl": {
"type": "string"
},
"severity": {
"enum": [
"Minor",
"Notable",
"Significant"
],
"type": "string"
},
"source": {
"enum": [
"UserReview",
"Editorial",
"CapabilityGap",
"ExternalSource"
],
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"summary",
"detail",
"evidenceUrl",
"source",
"severity"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"logoUrl": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"pricingModel": {
"enum": [
"Free",
"Freemium",
"Paid",
"Enterprise",
"ContactUs"
],
"type": "string"
},
"slug": {
"type": "string"
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"slug",
"name",
"websiteUrl",
"categories"
],
"type": [
"object",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Find the best MCP tools for a given task. Describe what you want to accomplish (e.g. 'manage github issues', 'send slack messages', 'query a database') and get ranked results \u2014 each result is one (product, tool) pair, since same-named tools across providers are NOT interchangeable. By default only shows tools available via remote (network-hosted) servers. Audience: agent builders looking for installable MCP tools \u2014 for B2B SaaS recommendations, prefer products.search or products.find_by_capability. Ranking basis: relevance score desc (+1 per term hit, +3 for full-phrase hit); within an equal relevance tier, callable-now (Open access) + remote + healthy tools are boosted ahead \u2014 never a hard filter (a product-bound tool stays in its own money query), then productName. Paid tier is NOT a ranking input \u2014 it appears only as an annotation. Every result carries { position (1-based), rank (0..1; 1.0 = top, scales linearly down by ordinal position) } plus preflight annotations { accessModel (open|keyed|account|commercial), healthScore (0-100, nullable), readOnly, destructive, callableNow (true = usable anonymously right now), setup (one-line 'how to get access' pointer for non-Open tools) }. Response: { task, matchType (none|exactSlug|canonicalSlug|nlpFallback), resolvedCapabilities[], capabilityProducts[] (B2B SaaS products that claim the same capability \u2014 empty when matchType=none), results[] (MCP-tool-level matches), buckets { callableNow, requiresSetup } }. Each result: { position, rank, normalizedName, displayName, description, inputSchema, relevance, accessModel, healthScore, readOnly, destructive, callableNow, setup, productSlug, productName, serverQualifiedName, isRemoteCapable, tier, unverified, verifiedAt }. Empty case: { task, matchType, message, suggestedQueries[], suggestedCapabilities[] }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"access": {
"default": null,
"description": "Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all \u2014 Open tools are boosted, not required.",
"type": [
"string",
"null"
]
},
"limit": {
"default": 10,
"description": "Maximum number of tool results to return",
"type": "integer"
},
"remoteOnly": {
"default": true,
"description": "If true (default), only return tools from remote-capable MCP servers",
"type": "boolean"
},
"taskDescription": {
"description": "Natural language description of the task you want to accomplish",
"type": "string"
}
},
"required": [
"taskDescription"
],
"type": "object"
},
"name": "tools.find_for_task",
"outputSchema": {
"properties": {
"buckets": {
"properties": {
"callableNow": {
"type": "integer"
},
"requiresSetup": {
"type": "integer"
}
},
"required": [
"callableNow",
"requiresSetup"
],
"type": [
"object",
"null"
]
},
"capabilityProducts": {
"items": {
"properties": {
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"matchedCapabilities": {
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"rank": {
"type": "number"
},
"slug": {
"type": "string"
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"position",
"rank",
"slug",
"name",
"websiteUrl",
"matchedCapabilities"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"matchType": {
"enum": [
"None",
"ExactSlug",
"CanonicalSlug",
"NlpFallback",
null
],
"type": [
"string",
"null"
]
},
"message": {
"type": [
"string",
"null"
]
},
"resolvedCapabilities": {
"items": {
"properties": {
"kind": {
"enum": [
"Unspecified",
"Integration",
"Compliance",
"Format",
"Standard",
"Workflow"
],
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"kind"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"results": {
"items": {
"properties": {
"accessModel": {
"enum": [
"Unknown",
"Open",
"Keyed",
"Account",
"Commercial",
null
],
"type": [
"string",
"null"
]
},
"callableNow": {
"type": [
"boolean",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"destructive": {
"type": [
"boolean",
"null"
]
},
"displayName": {
"type": "string"
},
"healthScore": {
"type": [
"integer",
"null"
]
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"inputSchema": true,
"isRemoteCapable": {
"type": "boolean"
},
"normalizedName": {
"type": "string"
},
"position": {
"type": "integer"
},
"productName": {
"type": "string"
},
"productSlug": {
"type": "string"
},
"rank": {
"type": "number"
},
"readOnly": {
"type": [
"boolean",
"null"
]
},
"relevance": {
"type": [
"integer",
"null"
]
},
"serverQualifiedName": {
"type": [
"string",
"null"
]
},
"setup": {
"type": [
"string",
"null"
]
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"position",
"rank",
"normalizedName",
"displayName",
"productSlug",
"productName"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"suggestedCapabilities": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"suggestedQueries": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"task": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Single 'call this first' entry-point that briefs an agent on the entire Revuo directory. Returns the taxonomy with subcategories, product counts per category, locked-vertical flags (the three verticals Revuo prioritizes), capability slugs valid per category, and the canonical capability-kind taxonomy (integration/compliance/format/standard/workflow). Use this once at the start of a session to ground every subsequent products.search / products.find_by_capability / tools.find_for_task call. Response: { directory: { name, tagline, url, policyUrl, capabilityKinds[] }, lockedVerticals[], categories[] (each with subcategories[], productCount, isLockedVertical, capabilitySlugs[]), tools: { ...tool-name hints } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "directory.overview",
"outputSchema": {
"properties": {
"categories": {
"items": {
"properties": {
"capabilitySlugs": {
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"type": [
"string",
"null"
]
},
"isLockedVertical": {
"type": "boolean"
},
"lockedVerticalRationale": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"productCount": {
"type": "integer"
},
"slug": {
"type": "string"
},
"subcategories": {
"items": {
"properties": {
"capabilitySlugs": {
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"productCount": {
"type": "integer"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"description",
"productCount",
"capabilitySlugs"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"slug",
"name",
"description",
"productCount",
"isLockedVertical",
"lockedVerticalRationale",
"capabilitySlugs",
"subcategories"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"directory": {
"properties": {
"capabilityKinds": {
"items": {
"properties": {
"description": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"description"
],
"type": "object"
},
"type": "array"
},
"capabilityTaxonomyUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"policyUrl": {
"type": "string"
},
"tagline": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"name",
"tagline",
"url",
"policyUrl",
"capabilityTaxonomyUrl",
"capabilityKinds"
],
"type": [
"object",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"lockedVerticals": {
"items": {
"properties": {
"listed": {
"type": "boolean"
},
"rationale": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"rationale",
"listed"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"tools": {
"properties": {
"agentReady": {
"properties": {
"name": {
"type": "string"
},
"use": {
"type": "string"
}
},
"required": [
"name",
"use"
],
"type": "object"
},
"byCapability": {
"properties": {
"name": {
"type": "string"
},
"use": {
"type": "string"
}
},
"required": [
"name",
"use"
],
"type": "object"
},
"byTask": {
"properties": {
"name": {
"type": "string"
},
"use": {
"type": "string"
}
},
"required": [
"name",
"use"
],
"type": "object"
},
"productDetail": {
"properties": {
"name": {
"type": "string"
},
"use": {
"type": "string"
}
},
"required": [
"name",
"use"
],
"type": "object"
},
"search": {
"properties": {
"name": {
"type": "string"
},
"use": {
"type": "string"
}
},
"required": [
"name",
"use"
],
"type": "object"
}
},
"required": [
"search",
"byCapability",
"byTask",
"agentReady",
"productDetail"
],
"type": [
"object",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Get the published editorial ranking (\"Best {Category}\") for a category. Ordering basis: computed editorial score ONLY (verified capability coverage, evidence verification rate & freshness, agent readiness, data completeness \u2014 weights published at /api/methodology). Tier is NOT a ranking input for this tool; positions are never sold. Rankings are published snapshots (monthly schedule; manual publishes are marked) \u2014 stable between recomputes and citable. Each entry carries { position, rank (0..1), slug, name, score (0-100), breakdown (raw 0-100 per dimension), tier (annotation only), houseProduct (true = built by Revuo's founder \u2014 same formula as everyone, disclosed machine-readably), unverified, verifiedAt }. unrankedCount + unranked[] name the category products that failed an eligibility gate, with reasons. Response: { category, computedAt, methodologyVersion, methodologyUrl, trigger, entries[], unranked[] }. Errors: { error: { code: 'not_found', ... } } \u2014 also returned when a category has no published ranking yet.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"category": {
"description": "Category slug (e.g. 'pim-software'). Use categories.list for valid slugs.",
"type": "string"
},
"limit": {
"default": 25,
"description": "Max ranked entries to return (caps at 50)",
"type": "integer"
}
},
"required": [
"category"
],
"type": "object"
},
"name": "rankings.get",
"outputSchema": {
"properties": {
"category": {
"type": [
"string",
"null"
]
},
"computedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"entries": {
"items": {
"properties": {
"breakdown": {
"additionalProperties": {
"type": "number"
},
"type": "object"
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"rank": {
"type": "number"
},
"score": {
"type": "number"
},
"slug": {
"type": "string"
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"slug",
"name"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"methodologyUrl": {
"type": [
"string",
"null"
]
},
"methodologyVersion": {
"type": [
"string",
"null"
]
},
"trigger": {
"type": [
"string",
"null"
]
},
"unranked": {
"items": {
"properties": {
"name": {
"type": "string"
},
"reason": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"reason"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Search for MCP tools by capability. Each result is one (product, tool) pair \u2014 tools sharing a name across providers are NOT interchangeable, so each provider's tool is its own row with its own description and input schema. Ranking basis: semantic relevance to the query (embedding search); on the lexical fallback (searchMode='lexical') results are name-ordered and rank does NOT reflect relevance. Paid tier is NOT a ranking input \u2014 it appears only as an annotation. Every result carries { position (1-based), rank (0..1; 1.0 = top) } so callers can merge results across tools consistently, plus preflight annotations { accessModel (open|keyed|account|commercial; whether an agent can call it without becoming a customer first), healthScore (0-100, nullable), readOnly, destructive } so you can judge callability and safety BEFORE selecting. Optional access filter narrows to a single access class. Response: { searchMode ('semantic'|'lexical'), tools: [{ position, rank, normalizedName, displayName, description, inputSchema, productSlug, productName, serverQualifiedName, isRemoteCapable, accessModel, healthScore, readOnly, destructive, tier, unverified (true when no approved vendor claim), verifiedAt (ISO; nullable) }] }. Errors: { error: { code: 'bad_input', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"access": {
"default": null,
"description": "Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all.",
"type": [
"string",
"null"
]
},
"limit": {
"default": 20,
"description": "Maximum number of results to return",
"type": "integer"
},
"query": {
"description": "Search query to find tools by name or capability. Natural-language phrases work best (semantic search).",
"type": "string"
},
"remoteOnly": {
"default": false,
"description": "If true, only return tools available via remote (network-hosted) MCP servers",
"type": "boolean"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "tools.search",
"outputSchema": {
"properties": {
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"searchMode": {
"type": [
"string",
"null"
]
},
"tools": {
"items": {
"properties": {
"accessModel": {
"enum": [
"Unknown",
"Open",
"Keyed",
"Account",
"Commercial",
null
],
"type": [
"string",
"null"
]
},
"callableNow": {
"type": [
"boolean",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"destructive": {
"type": [
"boolean",
"null"
]
},
"displayName": {
"type": "string"
},
"healthScore": {
"type": [
"integer",
"null"
]
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"inputSchema": true,
"isRemoteCapable": {
"type": "boolean"
},
"normalizedName": {
"type": "string"
},
"position": {
"type": "integer"
},
"productName": {
"type": "string"
},
"productSlug": {
"type": "string"
},
"rank": {
"type": "number"
},
"readOnly": {
"type": [
"boolean",
"null"
]
},
"relevance": {
"type": [
"integer",
"null"
]
},
"serverQualifiedName": {
"type": [
"string",
"null"
]
},
"setup": {
"type": [
"string",
"null"
]
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"position",
"rank",
"normalizedName",
"displayName",
"productSlug",
"productName"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "List every (product, tool) pair that shares a normalized name. A disambiguation lookup \u2014 same name across providers does NOT mean the tools are interchangeable. Ranking basis: productName. Paid tier is NOT a ranking input \u2014 it appears only as an annotation. Every result carries { position (1-based), rank (0..1) } plus preflight annotations { accessModel, healthScore, readOnly, destructive }. Response: { normalizedName, total, tools[] (each: position, rank, productSlug, productName, displayName, description, inputSchema, serverQualifiedName, isRemoteCapable, accessModel, healthScore, readOnly, destructive, tier, unverified, verifiedAt) }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"name": {
"description": "Normalized tool name (e.g. 'search', 'create_issue')",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "tools.list_by_name",
"outputSchema": {
"properties": {
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"normalizedName": {
"type": [
"string",
"null"
]
},
"tools": {
"items": {
"properties": {
"accessModel": {
"enum": [
"Unknown",
"Open",
"Keyed",
"Account",
"Commercial",
null
],
"type": [
"string",
"null"
]
},
"callableNow": {
"type": [
"boolean",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"destructive": {
"type": [
"boolean",
"null"
]
},
"displayName": {
"type": "string"
},
"healthScore": {
"type": [
"integer",
"null"
]
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"inputSchema": true,
"isRemoteCapable": {
"type": "boolean"
},
"normalizedName": {
"type": "string"
},
"position": {
"type": "integer"
},
"productName": {
"type": "string"
},
"productSlug": {
"type": "string"
},
"rank": {
"type": "number"
},
"readOnly": {
"type": [
"boolean",
"null"
]
},
"relevance": {
"type": [
"integer",
"null"
]
},
"serverQualifiedName": {
"type": [
"string",
"null"
]
},
"setup": {
"type": [
"string",
"null"
]
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"position",
"rank",
"normalizedName",
"displayName",
"productSlug",
"productName"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"total": {
"type": [
"integer",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Detect whether a product's MCP tool schema has DRIFTED since you cached it \u2014 rug-pull / tool-poisoning detection (a server silently changing a tool's description or input schema after you approved it; web search structurally cannot answer this). Pass the product slug and EITHER the schema hash you cached earlier (knownHash, from products.get_mcp_setup \u2192 server.schema.hash \u2014 the strongest signal: an exact mismatch means the tools changed) OR the ISO-8601 timestamp you cached at (since). With neither, it returns the current fingerprint to cache for next time. A product may expose MULTIPLE servers: knownHash is per-server, so pass `server` (a qualifiedName) with knownHash on a multi-server product \u2014 otherwise knownHash is applied only when there's exactly one server. Re-verify before trusting a previously-approved tool. Response: { product, hasMcpSupport, drifted (did ANY tracked server change vs your reference; null when no reference given), servers[] (each: qualifiedName, currentSchemaHash, schemaStable, lastSchemaChangeAt, toolCount, directlyProbed, driftedSinceKnownHash, driftedSince, advice) }. Errors: { error: { code: 'not_found'|'bad_input', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"knownHash": {
"default": null,
"description": "The schema hash you cached earlier (products.get_mcp_setup \u2192 server.schema.hash). Exact-mismatch drift signal.",
"type": [
"string",
"null"
]
},
"server": {
"default": null,
"description": "The server qualifiedName your knownHash belongs to. Required with knownHash on a multi-server product.",
"type": [
"string",
"null"
]
},
"since": {
"default": null,
"description": "ISO-8601 timestamp you last cached at. Reports whether a schema change was recorded after it.",
"type": [
"string",
"null"
]
},
"slug": {
"description": "Product slug whose MCP tool schema to check.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "tools.changes",
"outputSchema": {
"properties": {
"drifted": {
"type": [
"boolean",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"hasMcpSupport": {
"type": [
"boolean",
"null"
]
},
"message": {
"type": [
"string",
"null"
]
},
"product": {
"properties": {
"houseProduct": {
"default": null,
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"sponsored": {
"default": null,
"type": [
"boolean",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"slug",
"name",
"websiteUrl",
"tier",
"unverified",
"verifiedAt"
],
"type": [
"object",
"null"
]
},
"servers": {
"items": {
"properties": {
"advice": {
"type": "string"
},
"currentSchemaHash": {
"type": [
"string",
"null"
]
},
"directlyProbed": {
"type": "boolean"
},
"driftedSince": {
"type": [
"boolean",
"null"
]
},
"driftedSinceKnownHash": {
"type": [
"boolean",
"null"
]
},
"lastProbedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"lastSchemaChangeAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"qualifiedName": {
"type": "string"
},
"schemaStable": {
"type": "boolean"
},
"toolCount": {
"type": "integer"
}
},
"required": [
"qualifiedName",
"currentSchemaHash",
"schemaStable",
"lastSchemaChangeAt",
"toolCount",
"lastProbedAt",
"directlyProbed",
"driftedSinceKnownHash",
"driftedSince",
"advice"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Search for B2B SaaS products by name OR by capability. The query is first resolved against the canonical capability taxonomy (e.g. 'salesforce-integration', 'xrechnung-support', 'soc2'); on hit, products that claim that capability are returned. Falls back to name/slug/tagline substring search. Optional category scope. Ranking basis: currentScore desc (computed editorial score), then name. Paid tier is NOT a ranking input \u2014 tier appears only as an annotation on results. Every result carries { position (1-based), rank (0..1; 1.0 = top, scales linearly down by ordinal position) } so callers can merge results across tools consistently. Response: { query, matchType (none|exactSlug|canonicalSlug|nlpFallback), resolvedCapabilities[], products[] }. Each product carries { position, rank, tier (free|verified|featured \u2014 annotation only), houseProduct (true = built by Revuo's founder; conflict-of-interest disclosure), sponsored (true = paid Featured placement), unverified (true when the listing has no approved vendor claim; omitted otherwise \u2014 absence means an approved vendor claim, NOT crawl freshness; use verifiedAt for that), verifiedAt (ISO timestamp of last claim crawl; absent if never crawled), currentScore (0-100), compositeScore (agent-readiness 0-100, nullable), matchedCapability (true if surfaced by capability path) }. Errors: { error: { code: 'not_found'|'bad_input', ... } }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"category": {
"default": null,
"description": "Optional category slug to filter results",
"type": [
"string",
"null"
]
},
"query": {
"description": "Search query \u2014 capability slug or natural-language description; falls back to name match",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "products.search",
"outputSchema": {
"properties": {
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"matchType": {
"enum": [
"None",
"ExactSlug",
"CanonicalSlug",
"NlpFallback",
null
],
"type": [
"string",
"null"
]
},
"products": {
"items": {
"properties": {
"compositeScore": {
"type": [
"number",
"null"
]
},
"currentScore": {
"type": [
"number",
"null"
]
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"matchedCapability": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"rank": {
"type": "number"
},
"slug": {
"type": "string"
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"position",
"rank",
"slug",
"name",
"websiteUrl"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"query": {
"type": [
"string",
"null"
]
},
"resolvedCapabilities": {
"items": {
"properties": {
"kind": {
"enum": [
"Unspecified",
"Integration",
"Compliance",
"Format",
"Standard",
"Workflow"
],
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"kind"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Find products with the highest agent readiness scores \u2014 products that are easiest for AI agents to integrate with. Sorted by compositeScore desc; supports skip/limit pagination. All readiness scores are 0-100, higher better. Calibration: <30 = not agent-ready (default minimumScore filter), 30-49 = early/limited, 50-69 = decent, 70-89 = strong, 90+ = exceptional. Ranking basis: compositeScore desc. Tier is NOT a tiebreaker here \u2014 buyer intent is technical fit, not paid placement. Every result carries { position (1-based, within the returned page), rank (0..1; 1.0 = top of this page) } so callers can merge results across tools consistently. Response: { products: [{ position, rank, slug, name, tagline, websiteUrl, tier (free|verified|featured), unverified (true when no approved vendor claim), verifiedAt (ISO; nullable), agentReadiness: { compositeScore, apiScore, protocolScore, sdkScore, integrationScore, dxScore } (each 0-100), mcp?: { hasMcpSupport, totalToolCount, serverCount } }] }.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"description": "Maximum number of results to return per page. Caps at 50.",
"type": "integer"
},
"minimumScore": {
"default": 30,
"description": "Minimum composite agent readiness score (0-100). Higher = more agent-ready. 0 returns everything; 50 is a usable threshold.",
"type": "integer"
},
"skip": {
"default": 0,
"description": "Number of results to skip (for pagination). Default 0.",
"type": "integer"
}
},
"type": "object"
},
"name": "products.find_agent_ready",
"outputSchema": {
"properties": {
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"products": {
"items": {
"properties": {
"agentReadiness": {
"properties": {
"apiScore": {
"type": "number"
},
"compositeScore": {
"type": "number"
},
"dxScore": {
"type": "number"
},
"integrationScore": {
"type": "number"
},
"protocolScore": {
"type": "number"
},
"sdkScore": {
"type": "number"
}
},
"required": [
"compositeScore",
"apiScore",
"protocolScore",
"sdkScore",
"integrationScore",
"dxScore"
],
"type": "object"
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"mcp": {
"properties": {
"hasMcpSupport": {
"type": "boolean"
},
"serverCount": {
"type": "integer"
},
"totalToolCount": {
"type": "integer"
}
},
"required": [
"hasMcpSupport",
"totalToolCount",
"serverCount"
],
"type": [
"object",
"null"
]
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"rank": {
"type": "number"
},
"slug": {
"type": "string"
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"position",
"rank",
"slug",
"name",
"websiteUrl",
"agentReadiness"
],
"type": "object"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
},
{
"annotations": {
"openWorldHint": true,
"readOnlyHint": true
},
"description": "Find B2B SaaS products that support a specific capability \u2014 an integration with a named service ('salesforce-integration'), a data format ('xrechnung-support'), an industry standard ('eclass-support'), or a compliance certification ('soc2'). Accepts either a canonical capability slug or natural language; resolves to a structured capability when possible. Ranking basis: currentScore desc (computed editorial score), then name. Paid tier is NOT a ranking input \u2014 it appears only as an annotation. Every result carries { position (1-based), rank (0..1; 1.0 = top, scales linearly down by ordinal position) } so callers can merge results across tools consistently. Response: { capability, matchType (none|exactSlug|canonicalSlug|nlpFallback \u2014 exactSlug & canonicalSlug are deterministic; nlpFallback is heuristic), resolvedFeatures[], products[] }. Each product: { position, rank, slug, name, tagline, websiteUrl, tier, unverified (true when no approved vendor claim), verifiedAt, evidence[] (per-claim: featureSlug, evidenceUrl, notes, source, confidence) }. Empty: { capability, matchType, message, suggestedSlugs[] } when no capability matched, or products: [] when capability matched but no products claim it yet.",
"execution": {
"taskSupport": "optional"
},
"inputSchema": {
"properties": {
"capability": {
"description": "Capability slug ('salesforce-integration') OR natural-language description ('integrates with Salesforce')",
"type": "string"
},
"category": {
"default": null,
"description": "Optional category slug to scope the search (e.g. 'pim', 'tender-management', 'billing')",
"type": [
"string",
"null"
]
},
"limit": {
"default": 20,
"description": "Maximum number of results to return",
"type": "integer"
}
},
"required": [
"capability"
],
"type": "object"
},
"name": "products.find_by_capability",
"outputSchema": {
"properties": {
"capability": {
"type": [
"string",
"null"
]
},
"error": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": [
"string",
"null"
]
},
"hint": {
"type": [
"string",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"resource": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"message"
],
"type": [
"object",
"null"
]
},
"matchType": {
"enum": [
"None",
"ExactSlug",
"CanonicalSlug",
"NlpFallback",
null
],
"type": [
"string",
"null"
]
},
"message": {
"type": [
"string",
"null"
]
},
"products": {
"items": {
"properties": {
"evidence": {
"items": {
"properties": {
"confidence": {
"type": [
"number",
"null"
]
},
"evidenceUrl": {
"type": [
"string",
"null"
]
},
"featureSlug": {
"type": [
"string",
"null"
]
},
"notes": {
"type": [
"string",
"null"
]
},
"source": {
"type": [
"string",
"null"
]
}
},
"required": [
"featureSlug",
"evidenceUrl",
"notes",
"source",
"confidence"
],
"type": "object"
},
"type": "array"
},
"houseProduct": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"position": {
"type": "integer"
},
"rank": {
"type": "number"
},
"slug": {
"type": "string"
},
"sponsored": {
"type": [
"boolean",
"null"
]
},
"tagline": {
"type": [
"string",
"null"
]
},
"tier": {
"enum": [
"Free",
"Verified",
"Featured"
],
"type": "string"
},
"unverified": {
"type": [
"boolean",
"null"
]
},
"verifiedAt": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": "string"
}
},
"required": [
"position",
"rank",
"slug",
"name",
"websiteUrl",
"evidence"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"resolvedFeatures": {
"items": {
"properties": {
"kind": {
"enum": [
"Unspecified",
"Integration",
"Compliance",
"Format",
"Standard",
"Workflow"
],
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"kind"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"suggestedSlugs": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
}
}
]
}
},
"url": "https://www.revuo.ai/api/mcp"
},
"latency_ms": 223.84,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8",
"strict-transport-security": "max-age=315360000; includeSubDomains; preload"
},
"bad_protocol_payload": {
"error": {
"code": -32000,
"message": "Bad Request: The MCP-Protocol-Version header value '1999-99-99' is not supported."
},
"id": "",
"jsonrpc": "2.0"
},
"bad_protocol_status_code": 400,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 376.91,
"status": "warning"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"logging",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 326.5,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://www.revuo.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://www.revuo.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://www.revuo.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://www.revuo.ai/.well-known/mcp/server-card.json"
}
},
"remote_url": "https://www.revuo.ai/api/mcp",
"server_card_payload": null,
"server_identifier": "ai.revuo/revuo"
}
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: none
- Docs: none
- Support: none
- Icon: none
- Remote endpoint: https://www.revuo.ai/api/mcp
- Server card: none
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header
Request association
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. | ||