Server definition
- Hash
- sha256:6df6f5b52a5299cc6acb7e00aeab97a94e960d039fd346fd403660abedef9309
- What it is
- What a remote MCP server returned when asked what it offers: 7 tools
The blob, as servednamed by its sha256
{
"instructions": "Errand is a physical-world execution layer for AI agents in Seoul (Gangnam beta). Use it when a user needs eyes, hands, or physical presence at a real place: on-site verification, store/shelf/price/open-hours checks, photos, queue checks or holding, and pickups. Do not use Errand for purely digital tasks. Safe flow: list_capabilities → check_coverage → quote → present total_charge_krw and obtain explicit user confirmation → dispatch → poll get_status → get_result. Rewards are KRW; dispatch escrows reward plus platform fee, and failure/expiry/pre-acceptance cancellation refunds in full. Never call errand_dispatch when quote.can_dispatch is false. Account caps are pre-approved boundaries; a cap violation means the owner must raise it, not that you should retry.",
"tools": [
{
"description": "Cancel a real-world human dispatch while it is still open and refund the escrow in full. Fails once a worker has accepted and may already be traveling.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dispatch_id": {
"description": "Id returned by errand_dispatch.",
"type": "string"
}
},
"required": [
"dispatch_id"
],
"type": "object"
},
"name": "errand_cancel",
"outputSchema": null
},
{
"description": "Check whether a nearby human can be dispatched to a physical location before spending. Returns reachable_workers (switched on, seen within 24h — these get the push) and online_workers (app open this minute). Use for on-site or store checks, photos, queues, pickups, and other real-world tasks when you need current human availability.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"radius_m": {
"description": "Default 3000.",
"maximum": 10000,
"minimum": 100,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "errand_check_coverage",
"outputSchema": null
},
{
"description": "Send a nearby real human to a physical location for on-site verification, store/shelf/price checks, photos, queue checks or holding, or a pickup. This spends money and creates a real-world action: call errand_quote first, present its exact total_charge_krw, and obtain explicit user confirmation. The worker travels to the site, completes the instructions, and submits GPS/time-verified in-app evidence. Completed tasks pay the worker; failed, expired, or pre-acceptance cancelled tasks refund escrow.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address_hint": {
"description": "Human-readable place name/address shown to the worker.",
"type": "string"
},
"expires_in_minutes": {
"maximum": 1440,
"minimum": 10,
"type": "integer"
},
"instructions": {
"description": "Exactly what the worker should do on site, in the worker's language.",
"type": "string"
},
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"radius_m": {
"description": "Dispatch radius for worker matching.",
"maximum": 10000,
"minimum": 100,
"type": "integer"
},
"report_fields": {
"description": "Structured values the worker must report from the site (e.g. how many people are waiting). Returned in the result and included in the webhook.",
"items": {
"additionalProperties": false,
"properties": {
"key": {
"pattern": "^[a-z][a-z0-9_]{0,39}$",
"type": "string"
},
"label": {
"description": "Worker-facing prompt in Korean, e.g. \"현재 대기 인원\".",
"type": "string"
},
"placeholder": {
"description": "Example answer shown in the empty field, e.g. \"약 40\".",
"type": "string"
},
"type": {
"enum": [
"text",
"number"
],
"type": "string"
},
"unit": {
"description": "Unit shown beside the label, e.g. \"명\" or \"분\". Set it whenever the answer is a quantity: without it a worker asked for \"예상 대기 시간\" may reply \"11\" and you cannot tell minutes from people.",
"type": "string"
}
},
"required": [
"key",
"label",
"type"
],
"type": "object"
},
"maxItems": 5,
"type": "array"
},
"reward_krw": {
"maximum": 200000,
"minimum": 1000,
"type": "integer"
},
"task_type": {
"enum": [
"verify",
"photograph",
"pickup",
"queue",
"check"
],
"type": "string"
},
"title": {
"description": "Short worker-facing title, e.g. \"성수동 XYZ 팝업 대기줄 확인\".",
"type": "string"
},
"validation_criteria": {
"description": "What the photos must show for the evidence to pass, e.g. \"매장 입구와 대기줄 전체가 한 프레임에 보여야 함\".",
"type": "string"
},
"webhook_url": {
"description": "HTTPS URL that receives mission.completed / mission.failed / mission.cancelled / mission.expired events, so you do not have to poll. Payload is advisory — confirm via errand_get_result.",
"type": "string"
}
},
"required": [
"task_type",
"title",
"instructions",
"validation_criteria",
"lat",
"lng",
"radius_m",
"reward_krw",
"expires_in_minutes"
],
"type": "object"
},
"name": "errand_dispatch",
"outputSchema": null
},
{
"description": "Retrieve the verified on-site result from a human task: pass/fail verdict, score and feedback, signed photo URLs, structured answers, and evidence provenance including GPS distance, capture time, and server checks.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dispatch_id": {
"description": "Id returned by errand_dispatch.",
"type": "string"
}
},
"required": [
"dispatch_id"
],
"type": "object"
},
"name": "errand_get_result",
"outputSchema": null
},
{
"description": "Track a previously dispatched local human task: open · accepted · arrived · submitted · completed · failed · cancelled · expired, plus its event timeline. Use after errand_dispatch while the person is traveling or working on site.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dispatch_id": {
"description": "Id returned by errand_dispatch.",
"type": "string"
}
},
"required": [
"dispatch_id"
],
"type": "object"
},
"name": "errand_get_status",
"outputSchema": null
},
{
"description": "Use before a local-human or physical-world task to see what Errand can do for this account: supported on-site task types (check, verify, photograph, queue, pickup), spend caps, allowed area, KRW balance, and pricing. Read-only.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "errand_list_capabilities",
"outputSchema": null
},
{
"description": "Get the exact read-only quote for sending a human to a real-world location for a check, verification, photo, queue task, or pickup. Validates account caps, live worker coverage, and balance; returns reward_krw, platform_fee_krw, and exact total_charge_krw. Present that total to the user and obtain explicit confirmation before errand_dispatch.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lat": {
"type": "number"
},
"lng": {
"type": "number"
},
"radius_m": {
"description": "Default 3000.",
"maximum": 10000,
"minimum": 100,
"type": "integer"
},
"reward_krw": {
"maximum": 200000,
"minimum": 1000,
"type": "integer"
},
"task_type": {
"enum": [
"verify",
"photograph",
"pickup",
"queue",
"check"
],
"type": "string"
}
},
"required": [
"task_type",
"lat",
"lng",
"reward_krw"
],
"type": "object"
},
"name": "errand_quote",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6df6f5b52a5299cc6acb7e00aeab97a94e960d039fd346fd403660abedef9309 | sha256sum