Verity
Cited product-compliance ground truth for AI agents. Never generates; always cites.
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"verity": {
"url": "https://verity-mcp-243195959173.us-central1.run.app/mcp"
}
}
}Remote endpoints
https://verity-mcp-243195959173.us-central1.run.app/mcpstreamable-httpTool inventory
Tools (4)
🟢search_recalls(query, market, limit)
Search official CPSC recall records by product name, brand, model, or UPC. Returns only cited recall records from the store, each with a source URL and a match score. If nothing matches, returns an empty list rather than guessing.
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"market": {
"default": "US",
"title": "Market",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"required": [
"query"
],
"title": "search_recallsArguments"
}🟢get_requirement(subject, market)
Get cited compliance requirements for a product subject in a given market (e.g. subject='childrens_products', market='US'). Returns facts with their official citation URL and last-verified date.
Input Schema
{
"type": "object",
"properties": {
"subject": {
"title": "Subject",
"type": "string"
},
"market": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Market"
}
},
"required": [
"subject"
],
"title": "get_requirementArguments"
}🟢list_changes(since, limit)
List ground-truth changes since an ISO-8601 timestamp (e.g. '2026-09-01T00:00:00+00:00'). Includes newly published recalls and rule changes, each with its source URL.
Input Schema
{
"type": "object",
"properties": {
"since": {
"title": "Since",
"type": "string"
},
"limit": {
"default": 100,
"title": "Limit",
"type": "integer"
}
},
"required": [
"since"
],
"title": "list_changesArguments"
}🟢verify(query)
Check a factual claim or product query against the store. Returns only cited records (recalls and facts) that match. Explicitly reports 'no verified record' when nothing matches -- it never synthesizes an answer, so absence means 'not in the store', not a negative claim.
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "verifyArguments"
}