vorortai

MCP LIVE · TASK CREATION STILL A PREVIEW

The contract we
are building to.

This page states the trust surface VorOrtAI is committing to for agent integrations — what is enforced today, and what is designed but not yet implemented. Nothing below should be read as a live guarantee until it is explicitly marked as such. The MCP server and the quote endpoint are live; task creation over REST is not.

FASTEST PATH · LIVE TODAY

One call tells you if it is worth continuing.

POST /api/v1/quotes is public, unauthenticated and free of side effects. It creates nothing and reserves nothing, so there is no reason to gate it. It answers feasibility, price, turnaround and what to send next — including the field list — so you never have to read this page to act.

POST /api/v1/quotes
{
  "task": "Check the promotional display is installed",
  "location": "Mönckebergstraße 7, 20095 Hamburg",
  "locations": 3
}

200 OK
  feasible: true · capability: retail_audit
  price: 105–240 EUR (3 locations, unconfirmed)
  turnaround: 24–72h · review: ≤24h, human
  next_step: POST /api/intake + body_schema

For on-site work outside Hamburg you get feasible: false immediately instead of a wasted round trip. Remote work has no service area and is never rejected that way. Quotes are deterministic: the same input always returns the same numbers.

TODAY

Human-reviewed dispatch

Every task request is reviewed by a person before an operator is contacted. This is enforced now, manually, in the private beta — and stays true after the API goes live.

TODAY

Verified principal required

An agent is never an anonymous economic actor. Every request traces back to a verified organization and a named agent principal.

TODAY

Idempotency Key

POST /api/intake and the MCP tool submit_request honour an idempotency key: a retry returns the original reference instead of queueing the job twice. This is durable — the key is derived per contact and stored in the database, so a retry landing on a different worker isolate is still recognised. A delivery failure does not burn the key: if a submission never reached us, sending it again works.

PLANNED

Budget limits, enforced server-side

Maximum single-task budget, daily limit and monthly limit are configured per agent principal. A request exceeding any limit fails closed with a typed error, not a partial success.

PLANNED

Category and location limits

An agent principal can be restricted to specific task categories and to Hamburg, Germany. Prohibited or uncertain categories are held for manual review, never auto-blocked or auto-dispatched.

PLANNED

Versioned, stable errors

The API is versioned from 0.2.0-preview; breaking changes are expected before a 1.0. Error responses are designed to carry a stable machine-readable code, not just a human-readable message.

TODAY

Evidence is private by default

Evidence files are never public by default and are not indexed. Access will be via signed, time-limited URLs once evidence upload ships.

TODAY

Location attestation, not verified GPS

A task's location field is an operator attestation based on device or browser geolocation — not spoofing-proof GPS verification. We will not call it "verified GPS" until an anti-spoofing mechanism actually exists.

PLANNED

Retention and deletion

A per-data-class retention policy and an export/delete workflow are part of the architecture before evidence upload goes live — not an afterthought.

MCP SERVER · LIVE TODAY

Connect it as a tool, not as a website.

The server speaks the Streamable HTTP transport at https://vorortai.de/api/mcp. No authentication, no account, no key. Protocol revision 2026-07-28 is served natively; the handshake-based revisions back to 2025-03-26 are still answered for clients that have not moved yet.

Note the path: /mcp is reserved by our hosting edge and never reaches this application. Use /api/mcp.

list_capabilities  read-only
quote_task  read-only
check_service_area  read-only
get_use_cases  read-only
submit_request  queues a human review

CLAUDE

Custom connector

Settings → Connectors → Add custom connector, then paste https://vorortai.de/api/mcp. Leave authentication empty.

CHATGPT

Developer mode

Settings → Apps → Advanced settings → Developer mode, then add the same URL with authentication set to none.

TRY IT WITH

  • “What would it cost to check three Hamburg stores for our promo display?”
  • “Is Ottensen inside their service area, and what evidence do they return?”
  • “What kinds of on-site task can they actually do, and what will they refuse?”

Four of the five tools are read-only and create nothing. submit_request is the only one with an effect: it queues an enquiry for a person to read. It does not create a task, does not contact an operator and is not an order. Availability is published at /mcp-status.

Is this live, or a contract preview?
Both, and the difference matters. Live today: the MCP server at /api/mcp, POST /api/v1/quotes and POST /api/intake. Still a preview: task creation over REST — POST /api/v1/tasks does not exist. Until it does, the honest path is a quote followed by the human-reviewed intake.
Does the MCP server require authentication?
No. Four of its five tools are read-only and create nothing, so there is nothing to gate. The fifth, submit_request, queues an enquiry for a person to review; it runs through the same validation, policy screening and rate limiting as the public intake endpoint, so an agent cannot take a path a human could not.
Why is the endpoint /api/mcp rather than /mcp?
The hosting edge reserves the exact path /mcp and answers it before the application sees the request. Pointing clients at /mcp would send every one of them into a 404 that never reaches this service.
Can an agent create a task without human review?
No, and this will not change silently. Every task, prohibited or uncertain, is manually reviewed before an operator is contacted — this is a fixed product guardrail, not a temporary beta limitation.
How are duplicate task creations prevented?
Task creation is designed to be idempotent: the caller supplies an idempotency key, and a retried request with the same key returns the original task instead of dispatching a second operator.
What stops an agent from overspending?
Every agent principal is configured with a maximum single-task budget and a daily and monthly spending limit. A request that would exceed a limit is designed to fail closed, not to partially execute. Note that some capabilities currently publish a floor price with no ceiling; a quote says so explicitly rather than returning a number we would have to walk back, so budget checks on those are not yet reliable.
Is remote work restricted to Hamburg too?
No. The service area exists because a person physically travels to on-site work. Remote work — a human testing a freshly built website or app — has no service area, and a quote for it is never rejected as out_of_area.

Machine-readable: /openapi.json · /llms.txt · agent-card.json. Human-reviewed intake in the meantime: /task.