kakunin-mcp
The kakunin-mcp server provides MCP tools for AI agents to self-verify compliance, monitor risk, and maintain an immutable audit trail within MCP-compatible runtimes.
verify_agent_scope: Check if the agent is authorized to perform a specific action before executing it. Validates the active X.509 certificate, permitted action scopes, financial limits (including trading venues and USD thresholds), and revocation status.check_risk_score: Retrieve the agent's rolling 30-day risk score, risk band (low/medium/high), and behavioral drift trend. Returns actionable guidance to help the agent decide whether to proceed, self-throttle, or escalate to a human.audit_log_append: Record behavioral events (transactions, API calls, data access, authentication attempts, anomalies, etc.) to an immutable audit log. Returns a per-event risk score and transaction ID for traceability. Events scoring ≥ 0.85 automatically trigger a certificate revocation check.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kakunin-mcpverify if I'm authorized to trade 50000 USD on euronext"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@kakunin/mcp — MCP server for AI agent identity & compliance
Model Context Protocol server for the Kakunin AI agent compliance API. Lets AI agents self-verify scope, check their own risk score, and log behavioral events — all from within Claude, Cursor, or any MCP-compatible runtime.
npx @kakunin/mcpTools
verify_agent_scope
Check whether this agent is authorised to perform an action before executing it. Verifies the active X.509 certificate, permitted_actions scope, financial limits, and revocation status.
{
"action": "initiate EUR/USD trade on euronext for 50000 USD",
"venue": "euronext",
"amount_usd": 50000
}Returns { allowed: true|false, reason, certificate_status, permitted_actions }.
check_risk_score
Retrieve the agent's rolling 30-day risk score, band (low/medium/high), drift trend, and actionable guidance. No input required.
audit_log_append
Append a behavioral event to the agent's immutable audit log. Returns risk score + transaction ID. Events scoring ≥ 0.85 auto-trigger a certificate revocation check.
{
"action_type": "transaction_initiated",
"details": { "amount_usd": 50000, "venue": "NYSE" }
}Related MCP server: Vector Decisions MCP Server
Setup
Prerequisites: Node ≥ 18, Kakunin API key + Agent ID from kakunin.ai/dashboard.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"kakunin": {
"command": "npx",
"args": ["-y", "@kakunin/mcp"],
"env": {
"KAKUNIN_API_KEY": "kak_live_...",
"KAKUNIN_AGENT_ID": "agt_..."
}
}
}
}Environment variables
Variable | Required | Description |
| ✅ | API key ( |
| ✅ | Agent ID the server acts on behalf of |
| optional | Override API base (default: |
Sandbox mode
Use a kak_test_... key for development — hits the sandbox CA, no cost, 100 free certs/day.
Full docs at docs.kakunin.ai.
Contributors
Thanks to everyone who contributes (emoji key) — code and non-code alike:
Contributions of any kind are welcome — this project follows the all-contributors spec.
Available Tools
3 toolsaudit_log_appendA
Append a behavioral event to this agent's immutable audit log. Use this to voluntarily record actions — transactions, data operations, API calls. Returns the risk score for the event and a transaction ID for traceability. High-risk events (score >= 0.85) automatically trigger a certificate revocation check.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | Yes | Arbitrary key-value pairs describing the event. For transactions: include amount, currency, venue. For data ops: include resource_type, resource_id, operation. Avoid PII — this is stored in the immutable audit log. | |
| event_type | Yes | Type of behavioral event being logged. Use "transaction_initiated" for financial operations, "data_mutation" for write/delete ops, "api_call" for standard API calls. | |
| session_id | No | Optional session ID for grouping related events in the audit trail. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It reveals immutability of the log, return values (risk score and transaction ID), and automatic certificate revocation for high-risk events (score >= 0.85). This is good context beyond basic logging.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary action, no unnecessary words. Every sentence adds value: purpose, use cases, return values, and an important behavioral note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description correctly states return values (risk score and transaction ID) and a key side effect (certificate revocation). With 3 parameters (including a nested object) and good schema coverage, the description is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds concrete examples for metadata (amount, currency, venue for transactions; resource_type, resource_id for data ops) and elaborates on event_type usage (e.g., 'transaction_initiated' for financial ops). This provides practical guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'append' and the resource 'agent's immutable audit log'. It distinguishes the tool from siblings (check_risk_score, verify_agent_scope) by focusing on recording events for traceability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (voluntarily record actions like transactions, data ops, API calls) and provides specific event_type guidance. However, it does not mention when not to use or alternatives, though siblings are distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_risk_scoreA
Retrieve this agent's rolling 30-day risk score, risk band (low/medium/high), and drift trend. Returns actionable guidance — use this to decide whether to self-throttle, escalate to a human, or proceed normally.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes return values (score, band, trend, guidance) and implies read-only operation. Could mention lack of side effects, but sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first describes what is retrieved, second gives usage guidance. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Returns risk score, band, trend, and guidance. No output schema, so description covers return values adequately. Could specify response format or prerequisites, but sufficient for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters (100% coverage). With 0 params, baseline score is 4 as per guidelines. No additional parameter info needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb 'Retrieve' and resource 'rolling 30-day risk score, risk band, drift trend'. Clearly distinguishes from sibling tools (audit_log_append, verify_agent_scope) which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states use case: 'decide whether to self-throttle, escalate to a human, or proceed normally'. Does not explicitly exclude alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_agent_scopeA
Check whether this agent is authorised to perform a specific action or call a specific endpoint. Verifies the active X.509 certificate, permitted_actions scope, financial limits, and revocation status. Call this BEFORE executing any action that might exceed scope — not after.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | No | Optional trading venue or system being accessed (e.g. "euronext", "xetra"). | |
| action | Yes | The action or endpoint the agent wants to perform. Can be a scope string (e.g. "write:invoices"), an API path (e.g. "/api/v1/execute_trade"), or a plain description (e.g. "initiate EUR/USD trade on euronext for 50000 USD"). | |
| amount_usd | No | Optional transaction amount in USD for financial scope enforcement. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses key checks performed but omits return format or behavior (e.g., error handling, whether it blocks or just returns a status). Without output schema, agent lacks full behavioral insights.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states core purpose, second enumerates checks and gives a usage directive. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is reasonably complete for an authorization check but lacks return value specification. Agent must infer whether response is boolean or detailed object. Missing error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions, so baseline is 3. The description adds minimal extra meaning beyond schema, e.g., clarifying the 'action' parameter's role. No significant enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks authorization for a specific action or endpoint, and lists specific verifications (X.509 certificate, scope, financial limits, revocation). It is distinct from sibling tools (audit_log_append for logging, check_risk_score for risk scoring).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Call this BEFORE executing any action that might exceed scope — not after.', providing strong usage guidance. However, it does not explicitly mention when not to use or compare to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
audit_log_append - First observed
check_risk_score - First observed
verify_agent_scope
TDQS
Scored across 3 tools
Each tool serves a distinct, non-overlapping purpose: logging events, checking risk, and verifying authorization. No ambiguity between them.
All tools follow a consistent verb_noun pattern in snake_case (append, check, verify), making the set predictable and easy to understand.
With only 3 tools, the server is tightly scoped to essential agent monitoring and authorization functions, avoiding unnecessary bloat.
The tool surface covers the key lifecycle for agent self-management: logging actions, assessing risk, and verifying scope before execution. No obvious gaps.
Maintenance
Related MCP Connectors
Deterministic runtime safety for AI agents: scan PII, gate tool actions, verify LLM output.
Runtime permission, approval, and audit layer for AI agent tool execution.
Zero-trust gateway for AI agents: score tool calls, verify agent cards, enforce policy, audit.
Register every AI agent, log every action, prove it. EU AI Act compliance built in.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides permission gates and tamper-evident audit logging for AI agent tool executions, with declarative policies, consent ladders, and hash-chained verification.MIT
- AlicenseBqualityBmaintenanceProvides AI governance and action-assurance primitives, enabling trust scoring, policy-based allow/deny decisions, risk assessment, EU AI Act compliance checks, and an emergency kill-switch for autonomous agents.637 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to securely invoke tools by enforcing identity proof, capability verification, and risk scoring on every request, blocking unsafe calls before they execute.MIT
- AlicenseNot gradedqualityCmaintenanceEnables autonomous AI agents to securely access and execute external tools, such as GitHub REST API operations, with per-user authentication, authorization, audit logging, and observability.MIT