{"_id":"@primate-intelligence/mcp","_rev":"7-535f57e1eec9bed774195b7be14766e1","name":"@primate-intelligence/mcp","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@primate-intelligence/mcp","version":"0.1.0","keywords":["mcp","modelcontextprotocol","video","vision","ai","primate-intelligence"],"author":{"name":"Primate Intelligence"},"license":"MIT","_id":"@primate-intelligence/mcp@0.1.0","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"homepage":"https://primateintelligence.ai/docs/agents","bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-api/issues"},"bin":{"primate-intelligence-mcp":"dist/index.js"},"dist":{"shasum":"d1d22c7df7760c6c2eddcf9f1170c420bef9d8f6","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.1.0.tgz","fileCount":11,"integrity":"sha512-lfcCzOvp/Ge3XpsksuQy4DWiVPB/VG5H+3T4a2Nk5/YaZBOm0xy5QbjkAM6BpH3I0KE6YkG8E0b7oUuFWGXVpQ==","signatures":[{"sig":"MEYCIQCTbMh8sCsEQkumAuVvBvyA2jPOVJKZrvEJEkzEPVv3WwIhAJ9JbayKRzse8ejKsxcuqpO740sOan1c6a1vv4oJioe+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22530},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e59c807ca066f20a3655ce690eb1ac192ee3c1fb","scripts":{"test":"vitest run","build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","prepack":"npm run build"},"_npmUser":{"name":"primate-intelligence","email":"matt@primateintelligence.ai"},"repository":{"url":"git+https://github.com/Primate-Intelligence/primate-intelligence-api.git","type":"git","directory":"mcp"},"_npmVersion":"11.17.0","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1783704019751_0.1345056931267874","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@primate-intelligence/mcp","version":"0.1.1","keywords":["mcp","modelcontextprotocol","video","vision","ai","primate-intelligence"],"author":{"name":"Primate Intelligence"},"license":"MIT","_id":"@primate-intelligence/mcp@0.1.1","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"homepage":"https://primateintelligence.ai/docs/agents","bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-api/issues"},"bin":{"primate-intelligence-mcp":"dist/index.js"},"dist":{"shasum":"2746c0b10964895be20168cd4f109cc777203c17","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.1.1.tgz","fileCount":11,"integrity":"sha512-pFL14nvLrCI+KKONGkhpiZ/fxcrb2XXeHnDmKiXlfo62NyMfrZb83Lfrqab1VpkRm+pCA0Rw6sbLuYYV4a5ySQ==","signatures":[{"sig":"MEYCIQCTD/Lt4pIoJ2bFCnQz1KVtuQ61/8C0HR412i+9DiX1GwIhAJHwK0ld9e3rp0Vo49KX46QA80TwYjRACYcSp9k0aBxB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22533},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4d472568aa9709f83dd79d109f6bb0fbfb399f4b","scripts":{"test":"vitest run","build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:07120948-a623-4b0d-a73a-e22c8e9a7fdd"}},"repository":{"url":"git+https://github.com/Primate-Intelligence/primate-intelligence-api.git","type":"git","directory":"mcp"},"_npmVersion":"12.0.1","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1783709997329_0.655444950368397","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@primate-intelligence/mcp","version":"0.1.2","keywords":["mcp","modelcontextprotocol","video","vision","ai","primate-intelligence"],"author":{"name":"Primate Intelligence"},"license":"MIT","_id":"@primate-intelligence/mcp@0.1.2","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"homepage":"https://primateintelligence.ai/docs/agents","bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-api/issues"},"bin":{"primate-intelligence-mcp":"dist/index.js"},"dist":{"shasum":"184f0459202a20e7a6104e1dc8d68c7de546a986","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.1.2.tgz","fileCount":11,"integrity":"sha512-A/lV1gXH5Gaq8/ksP84FIUFIzXzG/CRifFZeQ9ZHrzfEi9Kp3gBNjYvkJDi2GRW0U09w2L8slpXS/kqvuVBWXA==","signatures":[{"sig":"MEYCIQCE7sF5/ZZdvtw07Czdkc1O5I5pC69fQFhvEP0lamo3VgIhAJgBe/LPUK/CTmCLHxLDOwXAUY3gvNf/pJIrRX5Sbpxm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22576},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c79a13f9bcef3fc3bc2d9f64d3aaed6e616d2802","mcpName":"ai.primateintelligence/mcp","scripts":{"test":"vitest run","build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","prepack":"npm run build"},"_npmUser":{"name":"primate-intelligence","email":"matt@primateintelligence.ai"},"repository":{"url":"git+https://github.com/Primate-Intelligence/primate-intelligence-api.git","type":"git","directory":"mcp"},"_npmVersion":"11.17.0","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.2_1784839224445_0.3717648867085821","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@primate-intelligence/mcp","version":"0.1.3","keywords":["mcp","modelcontextprotocol","video","vision","ai","primate-intelligence"],"author":{"name":"Primate Intelligence"},"license":"MIT","_id":"@primate-intelligence/mcp@0.1.3","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"homepage":"https://primateintelligence.ai/docs/agents","bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-api/issues"},"bin":{"primate-intelligence-mcp":"dist/index.js"},"dist":{"shasum":"c8007dc7659406576b2dcebae94918c9b622bbbf","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.1.3.tgz","fileCount":11,"integrity":"sha512-49njRzcm0fS3bIltG1jUxPIux5peQOY4LwhjhSceeief/3n1ZKBrjcIXKkHJfULa+3Dpw+2gY02Lzoo0aoEQXA==","signatures":[{"sig":"MEUCIBoDBvdwdcgDdFikQrFk3R+fc8yBIwZEjB+5pUYq4/7ZAiEA6vTT7qXxzR6DeAZVjBzOvShKpRWC8ls55DklT8E9yQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24935},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ec7ec4df584d6979a4d88687c6a9668114811f85","mcpName":"ai.primateintelligence/mcp","scripts":{"test":"vitest run","build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","prepack":"npm run build"},"_npmUser":{"name":"primate-intelligence","email":"matt@primateintelligence.ai"},"repository":{"url":"git+https://github.com/Primate-Intelligence/primate-intelligence-api.git","type":"git","directory":"mcp"},"_npmVersion":"11.17.0","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","directories":{},"_nodeVersion":"26.4.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.3_1784855131501_0.5792941515142676","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@primate-intelligence/mcp","version":"0.2.0","keywords":["mcp","modelcontextprotocol","video","vision","ai","primate-intelligence"],"author":{"name":"Primate Intelligence"},"license":"MIT","_id":"@primate-intelligence/mcp@0.2.0","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"homepage":"https://primateintelligence.ai/docs/agents","bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-api/issues"},"bin":{"primate-intelligence-mcp":"dist/index.js"},"dist":{"shasum":"653a1be426fd5207233247bd279cbc1e7bcf4c05","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.2.0.tgz","fileCount":14,"integrity":"sha512-fdnblv6goROGVgPjCJerUdx0uMQgdCvA3qwBecUkjhe+IsCixn0h59shpny9z6Kk8H4CgitGLdrZEYwCsPWAeQ==","signatures":[{"sig":"MEYCIQCejeYfo4ooAxsh1yupXHuXBn61F1MFh4oGBG2a5HPwygIhALDu4BjkIVN/vrBZSjnOplExzJ+yIKCLd0ggUJ/etIZE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178949},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"bae76c070f200343fdb3b313759601619c658db9","mcpName":"ai.primateintelligence/mcp","scripts":{"test":"vitest run","build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:07120948-a623-4b0d-a73a-e22c8e9a7fdd"}},"repository":{"url":"git+https://github.com/Primate-Intelligence/primate-intelligence-api.git","type":"git","directory":"mcp"},"_npmVersion":"12.0.1","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1785270895290_0.8883208677383165","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@primate-intelligence/mcp","version":"0.3.0","keywords":["mcp","modelcontextprotocol","video","vision","ai","primate-intelligence"],"author":{"name":"Primate Intelligence"},"license":"MIT","_id":"@primate-intelligence/mcp@0.3.0","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"homepage":"https://primateintelligence.ai/docs/agents","bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-api/issues"},"bin":{"primate-intelligence-mcp":"dist/index.js"},"dist":{"shasum":"ebfa057670112f2a0901e7b4b5d5cb4847250e83","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.3.0.tgz","fileCount":14,"integrity":"sha512-984ytrOpdixUtdC0KUHVj4cClDWuIcb5PtFK0sKRsJVjEO06IboSI/MSREHZoGeMTaE34TuT587bzU4NSqpUzg==","signatures":[{"sig":"MEQCIA8teCGbqRKf3Y47vF7QvuFV4Urx6WzPB+L+bSdPTn++AiB8yIhlrAjGqVtvoBfsNLhMlYJ8wPLhtPTnPBlt0IRWiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214001},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"399a447599d6f339b57afcd22bd39a9a80cb6b48","mcpName":"ai.primateintelligence/mcp","scripts":{"test":"vitest run","build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","prepack":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:07120948-a623-4b0d-a73a-e22c8e9a7fdd"}},"repository":{"url":"git+https://github.com/Primate-Intelligence/primate-intelligence-api.git","type":"git","directory":"mcp"},"_npmVersion":"12.0.2","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.20.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.0_1785547067931_0.48836330802442895","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@primate-intelligence/mcp","version":"0.4.0","mcpName":"ai.primateintelligence/mcp","description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","license":"MIT","author":{"name":"Primate Intelligence"},"homepage":"https://primateintelligence.ai/docs/agents","repository":{"type":"git","url":"git+https://github.com/Primate-Intelligence/primate-intelligence-mcp.git"},"bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-mcp/issues"},"keywords":["mcp","modelcontextprotocol","model-context-protocol","video","video-understanding","vision","ai","agents","primate-intelligence"],"type":"module","bin":{"primate-intelligence-mcp":"dist/index.js"},"main":"./dist/index.js","engines":{"node":">=20"},"scripts":{"build":"tsc && node -e \"const fs=require('fs');const p='dist/index.js';fs.writeFileSync(p,'#!/usr/bin/env node\\n'+fs.readFileSync(p,'utf8'));fs.chmodSync(p,0o755)\"","test":"vitest run","typecheck":"tsc --noEmit","prepack":"npm run build"},"dependencies":{"@modelcontextprotocol/server":"^2.0.0","zod":"^4.2.0"},"devDependencies":{"@types/node":"^22.20.1","typescript":"^5.6.0","vitest":"^2.1.0"},"types":"./dist/index.d.ts","_id":"@primate-intelligence/mcp@0.4.0","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-nZs65ZS/taLlcDl7xiKCVEVtlsD7w2tWglDPRaI8RRmii15zwi6u3KpBP+nFCZhEajGFyyrsMv1CMgZZ4lwA6Q==","shasum":"17870e4b3dcc21dec1c174b67a37a8d92ce16b14","tarball":"https://registry.npmjs.org/@primate-intelligence/mcp/-/mcp-0.4.0.tgz","fileCount":15,"unpackedSize":72242,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICu3e7lRtoRDcJ+KMCWDJYZ2umteSZD7EAGcrswT6UcmAiEAiuyI5QZj/gwGyb7Z1mmjEk1Igv/3xNdNOgLj+VallhQ="}]},"_npmUser":{"name":"primate-intelligence","email":"matt@primateintelligence.ai"},"directories":{},"maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.4.0_1785620500584_0.05414548356056148"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T17:20:19.623Z","modified":"2026-08-01T21:41:40.886Z","0.1.0":"2026-07-10T17:20:19.903Z","0.1.1":"2026-07-10T18:59:57.492Z","0.1.2":"2026-07-23T20:40:24.642Z","0.1.3":"2026-07-24T01:05:31.658Z","0.2.0":"2026-07-28T20:34:55.439Z","0.3.0":"2026-08-01T01:17:48.125Z","0.4.0":"2026-08-01T21:41:40.739Z"},"bugs":{"url":"https://github.com/Primate-Intelligence/primate-intelligence-mcp/issues"},"author":{"name":"Primate Intelligence"},"license":"MIT","homepage":"https://primateintelligence.ai/docs/agents","keywords":["mcp","modelcontextprotocol","model-context-protocol","video","video-understanding","vision","ai","agents","primate-intelligence"],"repository":{"type":"git","url":"git+https://github.com/Primate-Intelligence/primate-intelligence-mcp.git"},"description":"MCP server for the Primate Vision API (Primate Intelligence) — video scene understanding tools for AI agents.","maintainers":[{"name":"primate-intelligence","email":"matt@primateintelligence.ai"}],"readme":"# @primate-intelligence/mcp\n\n[![npm](https://img.shields.io/npm/v/@primate-intelligence/mcp.svg)](https://www.npmjs.com/package/@primate-intelligence/mcp)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n\nMCP ([Model Context Protocol](https://modelcontextprotocol.io)) server for the **Primate Vision video analysis API** — a video understanding API by [Primate Intelligence](https://primateintelligence.ai) ([docs](https://primateintelligence.ai/docs) · [llms.txt](https://primateintelligence.ai/llms.txt)).\n\nGives AI agents **video scene understanding** as tools: register a video, ask a question in plain English, get a deterministic answer with a confidence score and clip timestamps. No hallucinated descriptions — the answer is `yes` / `no` / `indeterminate` with evidence.\n\n## Try it for free\n\nA free test key requires no email, no card, no signup:\n\n```bash\ncurl -X POST https://api.primateintelligence.ai/v1/sandbox\n```\n\nYour AI agent can do this for you — right from Claude. Point it at\n[primateintelligence.ai/llms.txt](https://primateintelligence.ai/llms.txt) and it can\ndiscover, provision, integrate, and self-verify with zero human steps.\n\n## Two ways to connect\n\n### 1. Remote server (recommended) — OAuth, nothing to install\n\nStreamable HTTP endpoint with full OAuth 2.1 + Dynamic Client Registration + PKCE:\n\n```\nhttps://api.primateintelligence.ai/mcp\n```\n\nIn Claude.ai / Claude Desktop: **Settings → Connectors → Add custom connector**, paste the URL, sign in. No API key handling — the OAuth flow issues and rotates tokens for you.\n\n### 2. Local stdio server\n\n```jsonc\n// claude_desktop_config.json · .mcp.json · mcp.json · .cursor/mcp.json\n{\n  \"mcpServers\": {\n    \"primate-intelligence\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@primate-intelligence/mcp\"],\n      \"env\": { \"PRIMATE_API_KEY\": \"pv_live_…\" }\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | Does | Read-only |\n|---|---|:--:|\n| `create_video_from_url` | Register a video from a public https URL (`POST /v1/videos`) | — |\n| `create_analysis` | Ask a question about a video (`POST /v1/analyses`) | — |\n| `validate_analysis` | Dry-run a prompt: assessability + cost estimate, zero credits (`validate_only: true`) | ✓ |\n| `create_analysis_batch` | 2–10 prompts on one video; each after the first billed at 50% (`POST /v1/analyses/batch`) | — |\n| `get_analysis` | Fetch analysis status/result (`GET /v1/analyses/{id}`) | ✓ |\n| `wait_for_analysis` | Poll until terminal state; returns `{ analysis, retry }` | ✓ |\n| `list_models` | List available models (`GET /v1/models`) | ✓ |\n| `get_usage` | Credit balance + period meters (`GET /v1/usage`) | ✓ |\n| `get_credits` | Balance + per-analysis transaction ledger (`GET /v1/credits`) | ✓ |\n| `get_test_fixture` | Stable fixture for integration self-verification (`GET /v1/test-fixture`) | ✓ |\n\nEvery tool carries MCP annotations (`title`, `readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`), declares an `outputSchema`, and returns `structuredContent` conforming to it. No tool deletes data. Tool descriptions and schemas mirror the OpenAPI document at [`GET /v1/openapi.json`](https://api.primateintelligence.ai/v1/openapi.json) — the spec is the source of truth.\n\n## Typical agent flow\n\n1. `get_test_fixture` → verify the integration works (test keys return deterministic results, no quota burn)\n2. `create_video_from_url` with the video URL\n3. `validate_analysis` → confirm the prompt is assessable + preview `estimated_cost_usd` (free)\n4. `create_analysis` with the question — *\"Is there a person in this video?\"* — or `create_analysis_batch` for several\n5. `wait_for_analysis` → `result.answer` (`yes` | `no` | `indeterminate`) + `result.confidence` + `result.clips` + `result.detected_count` (count queries) + `result.indeterminate_reason`\n6. On `insufficient_credits`: call `get_credits`, report the balance + recent debits, point the human at billing\n\n## Security contract\n\nThe API key is read from the `PRIMATE_API_KEY` **environment variable only**. **No tool accepts a key, token, or secret as an argument** — so credentials never land in agent transcripts, tool-call logs, or model context. This is enforced by a unit test that fails the build if any tool schema grows a credential-shaped parameter.\n\nErrors surface the machine-readable error `code`, a `docs_url`, and the `request_id` so an agent can self-correct without a human in the loop.\n\n## Configuration\n\n| Var | Required | Default |\n|---|---|---|\n| `PRIMATE_API_KEY` | yes | — |\n| `PRIMATE_BASE_URL` | no | `https://api.primateintelligence.ai` |\n\n## Development\n\n```bash\nnpm install\nnpm test        # vitest — tool surface, security contract, polling, error shape\nnpm run build   # tsc → dist/\n```\n\n## Links\n\n- [Quickstart for AI agents](https://primateintelligence.ai/docs/agents) — the zero-human-intervention integration path\n- [API docs](https://primateintelligence.ai/docs)\n- [OpenAPI 3.1 spec](https://api.primateintelligence.ai/v1/openapi.json)\n- [Error registry](https://primateintelligence.ai/docs/errors)\n- [llms.txt](https://primateintelligence.ai/llms.txt) — machine-readable index for agents\n- [Privacy policy](https://primateintelligence.ai/privacy) · [Terms](https://primateintelligence.ai/terms)\n\n## License\n\nMIT © Primate AI, Inc.\n","readmeFilename":"README.md"}