GroundTruth Field Evidence
Verified location-bound retail evidence for AI agents, delivered by human field workers.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"groundtruth": {
"url": "https://groundtruth-oracle.vercel.app/api/mcp"
}
}
}Remote endpoints
https://groundtruth-oracle.vercel.app/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢ground_truth_info
Get info about the GroundTruth ASP — what it does, pricing, and how to call it
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡human_do(intent, proof_type, instructions, target_location, service_tier, ...)
Create a task for a human oracle to complete in the real world. Requires x402 payment. Returns a task_id to poll with task_status.
Input Schema
{
"type": "object",
"properties": {
"intent": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "What you want the human to do"
},
"proof_type": {
"type": "string",
"enum": [
"photo",
"form"
],
"description": "Type of proof"
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Detailed instructions for the human"
},
"target_location": {
"description": "Optional target location and allowed capture radius",
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Human-readable store or site name"
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius_meters": {
"default": 150,
"type": "integer",
"minimum": 25,
"maximum": 5000
}
},
"required": [
"label",
"latitude",
"longitude"
]
},
"service_tier": {
"default": "integration_test",
"type": "string",
"enum": [
"integration_test",
"evaluation_test",
"quick_check",
"photo_visit",
"urgent_visit",
"complex_visit"
]
},
"timeout_seconds": {
"default": 3600,
"type": "integer",
"minimum": 60,
"maximum": 86400
}
},
"required": [
"intent",
"proof_type",
"instructions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢task_status(task_id)
Check the status and result of a GroundTruth task by its task_id
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The task ID returned by human_do"
}
},
"required": [
"task_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪review_task(task_id, decision, reason)
Review a submitted proof and accept or reject it. Accept releases the on-chain payout to the human oracle; reject fails the task with no payout. Call this after task_status shows the proof.
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The task ID to review"
},
"decision": {
"type": "string",
"enum": [
"accept",
"reject"
],
"description": "accept = pay the oracle; reject = no payout"
},
"reason": {
"description": "Optional note explaining the decision",
"type": "string",
"maxLength": 300
}
},
"required": [
"task_id",
"decision"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence