Tool Details: hitl_request

Basic Information

Tool Name:hitl_request
Asset Name:HITL Request
Description:Ask a human for decisions, approvals or information. Delivers a durable request into the target user's h/ inbox and returns a Job that stays INPUT_REQUIRED until the human answers (Job COMPLETE with the response), rejects, or the request expires (Job FAILED). Asks are typed: text (free text), approval (yes/no), choice (pick one option), checkboxes (pick many). Approval asks and options may offer capability grants ({with, can, exp?}) that are issued ONLY if the human makes that choice and explicitly echoes the grant. Grant exp is unix seconds; omit it for the venue's 7-day default or set it explicitly to null to request no expiry. A venue may configure a finite HITL grant ceiling and rejects excessive offers before delivery. Omit user to ask your own owner. There is no framework timeout — set timeout (seconds) for time-sensitive asks and handle the FAILED outcome.
Adapter:hitl
Asset Hash:0x225616cb4b363e71acb3653818ce9eb51119de1e38a8078ba21058908a4e855f
Input
PropertyTypeDescription
timeoutintegerSeconds until the request expires (Job FAILED, record status 'expired'). Omit for no expiry.
descriptionstringMarkdown context for the decision — the human sees only this record, not your conversation, so include everything needed to decide.
asks*arrayOne or more asks. Each: {id, type: text|approval|choice|checkboxes, prompt, required?, comment?, options? (choice/checkboxes: [{id, label, description?, grants?}]), grants? (approval only)}.
title*stringShort human-readable summary of what is being asked.
userstringTarget responder DID. Omit to ask the calling user (an agent asking its owner). Cross-user delivery requires a hitl/request delegation from the target.
Output

Type: object

Schema: <code>{ &quot;type&quot;: &quot;object&quot;, &quot;description&quot;: &quot;On completion: {id, outcome: &#x27;answer&#x27;, answers: {askId: answer}, comments?, comment?, grants?, token?} — token is a UCAN carrying any echoed-and-approved grants.&quot; }</code>

MCP Tool Usage Examples

This tool can be called via the MCP (Model Context Protocol) endpoint. Here are examples of how to use it:

JSON-RPC Call Example:

POST to https://venue-1.covia.ai/mcp

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "hitl_request",
    "arguments": {
      "input": "your input here"
    }
  }
}
cURL Example:
curl -X POST https://venue-1.covia.ai/mcp \\
  -H "Content-Type: application/json" \\
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "hitl_request",
      "arguments": {
        "input": "your input here"
      }
    }
  }'
Python Example:
import requests
import json

url = "https://venue-1.covia.ai/mcp"
payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "hitl_request",
        "arguments": {
            "input": "your input here"
        }
    }
}

response = requests.post(url, json=payload)
result = response.json()
print(result)
JavaScript/Node.js Example:
const fetch = require('node-fetch');

const url = 'https://venue-1.covia.ai/mcp';
const payload = {
    jsonrpc: '2.0',
    id: 1,
    method: 'tools/call',
    params: {
        name: 'hitl_request',
        arguments: {
            input: 'your input here'
        }
    }
};

fetch(url, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));

Asset Metadata

{
	"name": "HITL Request",
	"description": "Ask a human for decisions, approvals or information. Delivers a durable request into the target user's h/ inbox and returns a Job that stays INPUT_REQUIRED until the human answers (Job COMPLETE with the response), rejects, or the request expires (Job FAILED). Asks are typed: text (free text), approval (yes/no), choice (pick one option), checkboxes (pick many). Approval asks and options may offer capability grants ({with, can, exp?}) that are issued ONLY if the human makes that choice and explicitly echoes the grant. Grant exp is unix seconds; omit it for the venue's 7-day default or set it explicitly to null to request no expiry. A venue may configure a finite HITL grant ceiling and rejects excessive offers before delivery. Omit user to ask your own owner. There is no framework timeout — set timeout (seconds) for time-sensitive asks and handle the FAILED outcome.",
	"creator": "Covia",
	"operation": {
		"adapter": "hitl:request",
		"internal": false,
		"toolName": "hitl_request",
		"input": {
			"type": "object",
			"properties": {
				"user": { "type": "string", "description": "Target responder DID. Omit to ask the calling user (an agent asking its owner). Cross-user delivery requires a hitl/request delegation from the target." },
				"title": { "type": "string", "description": "Short human-readable summary of what is being asked." },
				"description": { "type": "string", "description": "Markdown context for the decision — the human sees only this record, not your conversation, so include everything needed to decide." },
				"asks": {
					"type": "array",
					"description": "One or more asks. Each: {id, type: text|approval|choice|checkboxes, prompt, required?, comment?, options? (choice/checkboxes: [{id, label, description?, grants?}]), grants? (approval only)}.",
					"items": { "type": "object" }
				},
				"timeout": { "type": "integer", "description": "Seconds until the request expires (Job FAILED, record status 'expired'). Omit for no expiry." }
			},
			"required": ["title", "asks"]
		},
		"output": {
			"type": "object",
			"description": "On completion: {id, outcome: 'answer', answers: {askId: answer}, comments?, comment?, grants?, token?} — token is a UCAN carrying any echoed-and-approved grants."
		}
	}
}

Navigation

Back to adapter details

Back to all adapters

Back to index