Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getovra.com/llms.txt

Use this file to discover all available pages before exploring further.

The OpenAI Agents SDK speaks MCP natively. Plug in Ovra and your agents pick up all 19 tools — ovra_pay, ovra_card, ovra_intent, the rest — without writing tool wrappers.
Sandbox-only today. Use a sk_sandbox_* or sk_test_* key.

Install

pip install openai-agents
OpenAI calls Ovra directly — no local subprocess.
from agents import Agent, HostedMCPTool, Runner

agent = Agent(
    name="Procurement Agent",
    instructions=(
        "You buy office supplies under EUR 100. "
        "Always declare an intent before requesting credentials. "
        "Never ask the user for card numbers — Ovra handles that."
    ),
    model="gpt-4.1",
    tools=[
        HostedMCPTool(
            tool_config={
                "type": "mcp",
                "server_label": "ovra",
                "server_url": "https://api.getovra.com/api/mcp",
                "headers": {"Authorization": "Bearer sk_sandbox_..."},
                "require_approval": "never",
            }
        )
    ],
)

Streamable HTTP (self-hosted)

from agents import Agent
from agents.mcp import MCPServerStreamableHttp

ovra = MCPServerStreamableHttp(
    url="https://api.getovra.com/api/mcp",
    headers={"Authorization": "Bearer sk_sandbox_..."},
)

agent = Agent(
    name="Procurement Agent",
    instructions="You buy office supplies under EUR 100.",
    model="gpt-4.1",
    mcp_servers=[ovra],
)

Run

result = await Runner.run(
    agent,
    "Buy a USB-C hub under EUR 30 on amazon.de"
)
print(result.final_output)

Payment flow the agent executes

1

Declare intent

ovra_intent { action: "declare", agentId, purpose, expectedAmountEuros, expectedMerchant }
2

Mint credential

ovra_pay { action: "checkout", ... } (or handle_402 for MPP merchants)
3

Pay at merchant

Either MPP (server-to-server) or CUA (browser autofill).
4

Verify + close

ovra_intent { action: "verify", ... } to record actual amount.
ToolPurpose
ovra_payFull flow in one call
ovra_intentDeclare and verify
ovra_credentialFine-grained credential lifecycle
ovra_transactionRead history
ovra_policyInspect spending limits before declaring

Human approval

For policies with enforcementLevel: "approve", intents land in pending_approval. The OpenAI Agents SDK supports human-in-the-loop checkpoints; pause until your approval surface flips the intent to approved.

Next

MCP overview

Architecture and the full 19-tool list.

LangGraph

Stateful agent graphs.

CrewAI

Multi-agent teams with role separation.