MCP tool contract
Eight tools give agents a bounded video-perception workflow.
These are the actual Public Beta tools exposed by Ayneye's live remote MCP server.
Public MCP tools
| Tool | Important inputs | Purpose |
|---|---|---|
| ayneye.create_video | source_url, title?, auto_process?, capture_seconds? | For an already network-reachable source, use HTTP(S), HLS, or an authorized RTSP URL. For a webcam attached to this computer, use the documented Local camera bootstrap below to create an Ayneye camera-ingest session and obtain a video_id. |
| ayneye.upload_video | file_reference | filename | upload_handoff_id | Process an existing reference or use/resume the browser-mediated upload handoff. |
| ayneye.get_video_status | video_id | Read processing and evidence readiness for this run. |
| ayneye.get_video_artifacts | video_id | Inspect derived artifacts and evidence readiness for this run. |
| ayneye.ask_video | video_id, question | Ask a question grounded in materialized evidence for this run. |
| ayneye.start_live | video_id | Start the registered live source through the bounded tenant-scoped runtime. |
| ayneye.get_live_state | video_id | Read progressive frame/event state and terminal live-session status. |
| ayneye.stop_live | video_id | Stop live execution while preserving accumulated evidence. |
Typical agent flow
Recorded:
ayneye.create_video
→ ayneye.get_video_status
→ ayneye.get_video_artifacts
→ ayneye.ask_video
Live:
ayneye.create_video
→ ayneye.start_live
→ ayneye.get_live_state
→ ayneye.ask_video
→ ayneye.stop_live
Ask uses the same ayneye.ask_video tool for recorded and live evidence.Public Beta boundaries
capture_seconds accepts 1–60 seconds and defaults to 10. The hard Public Beta processing maximum is 60 seconds per session. Raw video and raw frames are not sent to the language model. Unsupported visual claims must not be invented.
The purpose of this page is to make the MCP boundary concrete for builders, buyers, and reviewers. A useful MCP integration is not a promise that an agent can watch everything and decide everything. It is a disciplined interface over already-materialized evidence. Each tool call should be tenant-scoped, read-only by default, evidence-aware, cost-aware, and auditable. If the request asks for identity, intent, physical access, emergency response, employment action, or destructive change, the tool returns a review-required state instead of pretending that a video artifact is a final decision. This keeps the product useful for developers while making it credible for security, legal, and operations teams.
Using a local camera with an agent
Local camera registration is a public bootstrap step that happens before MCP live reasoning. It intentionally does not expand the Ayneye MCP tool set.
camera bootstrap
→ video_id
→ ayneye.start_live
→ ayneye.get_live_state
→ ayneye.ask_video
→ ayneye.stop_live
→ ayneye.ask_video after stopAn agent should consume the resulting evidence and World-State. It should not receive the camera publish token, Authorization header, arbitrary filesystem access, or local camera-control authority.
Public local-camera bootstrap
Before an agent uses the eight MCP tools with a webcam attached to the developer computer, bootstrap that device through Ayneye's public HTTPS camera-ingest contract.
1. Create the ingest session
POST https://api.ayneye.com/v1/camera-ingest/sessions
Authorization: Bearer $AYNEYE_API_KEY
Content-Type: application/json
{
"title": "Local webcam",
"capture_seconds": 60
}
The response supplies session_id,
video_id, ingest_url,
publish_token, and expiry information.
2. Publish MPEG-TS over HTTPS
POST camera bytes to:
<ingest_url>
Publish header:
X-Ayneye-Ingest-Token: <publish_token>
Media protocol:
MPEG-TS over HTTPS POST
Required HTTP Content-Type:
video/mp2t
FFmpeg:
-content_type video/mp2t3. Wait for camera readiness
GET https://api.ayneye.com/v1/camera-ingest/sessions/{session_id}
Authorization: Bearer $AYNEYE_API_KEY4. Use video_id with the frozen MCP contract
video_id
→ ayneye.start_live
→ ayneye.get_live_state
→ ayneye.ask_video
→ ayneye.stop_live
→ ayneye.ask_video after stop
There is no ayneye.connect_camera,
ayneye.publish_camera, or
ayneye.ask_live tool.
Camera bootstrap stays outside MCP and the public MCP contract
remains exactly eight tools.