1. Resolve intent
resolve_delivery("Jane Smith")The agent identifies who the user means. OnceAsk decides whether delivery is authorized.
AGENT DELIVERY INFRASTRUCTURE
Resolve a person, get consent when needed, then send through a fulfillment provider using an opaque capability instead of putting a home address into model context.
resolve_delivery("Jane Smith")The agent identifies who the user means. OnceAsk decides whether delivery is authorized.
request_delivery_permission()If permission or a current address is missing, OnceAsk routes the recipient through confirmation.
send_handwritten_card()The recipient address goes directly from OnceAsk to the provider. The agent receives fulfillment status, not the street address.
MCP CLIENTS
ChatGPT and other consumer clients can connect with OAuth. Developer integrations can keep using least-privilege API keys. The private-delivery tools all work under resolve_delivery.
Set ONCEASK_API_KEY in your environment, then install the remote MCP server or paste this config into mcp.json.
{
"mcpServers": {
"onceask": {
"url": "https://onceask.com/_api/mcp",
"headers": {
"Authorization": "Bearer ${env:ONCEASK_API_KEY}"
}
}
}
}Point the Messages API MCP connector at OnceAsk and provide the OnceAsk key as the authorization token.
mcp_servers=[{
"type": "url",
"url": "https://onceask.com/_api/mcp",
"name": "onceask",
"authorization_token": ONCEASK_API_KEY
}],
tools=[{
"type": "mcp_toolset",
"mcp_server_name": "onceask"
}],
betas=["mcp-client-2025-11-20"]OnceAsk now supports OAuth 2.1 + PKCE for account connection. Use https://onceask.com/_api/mcp as the remote MCP server. The public Plugin Directory listing is pending OpenAI review.
tools: [{
type: "mcp",
server_label: "onceask",
server_url: "https://onceask.com/_api/mcp",
headers: { Authorization: "Bearer " + ONCEASK_API_KEY }
}]FIRST FULFILLMENT PROVIDER
First call list_handwritten_cards or the catalog endpoint. After resolve_delivery returns an authorized token, submit the card. OnceAsk resolves the destination server-side and sends it directly to Handwrytten.
curl https://onceask.com/_api/v1/fulfillment/handwrytten/send \
-H "Authorization: Bearer $ONCEASK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"deliveryToken": "oa_del_...",
"cardId": 36,
"message": "Happy birthday, Jane!",
"wishes": "Love, Rebecca",
"fontLabel": "Casual David"
}'DISCOVERY SURFACES