MCP server
Let Claude, Cursor, ChatGPT, or any MCP-speaking agent call Arkrel directly to turn a document into verified data.
What it is
A remote MCP (Model Context Protocol) server at https://arkrel.com/mcp, so an AI agent can extract and verify a document without you writing any integration code. It's a thin wrapper over the same REST API described in the rest of these docs: every tool call runs through the identical ingest, quota, and verification pipeline as POST /v1/documents.
- Transport: Streamable HTTP, stateless (no session to manage) -- one POST endpoint, JSON responses.
- Auth: the same
Authorization: Bearer <API key>as the REST API -- see Authentication. - No account or extra setup on our side: any API key that works against /v1 works against /mcp.
Endpoint
POST https://arkrel.com/mcpA missing or invalid key gets a 401 with a WWW-Authenticate header and a JSON-RPC error body pointing at where to create one. GET and DELETE aren't used by this stateless transport and return 405.
Tools
extract_document
Upload a document (by URL or base64) and get back verified fields, tables and checks -- usually in one call.
Inputs
file_urlorfile_base64+filename(exactly one)document_type(optional; omit to auto-detect)schema_id(for a custom schema),metadata(object)wait_seconds0-50, default 25 -- how long to wait for a terminal status before returning early
Output
Status, reasons, and (once terminal) the same fields/tables/checks shape as GET /v1/documents/{id}/result. Still processing after wait_seconds? You get the queued document_id back -- call get_document_result with it.
get_document_result
Poll a document you already submitted.
Inputs
document_id(required)wait_seconds0-50, default 20
Output
Same shape as extract_document's. Only ever returns documents belonging to your own organization.
list_documents
Browse your organization's recent documents.
Inputs
status(optional filter),limit1-50, default 10
Output
A list of id, filename, document_type, status, created_at, completed_at.
get_usage
Check plan and quota before (or after) a big batch.
Inputs
None.
Output
plan, pages_included, pages_used, pages_pending, pages_overage, and the current period's period_start/period_end.
A result larger than about 200KB has its tables trimmed to the first rows inline, with a note and the REST result_urls (JSON, CSV, XLSX) to fetch the rest.
Claude Code
claude mcp add --transport http arkrel https://arkrel.com/mcp \
--header "Authorization: Bearer $ARKREL_API_KEY"Claude Desktop
Claude Desktop's built-in remote-connector flow (Settings → Connectors) is built around OAuth and has no documented way to attach a static API key header yet. Until that lands, bridge it with the community mcp-remote proxy in your local config file (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"arkrel": {
"command": "npx",
"args": [
"mcp-remote",
"https://arkrel.com/mcp",
"--header",
"Authorization:${ARKREL_AUTH_HEADER}"
],
"env": { "ARKREL_AUTH_HEADER": "Bearer sk_live_..." }
}
}
}Cursor
Add to .cursor/mcp.json (project) or Cursor's global MCP settings:
{
"mcpServers": {
"arkrel": {
"url": "https://arkrel.com/mcp",
"headers": {
"Authorization": "Bearer sk_live_..."
}
}
}
}VS Code
Add to .vscode/mcp.json. VS Code prompts for the key once and stores it securely instead of writing it into the file:
{
"inputs": [
{ "type": "promptString", "id": "arkrel-api-key", "description": "Arkrel API key", "password": true }
],
"servers": {
"arkrel": {
"type": "http",
"url": "https://arkrel.com/mcp",
"headers": {
"Authorization": "Bearer ${input:arkrel-api-key}"
}
}
}
}OpenAI Responses API
Pass Arkrel as a remote MCP tool directly in the request body:
{
"model": "gpt-4.1",
"input": "Extract this invoice and tell me if anything doesn't add up: https://example.com/invoice.pdf",
"tools": [
{
"type": "mcp",
"server_label": "arkrel",
"server_url": "https://arkrel.com/mcp",
"authorization": "$ARKREL_API_KEY",
"require_approval": "never"
}
]
}n8n
Add an MCP Client Tool node and set:
Endpoint: https://arkrel.com/mcp
Server Transport (if shown): HTTP Streamable
Authentication: Bearer
Bearer Token: <your Arkrel API key>All setups, side by side
claude mcp add --transport http arkrel https://arkrel.com/mcp \
--header "Authorization: Bearer $ARKREL_API_KEY"