Skip to main content
Glama
mimaworks

mimaworks/governance-mcp

Official
by mimaworks

@mima-ai/governance-mcp

governance-mcp MCP server MCP Badge

MCP server for AI governance — push compliance evidence to Mima from any agent, any stack, 4 lines of config.

One tool call maps to EU AI Act, ISO 42001, SOC 2, and NIST AI RMF simultaneously. Your readiness score updates automatically.

Install

npx @mima-ai/governance-mcp@0.1.13

Or add to your MCP config (always pin the version):

{
  "mcpServers": {
    "mima-governance": {
      "command": "npx",
      "args": ["-y", "@mima-ai/governance-mcp@0.1.13"],
      "env": {
        "MIMA_API_KEY": "mima_ext_...",
        "MIMA_WORKSPACE_ID": "ws-..."
      }
    }
  }
}

Related MCP server: compliance-mcp

10 tools

Tool

What it does

get_posture

Overall readiness score + per-framework breakdown

list_systems

All AI systems — registered vs unregistered

list_evidence

Evidence records filtered by system and time

dry_run_attest

Preview which controls an attestation would earn

attest

Write a GRC evidence record

register_system

Register an AI system under EU AI Act Art. 9

acknowledge_policy

Record a policy acknowledgment

derive_controls

Recommended evidence types for a system description

check_gates

Gate pass/fail status with exit codes

suggest_gates

Prioritised gate recommendations

Usage — Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "mima-governance": {
      "command": "npx",
      "args": ["-y", "@mima-ai/governance-mcp"],
      "env": {
        "MIMA_API_KEY": "mima_ext_...",
        "MIMA_WORKSPACE_ID": "ws-..."
      }
    }
  }
}

Then ask Claude: "Check our compliance posture" or "Register this AI system and suggest which controls we need."

Usage — Cursor / Windsurf

Add to .cursor/mcp.json or .windsurf/mcp.json in your project root:

{
  "mcpServers": {
    "mima-governance": {
      "command": "npx",
      "args": ["-y", "@mima-ai/governance-mcp"],
      "env": {
        "MIMA_API_KEY": "mima_ext_...",
        "MIMA_WORKSPACE_ID": "ws-..."
      }
    }
  }
}

Dry-run support

All write tools support dry-run — preview what controls you'd earn before committing:

dry_run_attest({ record_type: "ai_risk_assessment", system_name: "loan-scorer" })
// → { mapped_controls: ["EUAIA_ART9", "ISO42001_6_1", "NIST_AIRF_MAP_1"] }

Four frameworks, one call

Framework

What it covers

EU AI Act

Art. 9–15 risk management, oversight, accuracy obligations

ISO 42001

AI management system controls — A.6.x risk, A.9.x performance

SOC 2

CC3.x–CC8.x risk, change, and incident management

NIST AI RMF

GOVERN, MAP, MEASURE, MANAGE functions

Get an API key

mima.works → sign up → copy your key from the dashboard.

Python SDK

For app-code attestation (decorators, batch pushes, pre-approval gates):

pip install mima-governance

Docs

docs.mima.works

Available Tools

10 tools
acknowledge_policyA

Record that a team member has read and understood an AI governance policy. Generates an immutable policy_acknowledged evidence record — required for EU AI Act Art. 9, SOC 2 CC1.4, and ISO 42001 A.5.1.

Use this when:

  • A new employee joins and needs to acknowledge the AI use policy

  • An AI policy has been updated and the team needs to re-acknowledge

  • A periodic renewal acknowledgment is due (annual policy reviews)

The record is timestamped to now and cannot be modified after creation. Auditors verify the person's email, policy version, and exact timestamp.

Pass dry_run=true to preview which controls this acknowledgment would earn without writing anything to the ledger. Use this before the real call to confirm the payload is correct.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, preview which controls this acknowledgment would earn without writing to the ledger. record_id in the response will be the nil UUID. Use this before the real call.
policy_urlNoURL to the versioned policy document. Strongly recommended — auditors click through to verify what was acknowledged.
policy_nameYesHuman-readable policy name. E.g. 'AI Use Policy' or 'Model Risk Management Policy'.
system_nameYesThe AI system this acknowledgment applies to. Must match the system_name used in mima.attest(system_name=…).
person_emailYesEmail of the person acknowledging the policy. Must be a real individual — auditors trace acknowledgments to named persons (Art. 14).
policy_versionYesVersion of the policy being acknowledged. Auditors verify this. Use semantic versioning or a date, e.g. 'v3.1.0' or '2026-06-01'.
acknowledgment_typeNo'initial' = first time reading this policy. 'renewal' = periodic re-acknowledgment. 'update' = policy was revised and team is acknowledging the new version. Defaults to 'initial'.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It discloses key behaviors: the record is immutable, timestamped to now, and dry_run=true previews without writing. It also explains auditor verification. This is strong, though it omits details like permissions or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a crisp main sentence, a bulleted list of use cases, then behavioral notes and dry_run guidance. Each section earns its place without redundant fluff, making it easy to scan and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters and no output schema, the description sufficiently covers purpose, usage, behavior, and even hints at response structure (e.g., nil UUID in dry_run). It lacks error handling or permission details, but overall it's complete enough for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters. The description adds minimal extra parameter context (e.g., dry_run usage), but doesn't significantly enhance beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: recording that a team member read and understood an AI governance policy. Uses a specific verb ('record') and resource ('policy_acknowledged evidence record'), and distinguishes itself from sibling tools like attest by focusing on policy acknowledgment for compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'Use this when' section listing three concrete scenarios: new employee onboarding, policy updates, and periodic renewals. It also advises using dry_run before the real call but doesn't explicitly mention when not to use this tool, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attestA

Record a compliance evidence event in the Mima governance ledger, mapped to EU AI Act, SOC 2 Type II, ISO 42001, and NIST AI RMF controls.

Call this when the AI system performs a governance-relevant action that requires an audit trail: a human reviewing or overriding an AI decision, a risk assessment being completed, a model being evaluated for accuracy or bias, an access review, a policy being acknowledged, or an incident being reported.

Do NOT call this for routine AI inference calls — only for actions where a regulator or auditor would expect documented evidence.

Returns the record_id and the list of compliance controls earned (e.g. EUAIA_ART14, SOC2_CC6.1). The GRC manager sees these in the Mima governance dashboard and they count toward the readiness score.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesEvent-specific fields. Unknown fields are stored but do not earn additional controls. For human_oversight: { decision, reviewer, outcome_summary, system_prompt_version? }. For ai_risk_assessment: { risk_level, risk_summary, art5_self_assessment?, mitigations? }. For model_evaluation: { accuracy, robustness_score?, bias_metrics?, evaluated_by? }. For incident_report: { severity, description, resolution? }.
identityNoUser or service identity performing the action. E.g. 'user@example.com'.
resourceNoThe resource or entity acted upon. E.g. 'customer-id:12345'.
environmentNoDeployment environment. Defaults to 'production' on the server side.
occurred_atNoISO 8601 timestamp of when the event occurred. Defaults to now.
record_typeYesThe governance event type. Maps to the SDK's 11 record types.
system_nameYesName of the AI system generating this record. E.g. 'loan-scoring-v2'. Alphanumeric, spaces, hyphens, underscores, and dots only.
enforce_gatesNoIf true, checks all required governance gates before writing. Recommended for production actions and high-risk systems. If a required gate is failing, the write is blocked — use dry_run_attest to confirm this record would earn controls that close the gap, then re-call attest without enforce_gates once you have verified the impact.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: it returns record_id and compliance controls earned, notes that unknown fields are stored but earn no controls, explains the enforce_gates blocking behavior, and states default values for environment and occurred_at. This goes well beyond the structured schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, leading with the core purpose, then when to call, when not to call, and finally the return value. Every sentence carries meaningful information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description clearly explains the return value (record_id and controls) and how the records integrate with the governance dashboard. It also covers exclusions and gate-checking behavior, making it complete for this 8-parameter tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with rich descriptions for all 8 parameters. The main description adds no additional parameter-level semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Record') and resource ('compliance evidence event in the Mima governance ledger'), and further specifies the compliance frameworks (EU AI Act, SOC 2, ISO 42001, NIST AI RMF). This clearly defines the tool's purpose and distinguishes it from siblings like dry_run_attest or check_gates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Call this when the AI system performs a governance-relevant action...' and 'Do NOT call this for routine AI inference calls'. It also names dry_run_attest as an alternative in the enforce_gates parameter description, giving clear when-to-use vs when-not-to-use direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_gatesA

Check the status of all configured governance gates for this workspace. Gates are threshold-based controls that block deployments when compliance scores drop below a required level.

Returns each gate's current score vs threshold, and whether it passes.

Use this to answer questions like:

  • "Can we deploy right now?"

  • "Which gates are blocking us?"

  • "What do we need to fix before merging?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It explains that the tool returns each gate's current score vs threshold and pass/fail status, which is transparent for a read-only check. However, it does not explicitly state the operation is read-only, mention permissions, or address limitations, leaving room for more context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the primary purpose, then return information, then usage examples. Every sentence earns its place, and there is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and no output schema, but the description explains what gates are, what the tool returns, and provides example use cases. Given the complexity, the description is complete enough for an agent to select and invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (vacuously). Per the baseline for 0 parameters, the description does not need to explain parameters, and it appropriately avoids adding irrelevant detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks the status of all configured governance gates for the workspace, with a specific verb and resource. It distinguishes itself from siblings by focusing on gate status and threshold-based blocking, and is not ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance with example questions like 'Can we deploy right now?' which help the agent know when to invoke it. However, it does not explicitly name alternative tools or when-not-to-use it, so it lacks the full 'when/when-not/alternatives' clarity that would earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

derive_controlsA

Returns your current governance coverage gaps relative to the described action.

Provides: the action description as context, uncovered required controls (with which record types evidence them), the system's registered risk tier and Art. 14 status where deterministic from the ledger.

Use this data to reason about which record types the described action requires and why — then propose them via dry_run_attest before writing.

When art14_applicable is null, the system is not yet registered. Offer to run /mima:register-systems to resolve it.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesDescription of the AI action, feature, or architectural decision. Be specific about what the system does, who is affected, and whether humans are in the loop.
system_nameNoName of the AI system (e.g. 'loan-scoring-v2'). Resolves risk tier and Art. 14 status from the ledger.
ai_risk_tierNoExplicit risk tier assertion for unregistered systems. Use when system is not yet registered and you know the tier. high → art14_applicable=true (cold-start mitigation).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It transparently lists what it returns (action description, uncovered required controls, risk tier, Art. 14 status) and notes non-determinism ('where deterministic from the ledger'). It also explains the null art14_applicable behavior and suggests a resolution path, exceeding typical disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the core purpose, followed by a structured list of outputs and actionable guidance. No filler or redundancy; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description thoroughly explains return values (action description, uncovered controls, risk tier, Art. 14 status) and includes conditional behavior for nulls and a recommended next step. It is complete for an analysis tool with moderate complexity and good sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% description coverage for all three parameters, including detailed guidance for ai_risk_tier ('high → art14_applicable=true'). The tool description adds no extra parameter-level information beyond what the schema already states, so it hits the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Returns your current governance coverage gaps relative to the described action.' This clearly distinguishes it from siblings like attest, get_posture, and dry_run_attest by focusing on gap analysis rather than attestation or overall posture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for use: 'Use this data to reason about which record types the described action requires and why — then propose them via dry_run_attest before writing.' It also gives a conditional for unregistered systems ('Offer to run /mima:register-systems to resolve it'). While it doesn't explicitly list when-not or alternative tools, the workflow is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dry_run_attestA

Preview which compliance controls a proposed evidence record would earn — without writing anything to the ledger. Use this before calling attest to confirm the record is correct.

This is the verification step in the compliance copilot loop:

  1. get_posture() → identify gap

  2. dry_run_attest() → confirm this record closes it

  3. [present to human for approval]

  4. attest() → write the real record

Returns the same mapped_controls list that attest would return, but record_id is the nil UUID (all zeros) — a clear signal no DB row was written.

Do NOT skip this step when proposing records on behalf of a human — always show them what controls would be earned before writing.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesEvent-specific fields — same schema as `attest`.
identityNoUser or service identity that would be recorded.
record_typeYesThe governance event type to preview.
system_nameYesThe AI system this record would be attributed to.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly. It discloses that nothing is written to the ledger, that the return value includes the same mapped_controls list as `attest`, and that record_id will be the nil UUID to signal no DB write. This is rich behavioral context beyond the basic 'dry run' idea.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a front-loaded purpose sentence, a numbered workflow, and a clear return-value explanation. Every sentence adds value: the nil UUID clarification and the 'Do NOT skip' warning are both practically useful. It is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers the tool's role in the compliance loop, its output shape, and the safety implications. It even explains how to interpret the nil UUID and why the step should not be skipped. For a tool with 4 parameters, nested objects, and no output schema, this is very complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds extra meaning by noting that `payload` uses the 'same schema as `attest`', clarifying that `identity` is the user or service identity that would be recorded, and explaining that the returned nil UUID is a signal of no write. This goes slightly beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Preview which compliance controls a proposed evidence record would earn — without writing anything to the ledger.' It clearly distinguishes itself from sibling `attest` by saying 'Use this before calling attest' and explicitly frames it as a dry-run verification step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use this before calling `attest` to confirm the record is correct.' It also provides a numbered step sequence (get_posture → dry_run_attest → human approval → attest) and a strong exclusion: 'Do NOT skip this step when proposing records on behalf of a human.' This gives clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_postureA

Get the current AI governance posture for this workspace. Returns per-framework compliance scores (EU AI Act, SOC 2, ISO 42001, NIST AI RMF), failing gates, and the count of unattested AI calls in the last 24 hours.

Use this to answer questions like:

  • "How compliant are we with the EU AI Act?"

  • "What is our current governance score?"

  • "Are we ready for the August deadline?"

  • "Which frameworks have gaps?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully convey behavior. It discloses the nature of the return data (compliance scores, failing gates, call counts) and implies a read-only action via 'Get'. However, it does not explicitly state that the operation is side-effect-free, requires specific permissions, or has any rate limits or data freshness caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: the first paragraph states purpose and outputs, the second paragraph provides practical usage examples. Every sentence earns its place, and the information is front-loaded. It is concise yet comprehensive without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, no output schema), the description provides sufficient context by listing the return elements and example questions. It could have added a note about read-only nature or data boundaries, but overall it is complete for a straightforward retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides no parameter semantics to explain. The baseline for zero parameters is 4, and the description doesn't need to add any parameter information. It doesn't waste space on non-existent parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Get') and resource ('AI governance posture'), and breaks down specific outputs (per-framework compliance scores, failing gates, unattested call count). This is a specific, action-oriented explanation that distinguishes it from sibling tools like check_gates, which is more narrowly about gates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by listing example user questions that this tool answers ('How compliant are we with the EU AI Act?', 'Which frameworks have gaps?'). It does not explicitly mention alternatives or exclusion criteria, but the examples effectively guide when to use this tool versus a more specific one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_evidenceA

List evidence records from the governance ledger, optionally filtered by system and time.

Use this to understand what evidence already exists before proposing new records — prevents duplicate attestations and helps the agent reason about gaps:

  • 'Has loan-scoring-v2 had a human_oversight record in the last 30 days?'

  • 'What evidence does the chatbot system have for EU AI Act controls?'

  • 'Show me the last 10 records across all systems'

Returns records ordered newest-first. Default limit 20, max 100. The source field is 'sdk' (attested) or 'inferred' (estate scan — lower audit weight).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax records to return. Default 20, max 100.
sinceNoISO 8601 timestamp — only return records at or after this time. E.g. '2026-06-01T00:00:00Z' or '2026-05-01T00:00:00Z' for the last month.
system_nameNoFilter to a specific AI system. Omit to see records across all systems.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses ordering ('newest-first'), result limits ('Default limit 20, max 100'), and the meaning of the source field ('sdk' vs 'inferred' with audit weight). This gives the agent important context for interpreting results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and every sentence earns its place: a clear purpose statement, a usage rationale with concrete examples, and key behavioral details. It is concise yet complete without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The context signals show no output schema and no annotations, so the description must fully equip the agent. It covers return ordering, limits, filtering semantics, and the meaning of the source field, making the tool's behavior fully predictable for a read-only listing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already achieves 100% parameter coverage, so the baseline is 3. The description adds small value by explaining the 'since' example format and reinforcing the default/max limit, but it largely restates schema information without introducing significant new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List evidence records from the governance ledger'. It clearly distinguishes the tool from siblings like attest (create records) and list_systems (list systems) by focusing on reading evidence with optional filters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'Use this to understand what evidence already exists before proposing new records'. It provides concrete example queries showing the kinds of questions this tool answers. It does not explicitly mention when not to use it or name alternatives, so a small gap remains relative to a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_systemsA

List all AI systems in this workspace with their registration status and evidence coverage.

The key field is is_registered: false means the system has emitted evidence (the guard or AST scanner detected it) but no ai_risk_assessment record exists — the Art. 9 intake gap.

Use this to:

  • Identify unregistered AI systems before the EU AI Act deadline

  • See which systems have evidence gaps (record_types shows what categories exist)

  • Answer: "what AI systems do we have?" and "which ones are formally registered?"

Returns system_name, record_count, last_seen, is_registered, record_types[], controls[].

ParametersJSON Schema
NameRequiredDescriptionDefault
system_nameNoFilter to a specific AI system by name. Omit to list all systems in the workspace.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the transparency burden. It explains the meaning of the key field is_registered, including the Art. 9 intake gap, and lists the returned fields. It does not explicitly state read-only status, but the 'list' semantics and lack of side effects imply it. The description adds valuable behavioral context beyond the raw schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded: the first sentence states the core function, followed by a key-field explanation, bulleted use cases, and a return list. Each section adds meaningful value without redundancy. It is concise yet comprehensive, earning every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description lists all return fields and explains the critical field is_registered. The optional filter is documented in the schema. The tool is simple, and the description covers purpose, semantics, usage, and output, making it complete 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the single optional parameter system_name with a description. The tool description does not add new information about the parameter, but the schema coverage is 100%, so the baseline of 3 is appropriate. The description emphasizes output semantics, not parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific verb+resource statement: 'List all AI systems in this workspace with their registration status and evidence coverage.' It distinguishes itself from sibling tools like list_evidence (which lists evidence, not systems) and register_system (which registers systems). The additional use cases further clarify the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance via a 'Use this to' bullet list, covering identification of unregistered systems, evidence gap analysis, and answering common questions. It does not explicitly mention when not to use this tool or name alternatives, but the context makes the applicable scenarios clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_systemA

Register an AI system in the Mima governance ledger. Creates an Art. 9 risk assessment record — required once per AI system before it processes EU persons under the EU AI Act.

Use this during design reviews or architecture discussions when a new AI system is being planned or has just been deployed:

  • "We're adding a loan scoring model to production"

  • "This new hiring algorithm needs to be registered"

  • "Register the content moderation system we just deployed"

Pass dry_run=true to preview which controls this registration would earn without writing anything to the ledger. Use this before the real call to confirm the payload is correct.

Returns the record_id and mapped controls (e.g. EUAIA_ART9, ISO42001_6.1). In dry-run mode, record_id is the nil UUID — a clear signal nothing was written.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, preview which controls this registration would earn without writing to the ledger. record_id in the response will be the nil UUID. Use this before the real call.
risk_levelYes'high' = Annex III system requiring full Art. 9 documentation. 'medium' = limited risk, transparency obligations apply. 'low' = minimal risk, no mandatory requirements.
environmentNoDeployment environment. Defaults to 'production'.
system_nameYesUnique identifier for the AI system. Must match what developers pass to mima.attest(system_name=…). Use lowercase with hyphens, e.g. 'loan-scoring-v2'.
risk_summaryYesWhy this system is classified at this risk level. Write a complete sentence. Example: 'This system scores loan applications for EU consumers under Annex III §(e). Human review is mandatory for scores below 600.'
system_versionNoOptional version string, e.g. 'v2.1.0'. Auditors use this to track change events.
intended_purposeYesUse case, target population, and deployment scope. Auditors check this against Annex IV §1. Example: 'Predicts credit default probability for retail loan applicants aged 18-75 in the EU. Assists (does not replace) manual underwriter assessment.'
technical_doc_urlNoURL to Annex IV technical documentation. Must be a live URL.
training_data_urlNoURL to training dataset specification and lineage.
annex_iii_categoryNoThe Annex III category for high-risk systems. Required when risk_level is 'high'. Options: biometric_identification, critical_infrastructure, education_vocational, employment_management, essential_services, law_enforcement, migration_border, justice_democratic.
responsible_personYesEmail of the named person accountable for this system under Art. 14. Must be a real individual, not a team alias.
art5_self_assessmentYesSet true to certify this system does not engage in practices prohibited under Art. 5 (subliminal manipulation, social scoring, real-time biometric identification in public spaces, etc.). Required field — do not set to true without confirming with the system owner.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for disclosing behavior. It explicitly notes that the real call writes a ledger entry while dry_run=true 'preview[s] which controls this registration would earn without writing anything' and that the nil UUID signals no write occurred. It also discloses that registration is mandatory and returns record_id and mapped controls. This goes beyond minimal disclosure, though it does not discuss permissions or irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: it opens with a clear purpose, then gives usage context, example utterances, dry-run guidance, and return values in a logical, front-loaded order. Every sentence contributes unique information, and the bullet-point examples make it easy to scan. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential context for an AI agent: when to invoke, what it does, how dry-run works, and what the response contains (record_id and mapped controls). Since there is no output schema, this return-value disclosure is valuable. It could add more about failure modes or prerequisites, but for a registration tool with 100% schema coverage, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not need to explain each parameter, and it adds minimal extra meaning beyond the schema—mainly reinforcing dry_run's purpose, which is already described in the schema. The schema itself carries the parameter semantics, so the description neither detracts nor significantly augments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Register an AI system in the Mima governance ledger. Creates an Art. 9 risk assessment record.' This is a specific verb+resource pair that differentiates it from sibling tools like list_systems or derive_controls, and it includes the regulatory context (EU AI Act).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it: 'during design reviews or architecture discussions when a new AI system is being planned or has just been deployed' and provides realistic example utterances. It also explains the dry_run workflow, but it does not explicitly mention when not to use it or point to alternative tools, though the guidance is clear enough without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_gatesA

Analyse the current governance posture and gate configuration, then return a prioritised list of gate recommendations.

Suggestions are one of four actions: • increase_coverage — a required gate is failing; push more evidence • add_required_gate — a framework scores well enough to gate CI on it • add_advisory_gate — an unconfigured framework has real coverage; worth tracking • promote_to_required — an advisory gate has been passing steadily; safe to make required

Use this when:

  • "What gates should we add?"

  • "How do we improve our gate coverage?"

  • "Which frameworks are ready to become required gates?"

  • "We have no gates configured — where do we start?"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It explains the tool's analysis and the four types of suggestions, but does not state whether it is read-only, requires specific permissions, or has any side effects. It also does not describe the output format or data sources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a clear first sentence, a concise bulleted list of the four output actions, and a practical list of example queries. Each section adds relevant information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is detailed for a tool with no parameters, no annotations, and no output schema. It covers the tool's purpose, the types of recommendations, and use cases. It could mention prerequisites or limitations, but the example about having no gates configured implies it works from scratch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly focuses on the tool's behavior rather than parameter details, and there is nothing to clarify since the schema is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes governance posture and gate configuration, then returns a prioritized list of gate recommendations. It distinguishes itself from sibling tools by focusing on recommendations rather than execution or checking, and the four action types add specific value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit example queries and a zero-configuration starting point, clearly indicating when to use the tool. It does not explicitly mention when not to use it or alternatives, but the examples make the intended use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool targets a distinct governance action: attest vs dry_run_attest are clearly write vs preview, get_posture vs check_gates differentiate overall scores from deployment blockers, and list_systems vs list_evidence separate system registry from evidence ledger. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent lowercase verb_noun or verb pattern: get_posture, check_gates, list_systems, register_system, acknowledge_policy, suggest_gates. The compound 'dry_run_attest' is a clear modifier of the base verb 'attest', maintaining consistency.

Tool Count5/5

With 10 tools, the server is well-scoped for AI governance: registration, evidence recording, posture checks, gate management, and gap analysis. Each tool earns its place without redundancy or bloat.

Completeness5/5

The surface covers the full governance lifecycle: register systems, attest evidence (with dry-run preview), check posture and gates, derive controls for gaps, and list evidence/systems for audits. Evidence is immutable by design, so no update/delete is needed. The only minor gap might be direct gate configuration, but suggest_gates covers recommendations adequately.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AI compliance auditing. Scores agent outputs for hallucination liability under the EU AI Act, issues verifiable compliance stamps, and tracks audit history by agent.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that exposes SOC2 and HIPAA compliance remediation logic as structured tools for AI agents to call, enabling an LLM-driven workflow to discover, assess, remediate, and report on compliance controls.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for compliance automation of AI agents, enabling EU AI Act compliance, verifiable credentials, and decentralized identity management with 47 tools across 9 modules.
    17
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server providing immutable audit logging, policy enforcement, and compliance reporting for AI agent workflows, enabling regulatory compliance and chain integrity verification.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mimaworks/governance-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server