vera.ink MCP
The vera.ink MCP server allows AI assistants to check documents against legal, standard, or policy rules. It verifies compliance by citing exact clauses and source text, answers questions based on specific rule packs, and enables users to build new compliance packs for various jurisdictions.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://vera-mcp-production.up.railway.app/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to vera.ink ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Check a document against a pack of rules
- Ask a pack a question for matching rules
- Build a new compliance pack
Source and maintenance
Protocol and capabilities
- Server
- vera-mcp 1.2.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
query_pack — Query a Vera pack
Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distinguish them from your inference, and treat coverage=none as no answer.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pack_id",
"question"
],
"properties": {
"pack_id": {
"type": "string",
"format": "uuid",
"description": "The Vera pack ID (from list_packs)"
},
"question": {
"type": "string",
"maxLength": 2000,
"minLength": 3,
"description": "The question to ask"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}verify_document — Verify a document against a Vera pack
Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mode. Poll get_verification_status until terminal=true.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pack_id",
"document_text",
"idempotency_key"
],
"properties": {
"mode": {
"enum": [
"legal",
"procurement",
"compliance",
"financial",
"hr",
"academic",
"custom",
"code"
],
"type": "string",
"description": "Optional mode override; normally omit this"
},
"pack_id": {
"type": "string",
"format": "uuid",
"description": "The Vera pack ID to verify against"
},
"document_text": {
"type": "string",
"maxLength": 500000,
"description": "The full document text; whitespace does not count toward the minimum"
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]+$",
"maxLength": 200,
"minLength": 8,
"description": "Required retry key. Reuse only for this exact pack, document, and mode."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_verification_status — Check a Vera verification run
Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow next_action.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run_id"
],
"properties": {
"run_id": {
"type": "string",
"format": "uuid",
"description": "The run_id returned by verify_document"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}list_packs — List available Vera packs
List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack plan, ask the user to approve a credit ceiling, then use start_pack_build if approved.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_pack_coverage — Get a Vera pack's coverage
Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready means every measured section has a rule, and fully_strengthened means every measured section is satisfied. fully_ready is legacy-compatible and is not a comprehensiveness claim.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pack_id"
],
"properties": {
"pack_id": {
"type": "string",
"format": "uuid",
"description": "The Vera pack ID"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}start_pack_build — Start or continue a Vera pack build
Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The response returns immediately with job_id; poll get_pack_build_status only while active=true. max_credits is a hard ceiling, not a promised final charge. Reuse idempotency_key only for an exact retry.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"max_credits",
"idempotency_key"
],
"properties": {
"pack_id": {
"type": "string",
"format": "uuid",
"description": "An existing owned AI-buildable pack; mutually exclusive with new_pack"
},
"new_pack": {
"type": "object",
"required": [
"name",
"intention",
"mode"
],
"properties": {
"mode": {
"enum": [
"legal",
"procurement",
"compliance",
"financial",
"hr",
"academic",
"custom",
"code"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"intention": {
"type": "string",
"maxLength": 4000,
"minLength": 10,
"description": "The exact finite purpose and coverage the pack must provide"
},
"jurisdiction": {
"type": "string",
"maxLength": 120
}
},
"description": "A new Vera pack to create; mutually exclusive with pack_id",
"additionalProperties": false
},
"max_rounds": {
"type": "integer",
"default": 3,
"maximum": 5,
"minimum": 1,
"description": "Maximum strengthening rounds; normally 3"
},
"max_credits": {
"type": "integer",
"maximum": 5000,
"minimum": 3,
"description": "Hard credit ceiling explicitly approved by the user for this build job"
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]+$",
"maxLength": 200,
"minLength": 8,
"description": "Required retry key; reuse only for this exact build request"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_pack_build_status — Check a Vera pack build
Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause offers use now or a separately approved finite continuation. Never restart merely because the AI client's execution window ended.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"format": "uuid",
"description": "The job_id returned by start_pack_build"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1074 ms
- 95th percentile latency
- 1074 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1074 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http vera-ink-mcp https://vera-mcp-production.up.railway.app/mcpCodex
codex mcp add vera-ink-mcp --url https://vera-mcp-production.up.railway.app/mcpCursor
{
"mcpServers": {
"vera-ink-mcp": {
"url": "https://vera-mcp-production.up.railway.app/mcp"
}
}
}Cline
{
"mcpServers": {
"vera-ink-mcp": {
"type": "streamableHttp",
"url": "https://vera-mcp-production.up.railway.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"vera-ink-mcp": {
"type": "http",
"url": "https://vera-mcp-production.up.railway.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http vera-ink-mcp https://vera-mcp-production.up.railway.app/mcpClaude Desktop
https://vera-mcp-production.up.railway.app/mcpWindsurf
{
"mcpServers": {
"vera-ink-mcp": {
"serverUrl": "https://vera-mcp-production.up.railway.app/mcp"
}
}
}Let your agent find its tools
Find servers like vera.ink MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other documentation and reference servers
Do you run vera.ink MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.