Model Context Protocol · Streamable HTTP

MCP Server.

The preferred way for AI agents to request visual evidence. A public, stateless adapter over the REST API — no MCP-level authentication, no account, no API key. Request-scoped access tokens travel with the agent as tool arguments.

3 toolsno authno resourcesmcp-first

Endpoint

https://herego.video/mcp

Point any MCP client at the endpoint above. The legacy alias https://herego.video/api/mcp still works. Machine-readable capabilities live at /.well-known/mcp/server-card.json.

Client configuration
{
  "mcpServers": {
    "herego": {
      "url": "https://herego.video/mcp"
    }
  }
}

Tools

Three tools cover the full lifecycle: request → check & retrieve → delete.

01

request_video_evidence

non-destructivecreates a requestopen-world

Generate video submission request

Generate a video submission request for a person to provide visual evidence. Use it when you need to see what is happening rather than relying on a textual description — diagnosing a UI bug, understanding a browser workflow, investigating a physical-world problem, or collecting evidence that text or screenshots cannot describe. This does not record or create a video; it creates a request and returns a submission_url to send to the human (they record in a browser — no app install or HereGo account needed) plus a request-scoped access_token. Retain the access_token: it is required by get_video_evidence and delete_video_request.

What to tell the user

  • Say Generating a video submission request
  • Say Generating a request for the user to submit video evidence
  • Never say recording a video
  • Never say creating a recording
Arguments
prompt
stringrequired
Instruction shown to the human recording the evidence. 1–2000 characters.
expires_in_hours
integerrequired
Number of hours until the request expires. Must be between 1 and 48.
Returns
id
stringrequired
The HereGo request identifier, e.g. req_abc123.
status
awaiting_submissionrequired
A fresh request always starts out awaiting human submission.
submission_url
string (url)required
Shareable link to send directly to the human for recording.
access_token
stringrequired
Request-scoped bearer token. Retain it — it authenticates get_video_evidence and delete_video_request. Never ask the human for it.
expires_at
string (datetime)required
ISO timestamp after which the request can no longer be submitted to.
  • Each call creates a brand-new request with its own access_token — tokens are not interchangeable between requests.
Example tool call
{
  "prompt": "Please show me what happens when you try to check out.",
  "expires_in_hours": 24
}
Example result
{
  "id": "req_abc123",
  "status": "awaiting_submission",
  "submission_url": "https://herego.video/r/abc123",
  "access_token": "rat_9f8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d",
  "expires_at": "2026-09-08T14:30:00Z"
}
02

get_video_evidence

non-destructiveread-onlyidempotentpollable

Check video submission status and retrieve video

Authoritatively check a video submission request and retrieve the submitted video. Workflow: first call request_video_evidence, give the human its submission_url, and retain the returned access_token. Then call this tool with that request_id and access_token. The access_token is passed as a tool argument and forwarded to the underlying REST APIs — do not ask the human for it and never send it as an MCP HTTP header. If the status is awaiting_submission, wait and poll again when appropriate. When the status is submitted, consume the returned MCP media content to inspect the actual video, not a webpage URL. Expired or deleted requests return status expired successfully, never an error.

What to tell the user

  • Say Checking the video submission status
  • Say Retrieving the submitted video evidence
  • Never say recording a video
  • Never say watching the recording
Arguments
request_id
stringrequired
HereGo request ID returned by request_video_evidence.
access_token
stringrequired
Request-scoped bearer token returned by request_video_evidence. Retain and reuse it rather than asking the human for a token.
Returns
request_id
stringrequired
Echo of the requested HereGo request identifier.
status
awaiting_submission | submitted | expiredrequired
Current lifecycle state of the request.
expires_at
string (datetime)optional
Present when the request carries an expiry timestamp.
video
objectoptional
Present only when submitted. Carries mime_type and size, alongside the video itself as MCP media content.
  • While awaiting_submission, the tool returns a plain-text notice — no video is available yet, so wait and call again.
  • Always inspect the attached MCP media content for submitted videos; there is no webpage URL to open.
Example tool call
{
  "request_id": "req_abc123",
  "access_token": "rat_9f8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d"
}
Example result
{
  "request_id": "req_abc123",
  "status": "submitted",
  "expires_at": "2026-09-08T14:30:00Z",
  "video": {
    "mime_type": "video/webm",
    "size": 482113
  }
}
// + the actual video attached as MCP media content
03

delete_video_request

destructiveidempotentlocal-world

Delete video request

Delete an entire HereGo video request, including any associated submitted video. Call with the request_id and the request-scoped access_token returned by request_video_evidence. Use it when the evidence is no longer needed, was requested in error, or must be removed for privacy. This deletes the entire request, not just a submitted video.

What to tell the user

  • Say Deleting the video request
  • Say Deleting the request for video evidence and its submitted video
  • Never say deleting the recording
  • Never say stopping the recording
Arguments
request_id
stringrequired
HereGo request identifier to delete.
access_token
stringrequired
Request-scoped bearer token returned by request_video_evidence.
Returns
request_id
stringrequired
Echo of the deleted HereGo request identifier.
deleted
booleanrequired
Always true on success — the request and its video are gone.
  • Deletion is permanent. Afterward, get_video_evidence for the same id returns expired.
Example tool call
{
  "request_id": "req_abc123",
  "access_token": "rat_9f8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d"
}
Example result
{
  "request_id": "req_abc123",
  "deleted": true
}

Agent workflow

  1. 1Call request_video_evidence with an instruction for the human.
  2. 2Give the human the returned submission_url.
  3. 3Retain the returned access_token; never ask the human for it.
  4. 4Call get_video_evidence with the request_id and access_token to check status.
  5. 5If the status is awaiting_submission, wait and poll again when appropriate.
  6. 6When the status is submitted, consume the returned MCP media content — the actual video, not a webpage URL.

Statuses

  • awaiting_submission

    The human has not submitted yet. Wait and poll get_video_evidence again.

  • submitted

    Video received. The actual video is attached as MCP media content.

  • expired

    The request expired or was deleted. No video is available — create a new request instead.

Authentication

The MCP server itself requires no authentication. The get_video_evidence and delete_video_request tools take request-scoped access tokens as tool arguments; the server forwards them to the REST APIs as Authorization: Bearer <token>. Never send tokens as MCP HTTP headers.

Quickstart

Documentation hub

REST reference

REST API documentation

openapi.json

OpenAPI specification

llms.txt

Agent quickstart

EARLY ACCESS

Join the waitlist to access the Agent Management Dashboard.

Or use the MCP or APIs for free — no sign-up or API key required.