Revuo

Agent-callable B2B SaaS directory: capability-structured, continuously verified listings.

사용해야 할까요

품질 및 안전성

B
설명 품질
100%
스키마 완전성
89%
이름 품질
50%
오염 위험
60%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (17)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringmcp.score_server에서
  • MEDIUMTool description contains suspicious base64-like encoded stringdirectory.overview에서
  • LOWTool 'tools.get' doesn't follow camelCase/snake_casetools.get에서
  • LOWTool 'categories.list' doesn't follow camelCase/snake_casecategories.list에서
  • LOWTool 'mcp.score_server' doesn't follow camelCase/snake_casemcp.score_server에서
  • LOWTool 'products.get_mcp_setup' doesn't follow camelCase/snake_caseproducts.get_mcp_setup에서
  • LOWTool 'products.get' doesn't follow camelCase/snake_caseproducts.get에서
  • LOWTool 'tools.find_for_task' doesn't follow camelCase/snake_casetools.find_for_task에서
  • LOWTool 'directory.overview' doesn't follow camelCase/snake_casedirectory.overview에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~10,982토큰 (도구 정의)
~6.6 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 8.58%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "revuo": {
      "url": "https://www.revuo.ai/api/mcp"
    }
  }
}

원격 엔드포인트

https://www.revuo.ai/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (14)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢tools.get(productSlug, name)

Get detailed information about a specific MCP tool, scoped to one product. Pass both the productSlug and the tool name — 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', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "productSlug": {
      "description": "Slug of the product that exposes this tool (e.g. 'linear', 'github')",
      "type": "string"
    },
    "name": {
      "description": "Normalized tool name (e.g. 'search_issues', 'send_message')",
      "type": "string"
    }
  },
  "required": [
    "productSlug",
    "name"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "tool": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "position": {
          "type": "integer"
        },
        "rank": {
          "type": "number"
        },
        "normalizedName": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "inputSchema": true,
        "productSlug": {
          "type": "string"
        },
        "productName": {
          "type": "string"
        },
        "serverQualifiedName": {
          "type": [
            "string",
            "null"
          ]
        },
        "isRemoteCapable": {
          "type": "boolean"
        },
        "tier": {
          "type": "string",
          "enum": [
            "Free",
            "Verified",
            "Featured"
          ]
        },
        "houseProduct": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "sponsored": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "unverified": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "verifiedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "relevance": {
          "type": [
            "integer",
            "null"
          ]
        },
        "accessModel": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "Unknown",
            "Open",
            "Keyed",
            "Account",
            "Commercial",
            null
          ]
        },
        "healthScore": {
          "type": [
            "integer",
            "null"
          ]
        },
        "readOnly": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "destructive": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "callableNow": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "setup": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "position",
        "rank",
        "normalizedName",
        "displayName",
        "productSlug",
        "productName"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢categories.list

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.

입력 스키마

{
  "type": "object",
  "properties": {}
}

출력 스키마

{
  "type": "object",
  "properties": {
    "categories": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "description"
        ]
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢mcp.score_server(slug, url, refresh)

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 — 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', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "Product slug whose direct-probe MCP server to score. Mutually exclusive with url.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "url": {
      "description": "MCP endpoint URL (HTTPS) to probe and score. Mutually exclusive with slug.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "refresh": {
      "description": "When passing slug, force a fresh probe instead of using cached probe data. Default false.",
      "type": "boolean",
      "default": false
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "target": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "kind": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ]
    },
    "server": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "version": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "websiteUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "protocolVersion": {
          "type": [
            "string",
            "null"
          ]
        },
        "toolCount": {
          "type": "integer"
        }
      },
      "required": [
        "name",
        "title",
        "version",
        "description",
        "websiteUrl",
        "protocolVersion",
        "toolCount"
      ]
    },
    "summary": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "coreAwarded": {
          "type": "number"
        },
        "coreMax": {
          "type": "number"
        },
        "corePercent": {
          "type": "number"
        },
        "extensionAwarded": {
          "type": "number"
        },
        "extensionMax": {
          "type": "number"
        },
        "extensionPercent": {
          "type": "number"
        },
        "probedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "coreAwarded",
        "coreMax",
        "corePercent",
        "extensionAwarded",
        "extensionMax",
        "extensionPercent",
        "probedAt"
      ]
    },
    "categories": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string"
          },
          "awarded": {
            "type": "number"
          },
          "max": {
            "type": "number"
          },
          "percent": {
            "type": "number"
          },
          "passed": {
            "type": "integer"
          },
          "total": {
            "type": "integer"
          },
          "isCore": {
            "type": "boolean"
          }
        },
        "required": [
          "category",
          "awarded",
          "max",
          "percent",
          "passed",
          "total",
          "isCore"
        ]
      }
    },
    "checks": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "awarded": {
            "type": "number"
          },
          "max": {
            "type": "number"
          },
          "passed": {
            "type": "boolean"
          },
          "isCore": {
            "type": "boolean"
          },
          "fixSuggestion": {
            "type": [
              "string",
              "null"
            ]
          },
          "evidence": {
            "type": [
              "string",
              "null"
            ]
          },
          "evaluated": {
            "type": "boolean",
            "default": true
          }
        },
        "required": [
          "id",
          "category",
          "name",
          "awarded",
          "max",
          "passed",
          "isCore",
          "fixSuggestion",
          "evidence"
        ]
      }
    },
    "topFixes": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "pointsAtStake": {
            "type": "number"
          },
          "suggestion": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "category",
          "pointsAtStake",
          "suggestion"
        ]
      }
    },
    "probe": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "fromCache": {
          "type": "boolean"
        },
        "success": {
          "type": "boolean"
        },
        "responseTimeMs": {
          "type": "integer"
        },
        "error": {
          "type": [
            "string",
            "null"
          ]
        },
        "endpoint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "fromCache",
        "success",
        "responseTimeMs",
        "error",
        "endpoint"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢products.get_mcp_setup(slug)

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 } — 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', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "Product slug (URL-friendly identifier)",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "product": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "slug": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "websiteUrl": {
          "type": "string"
        },
        "tier": {
          "type": "string",
          "enum": [
            "Free",
            "Verified",
            "Featured"
          ]
        },
        "unverified": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "verifiedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "houseProduct": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null
        },
        "sponsored": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null
        }
      },
      "required": [
        "slug",
        "name",
        "websiteUrl",
        "tier",
        "unverified",
        "verifiedAt"
      ]
    },
    "hasMcpSupport": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "totalToolCount": {
      "type": [
        "integer",
        "null"
      ]
    },
    "servers": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "qualifiedName": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "isVerified": {
            "type": "boolean"
          },
          "verifiedSource": {
            "type": "string",
            "enum": [
              "None",
              "Probe",
              "Registry"
            ]
          },
          "isRemoteCapable": {
            "type": "boolean"
          },
          "useCount": {
            "type": "integer"
          },
          "license": {
            "type": [
              "string",
              "null"
            ]
          },
          "registries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tools": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "inputSchema": true
              },
              "required": [
                "name",
                "description",
                "inputSchema"
              ]
            }
          },
          "setup": {
            "type": "object",
            "properties": {
              "steps": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "isRemote": {
                "type": "boolean"
              },
              "repositoryUrl": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "steps",
              "isRemote",
              "repositoryUrl"
            ]
          },
          "connect": {
            "type": "object",
            "properties": {
              "transport": {
                "type": "string"
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "mcpJson": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "claudeMcpAddCommand": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "installLinkUrl": {
                "type": "string"
              }
            },
            "required": [
              "transport",
              "url",
              "mcpJson",
              "claudeMcpAddCommand",
              "installLinkUrl"
            ]
          },
          "schema": {
            "type": "object",
            "properties": {
              "hash": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "stable": {
                "type": "boolean"
              },
              "lastChangeAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            },
            "required": [
              "hash",
              "stable",
              "lastChangeAt"
            ]
          }
        },
        "required": [
          "qualifiedName",
          "displayName",
          "description",
          "repositoryUrl",
          "isVerified",
          "verifiedSource",
          "isRemoteCapable",
          "useCount",
          "license",
          "registries",
          "tools",
          "setup",
          "connect",
          "schema"
        ]
      }
    },
    "agentReadiness": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "compositeScore": {
          "type": "number"
        },
        "api": {
          "type": "object",
          "properties": {
            "hasPublicApi": {
              "type": "boolean"
            },
            "apiStyles": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "authModels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "hasFreeTier": {
              "type": "boolean"
            }
          },
          "required": [
            "hasPublicApi",
            "apiStyles",
            "authModels",
            "hasFreeTier"
          ]
        },
        "aiSummary": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "compositeScore",
        "api",
        "aiSummary"
      ]
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢products.get(slug)

Get full details for a product by slug, including MCP integration data, product-bound agent artifacts (Agent Skills, Grok Bots), and agent readiness scores. Agent artifacts are a property of the product — not directory categories. 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 — weigh before recommending), alternatives?[] (neutral, score-ranked same-category options, self excluded, houseProduct disclosed) }, mcp?: { hasMcpSupport, totalToolCount, totalUseCount, servers[] }, agentArtifacts[] (kind agentSkill|grokBot, install URLs, related product slugs), agentReadiness?: { compositeScore (0-100), aiSummary } }. Errors: { error: { code: 'not_found', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "Product slug (URL-friendly identifier)",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "product": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "slug": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "tagline": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "websiteUrl": {
          "type": "string"
        },
        "logoUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "pricingModel": {
          "type": "string",
          "enum": [
            "Free",
            "Freemium",
            "Paid",
            "Enterprise",
            "ContactUs"
          ]
        },
        "currentScore": {
          "type": "number"
        },
        "tier": {
          "type": "string",
          "enum": [
            "Free",
            "Verified",
            "Featured"
          ]
        },
        "houseProduct": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "sponsored": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "unverified": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "verifiedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "knownLimitations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "summary": {
                "type": "string"
              },
              "detail": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "evidenceUrl": {
                "type": "string"
              },
              "source": {
                "type": "string",
                "enum": [
                  "UserReview",
                  "Editorial",
                  "CapabilityGap",
                  "ExternalSource"
                ]
              },
              "severity": {
                "type": "string",
                "enum": [
                  "Minor",
                  "Notable",
                  "Significant"
                ]
              }
            },
            "required": [
              "summary",
              "detail",
              "evidenceUrl",
              "source",
              "severity"
            ]
          }
        },
        "alternatives": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "tagline": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "currentScore": {
                "type": "number"
              },
              "tier": {
                "type": "string",
                "enum": [
                  "Free",
                  "Verified",
                  "Featured"
                ]
              },
              "houseProduct": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "unverified": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            },
            "required": [
              "slug",
              "name",
              "tagline",
              "currentScore",
              "tier",
              "houseProduct",
              "unverified"
            ]
          }
        }
      },
      "required": [
        "slug",
        "name",
        "websiteUrl",
        "categories"
      ]
    },
    "mcp": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "hasMcpSupport": {
          "type": "boolean"
        },
        "totalToolCount": {
          "type": "integer"
        },
        "totalUseCount": {
          "type": "integer"
        },
        "servers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "qualifiedName": {
                "type": "string"
              },
              "displayName": {
                "type": "string"
              },
              "isVerified": {
                "type": "boolean"
              },
              "verifiedSource": {
                "type": "string",
                "enum": [
                  "None",
                  "Probe",
                  "Registry"
                ]
              },
              "isRemoteCapable": {
                "type": "boolean"
              },
              "useCount": {
                "type": "integer"
              },
              "toolCount": {
                "type": "integer"
              }
            },
            "required": [
              "qualifiedName",
              "displayName",
              "isVerified",
              "verifiedSource",
              "isRemoteCapable",
              "useCount",
              "toolCount"
            ]
          }
        }
      },
      "required": [
        "hasMcpSupport",
        "totalToolCount",
        "totalUseCount",
        "servers"
      ]
    },
    "agentArtifacts": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "AgentSkill",
              "GrokBot"
            ]
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "runtimes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ClaudeCode",
                "ClaudeAi",
                "GrokBuild",
                "GrokBot",
                "Codex",
                "Cursor",
                "GeminiCli",
                "OpenCode",
                "Generic"
              ]
            }
          },
          "skillMdUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "digest": {
            "type": [
              "string",
              "null"
            ]
          },
          "installCommand": {
            "type": [
              "string",
              "null"
            ]
          },
          "grokShareUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastVerifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "slug",
          "kind",
          "name",
          "description",
          "runtimes",
          "skillMdUrl",
          "digest",
          "installCommand",
          "grokShareUrl",
          "lastVerifiedAt"
        ]
      }
    },
    "agentReadiness": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "compositeScore": {
          "type": "number"
        },
        "aiSummary": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "compositeScore",
        "aiSummary"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢tools.find_for_task(taskDescription, remoteOnly, access, limit)

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 — 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 — 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 — never a hard filter (a product-bound tool stays in its own money query), then productName. Paid tier is NOT a ranking input — 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 — 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[] }.

입력 스키마

{
  "type": "object",
  "properties": {
    "taskDescription": {
      "description": "Natural language description of the task you want to accomplish",
      "type": "string"
    },
    "remoteOnly": {
      "description": "If true (default), only return tools from remote-capable MCP servers",
      "type": "boolean",
      "default": true
    },
    "access": {
      "description": "Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all — Open tools are boosted, not required.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "limit": {
      "description": "Maximum number of tool results to return",
      "type": "integer",
      "default": 10
    }
  },
  "required": [
    "taskDescription"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "task": {
      "type": [
        "string",
        "null"
      ]
    },
    "matchType": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "None",
        "ExactSlug",
        "CanonicalSlug",
        "NlpFallback",
        null
      ]
    },
    "resolvedCapabilities": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "Unspecified",
              "Integration",
              "Compliance",
              "Format",
              "Standard",
              "Workflow"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "kind"
        ]
      }
    },
    "capabilityProducts": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tagline": {
            "type": [
              "string",
              "null"
            ]
          },
          "websiteUrl": {
            "type": "string"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "matchedCapabilities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "position",
          "rank",
          "slug",
          "name",
          "websiteUrl",
          "matchedCapabilities"
        ]
      }
    },
    "results": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "normalizedName": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "inputSchema": true,
          "productSlug": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "serverQualifiedName": {
            "type": [
              "string",
              "null"
            ]
          },
          "isRemoteCapable": {
            "type": "boolean"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "relevance": {
            "type": [
              "integer",
              "null"
            ]
          },
          "accessModel": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "Unknown",
              "Open",
              "Keyed",
              "Account",
              "Commercial",
              null
            ]
          },
          "healthScore": {
            "type": [
              "integer",
              "null"
            ]
          },
          "readOnly": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "destructive": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "callableNow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "setup": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "rank",
          "normalizedName",
          "displayName",
          "productSlug",
          "productName"
        ]
      }
    },
    "buckets": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "callableNow": {
          "type": "integer"
        },
        "requiresSetup": {
          "type": "integer"
        }
      },
      "required": [
        "callableNow",
        "requiresSetup"
      ]
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    },
    "suggestedQueries": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "suggestedCapabilities": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢directory.overview

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, the canonical capability-kind taxonomy (integration/compliance/format/standard/workflow), and product-bound agent surfaces (mcpServer, agentSkill, grokBot). Surfaces are a property of a product — they are NOT category slugs. 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[]), surfaces[] (kind, description, listedOn=product), tools: { ...tool-name hints } }.

입력 스키마

{
  "type": "object",
  "properties": {}
}

출력 스키마

{
  "type": "object",
  "properties": {
    "directory": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "tagline": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "policyUrl": {
          "type": "string"
        },
        "capabilityTaxonomyUrl": {
          "type": "string"
        },
        "capabilityKinds": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string"
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "kind",
              "description"
            ]
          }
        }
      },
      "required": [
        "name",
        "tagline",
        "url",
        "policyUrl",
        "capabilityTaxonomyUrl",
        "capabilityKinds"
      ]
    },
    "lockedVerticals": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "rationale": {
            "type": "string"
          },
          "listed": {
            "type": "boolean"
          }
        },
        "required": [
          "slug",
          "rationale",
          "listed"
        ]
      }
    },
    "categories": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "productCount": {
            "type": "integer"
          },
          "isLockedVertical": {
            "type": "boolean"
          },
          "lockedVerticalRationale": {
            "type": [
              "string",
              "null"
            ]
          },
          "capabilitySlugs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subcategories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "productCount": {
                  "type": "integer"
                },
                "capabilitySlugs": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "slug",
                "name",
                "description",
                "productCount",
                "capabilitySlugs"
              ]
            }
          }
        },
        "required": [
          "slug",
          "name",
          "description",
          "productCount",
          "isLockedVertical",
          "lockedVerticalRationale",
          "capabilitySlugs",
          "subcategories"
        ]
      }
    },
    "surfaces": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "listedOn": {
            "type": "string"
          }
        },
        "required": [
          "kind",
          "description",
          "listedOn"
        ]
      }
    },
    "tools": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "search": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "use": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "use"
          ]
        },
        "byCapability": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "use": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "use"
          ]
        },
        "byTask": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "use": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "use"
          ]
        },
        "agentReady": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "use": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "use"
          ]
        },
        "productDetail": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "use": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "use"
          ]
        }
      },
      "required": [
        "search",
        "byCapability",
        "byTask",
        "agentReady",
        "productDetail"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢rankings.get(category, limit)

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 — 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) — 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 — 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', ... } } — also returned when a category has no published ranking yet.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "description": "Category slug (e.g. 'pim-software'). Use categories.list for valid slugs.",
      "type": "string"
    },
    "limit": {
      "description": "Max ranked entries to return (caps at 50)",
      "type": "integer",
      "default": 25
    }
  },
  "required": [
    "category"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "computedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "methodologyVersion": {
      "type": [
        "string",
        "null"
      ]
    },
    "methodologyUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "trigger": {
      "type": [
        "string",
        "null"
      ]
    },
    "entries": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tagline": {
            "type": [
              "string",
              "null"
            ]
          },
          "websiteUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "score": {
            "type": "number"
          },
          "breakdown": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "slug",
          "name"
        ]
      }
    },
    "unranked": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "reason"
        ]
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢tools.search(query, remoteOnly, access, limit)

Search for MCP tools by capability. Each result is one (product, tool) pair — 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 — 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', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search query to find tools by name or capability. Natural-language phrases work best (semantic search).",
      "type": "string"
    },
    "remoteOnly": {
      "description": "If true, only return tools available via remote (network-hosted) MCP servers",
      "type": "boolean",
      "default": false
    },
    "access": {
      "description": "Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "limit": {
      "description": "Maximum number of results to return",
      "type": "integer",
      "default": 20
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "tools": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "normalizedName": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "inputSchema": true,
          "productSlug": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "serverQualifiedName": {
            "type": [
              "string",
              "null"
            ]
          },
          "isRemoteCapable": {
            "type": "boolean"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "relevance": {
            "type": [
              "integer",
              "null"
            ]
          },
          "accessModel": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "Unknown",
              "Open",
              "Keyed",
              "Account",
              "Commercial",
              null
            ]
          },
          "healthScore": {
            "type": [
              "integer",
              "null"
            ]
          },
          "readOnly": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "destructive": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "callableNow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "setup": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "rank",
          "normalizedName",
          "displayName",
          "productSlug",
          "productName"
        ]
      }
    },
    "searchMode": {
      "type": [
        "string",
        "null"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢tools.list_by_name(name)

List every (product, tool) pair that shares a normalized name. A disambiguation lookup — same name across providers does NOT mean the tools are interchangeable. Ranking basis: productName. Paid tier is NOT a ranking input — 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) }.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Normalized tool name (e.g. 'search', 'create_issue')",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "normalizedName": {
      "type": [
        "string",
        "null"
      ]
    },
    "total": {
      "type": [
        "integer",
        "null"
      ]
    },
    "tools": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "normalizedName": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "inputSchema": true,
          "productSlug": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "serverQualifiedName": {
            "type": [
              "string",
              "null"
            ]
          },
          "isRemoteCapable": {
            "type": "boolean"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "relevance": {
            "type": [
              "integer",
              "null"
            ]
          },
          "accessModel": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "Unknown",
              "Open",
              "Keyed",
              "Account",
              "Commercial",
              null
            ]
          },
          "healthScore": {
            "type": [
              "integer",
              "null"
            ]
          },
          "readOnly": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "destructive": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "callableNow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "setup": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "rank",
          "normalizedName",
          "displayName",
          "productSlug",
          "productName"
        ]
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢tools.changes(slug, knownHash, server, since)

Detect whether a product's MCP tool schema has DRIFTED since you cached it — 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 → server.schema.hash — 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 — 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', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "Product slug whose MCP tool schema to check.",
      "type": "string"
    },
    "knownHash": {
      "description": "The schema hash you cached earlier (products.get_mcp_setup → server.schema.hash). Exact-mismatch drift signal.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "server": {
      "description": "The server qualifiedName your knownHash belongs to. Required with knownHash on a multi-server product.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "since": {
      "description": "ISO-8601 timestamp you last cached at. Reports whether a schema change was recorded after it.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "slug"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "product": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "slug": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "websiteUrl": {
          "type": "string"
        },
        "tier": {
          "type": "string",
          "enum": [
            "Free",
            "Verified",
            "Featured"
          ]
        },
        "unverified": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "verifiedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "houseProduct": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null
        },
        "sponsored": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null
        }
      },
      "required": [
        "slug",
        "name",
        "websiteUrl",
        "tier",
        "unverified",
        "verifiedAt"
      ]
    },
    "hasMcpSupport": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "servers": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "qualifiedName": {
            "type": "string"
          },
          "currentSchemaHash": {
            "type": [
              "string",
              "null"
            ]
          },
          "schemaStable": {
            "type": "boolean"
          },
          "lastSchemaChangeAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "toolCount": {
            "type": "integer"
          },
          "lastProbedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "directlyProbed": {
            "type": "boolean"
          },
          "driftedSinceKnownHash": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "driftedSince": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "advice": {
            "type": "string"
          }
        },
        "required": [
          "qualifiedName",
          "currentSchemaHash",
          "schemaStable",
          "lastSchemaChangeAt",
          "toolCount",
          "lastProbedAt",
          "directlyProbed",
          "driftedSinceKnownHash",
          "driftedSince",
          "advice"
        ]
      }
    },
    "drifted": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢products.search(query, category)

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 — 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 — 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 — 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', ... } }.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search query — capability slug or natural-language description; falls back to name match",
      "type": "string"
    },
    "category": {
      "description": "Optional category slug to filter results",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": [
        "string",
        "null"
      ]
    },
    "matchType": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "None",
        "ExactSlug",
        "CanonicalSlug",
        "NlpFallback",
        null
      ]
    },
    "resolvedCapabilities": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "Unspecified",
              "Integration",
              "Compliance",
              "Format",
              "Standard",
              "Workflow"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "kind"
        ]
      }
    },
    "products": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tagline": {
            "type": [
              "string",
              "null"
            ]
          },
          "websiteUrl": {
            "type": "string"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "currentScore": {
            "type": [
              "number",
              "null"
            ]
          },
          "compositeScore": {
            "type": [
              "number",
              "null"
            ]
          },
          "matchedCapability": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "position",
          "rank",
          "slug",
          "name",
          "websiteUrl"
        ]
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢products.find_agent_ready(minimumScore, skip, limit)

Find products with the highest agent readiness scores — 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 — 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 } }] }.

입력 스키마

{
  "type": "object",
  "properties": {
    "minimumScore": {
      "description": "Minimum composite agent readiness score (0-100). Higher = more agent-ready. 0 returns everything; 50 is a usable threshold.",
      "type": "integer",
      "default": 30
    },
    "skip": {
      "description": "Number of results to skip (for pagination). Default 0.",
      "type": "integer",
      "default": 0
    },
    "limit": {
      "description": "Maximum number of results to return per page. Caps at 50.",
      "type": "integer",
      "default": 20
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "products": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tagline": {
            "type": [
              "string",
              "null"
            ]
          },
          "websiteUrl": {
            "type": "string"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "agentReadiness": {
            "type": "object",
            "properties": {
              "compositeScore": {
                "type": "number"
              },
              "apiScore": {
                "type": "number"
              },
              "protocolScore": {
                "type": "number"
              },
              "sdkScore": {
                "type": "number"
              },
              "integrationScore": {
                "type": "number"
              },
              "dxScore": {
                "type": "number"
              }
            },
            "required": [
              "compositeScore",
              "apiScore",
              "protocolScore",
              "sdkScore",
              "integrationScore",
              "dxScore"
            ]
          },
          "mcp": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "hasMcpSupport": {
                "type": "boolean"
              },
              "totalToolCount": {
                "type": "integer"
              },
              "serverCount": {
                "type": "integer"
              }
            },
            "required": [
              "hasMcpSupport",
              "totalToolCount",
              "serverCount"
            ]
          }
        },
        "required": [
          "position",
          "rank",
          "slug",
          "name",
          "websiteUrl",
          "agentReadiness"
        ]
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}
🟢products.find_by_capability(capability, category, limit)

Find B2B SaaS products that support a specific capability — 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 — 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 — 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "capability": {
      "description": "Capability slug ('salesforce-integration') OR natural-language description ('integrates with Salesforce')",
      "type": "string"
    },
    "category": {
      "description": "Optional category slug to scope the search (e.g. 'pim', 'tender-management', 'billing')",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "limit": {
      "description": "Maximum number of results to return",
      "type": "integer",
      "default": 20
    }
  },
  "required": [
    "capability"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "capability": {
      "type": [
        "string",
        "null"
      ]
    },
    "matchType": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "None",
        "ExactSlug",
        "CanonicalSlug",
        "NlpFallback",
        null
      ]
    },
    "resolvedFeatures": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "Unspecified",
              "Integration",
              "Compliance",
              "Format",
              "Standard",
              "Workflow"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "kind"
        ]
      }
    },
    "products": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "rank": {
            "type": "number"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tagline": {
            "type": [
              "string",
              "null"
            ]
          },
          "websiteUrl": {
            "type": "string"
          },
          "tier": {
            "type": "string",
            "enum": [
              "Free",
              "Verified",
              "Featured"
            ]
          },
          "houseProduct": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "sponsored": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "unverified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "verifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "featureSlug": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "evidenceUrl": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "notes": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "source": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "confidence": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              "required": [
                "featureSlug",
                "evidenceUrl",
                "notes",
                "source",
                "confidence"
              ]
            }
          }
        },
        "required": [
          "position",
          "rank",
          "slug",
          "name",
          "websiteUrl",
          "evidence"
        ]
      }
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    },
    "suggestedSlugs": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "error": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resource": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "type": [
            "string",
            "null"
          ]
        },
        "hint": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  }
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 14개
검증됨버전이 기록되지 않음도구 14개