DocsMCP Server

MCP Server

Last updated: March 27, 2026

1. Overview

Arkova exposes a Model Context Protocol (MCP) server so AI agents can interact with the credential verification network using native tool calls.

  • Compatible with Claude, GPT, custom LLM agents, and any MCP-compatible client
  • Streamable HTTP transport on Cloudflare Workers
Tip
MCP enables AI agents to verify credentials as native tool calls — no REST API parsing needed.

2. Available Tools

ToolDescriptionAuth
verify_credentialVerify a credential by public ID. Returns the frozen verification schema.API key or OAuth 2.0
search_credentialsSemantic search across verified credentials using natural language.API key or OAuth 2.0

Example Tool Call

json
{
  "tool": "verify_credential",
  "arguments": {
    "public_id": "ARK-2026-00091"
  }
}

Example Response

json
{
  "verified": true,
  "status": "ACTIVE",
  "issuer_name": "University of Michigan",
  "credential_type": "DIPLOMA",
  "anchor_timestamp": "2026-03-10T08:00:00Z",
  "bitcoin_block": 204567
}

3. Configuration

Claude Desktop

json
{
  "mcpServers": {
    "arkova": {
      "url": "https://edge.arkova.ai/mcp",
      "headers": {
        "Authorization": "Bearer ak_live_your_key"
      }
    }
  }
}

Claude Code

bash
claude mcp add arkova \
  --transport http \
  --url https://edge.arkova.ai/mcp \
  --header "Authorization: Bearer ak_live_your_key"

Custom Agents

typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const transport = new StreamableHTTPClientTransport(
  new URL('https://edge.arkova.ai/mcp'),
  { requestInit: { headers: { Authorization: 'Bearer ak_live_...' } } }
);

const client = new Client({ name: 'my-agent', version: '1.0' });
await client.connect(transport);

const result = await client.callTool({
  name: 'verify_credential',
  arguments: { public_id: 'ARK-2026-00091' },
});

4. Examples

Agent-to-Agent Trust

Agent A presents a verified record to Agent B. Both agents independently verify against the public ledger — no central intermediary needed.

typescript
// Agent A: Issue and share
const anchor = await arkova.anchor({ fingerprint, label, credentialType: 'DIPLOMA' });
const shareableId = anchor.public_id; // "ARK-2026-00091"

// Agent B: Independently verify
const verification = await mcpClient.callTool({
  name: 'verify_credential',
  arguments: { public_id: shareableId },
});
// verification.verified === true — trusted without intermediary

Semantic Search

text
User: "Find all computer science degrees from Big Ten universities issued after 2024"

Agent calls: search_credentials({ query: "computer science degrees Big Ten 2024" })

Returns: Ranked results with verification status, issuers, and timestamps

5. Authentication

Dual authentication is supported: OAuth 2.0 and API key (Bearer token).

Note
Every MCP tool call is logged with timestamp, querying agent ID, and result — creating a defensible audit trail for regulated industries.
  • Rate limits apply: same as REST API (1,000 req/min per API key)