Skip to main content
Glama

get_evidence_requirements

Read-only

Identify required compliance evidence and audit artifacts for EU regulations like GDPR, DORA, and AI Act. Shows documents, logs, and test results auditors request with retention periods and maturity levels.

Instructions

Get compliance evidence and audit artifacts required for specific regulation requirements. Shows what documents, logs, and test results auditors will ask for, including retention periods and maturity levels.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
regulationNoOptional: filter to specific regulation (e.g., "DORA", "GDPR")
articleNoOptional: filter to specific article (e.g., "6", "32")
evidence_typeNoOptional: filter by evidence type
limitNoMaximum results to return (default: 50)

Implementation Reference

  • The handler implementation for get_evidence_requirements, which queries the database and transforms the result rows into the required output format.
    export async function getEvidenceRequirements(
      db: DatabaseAdapter,
      input: EvidenceInput
    ): Promise<EvidenceRequirement[]> {
      const { regulation, article, evidence_type } = input;
      let limit = input.limit ?? 50;
      if (!Number.isFinite(limit) || limit < 0) limit = 50;
      limit = Math.min(Math.floor(limit), 500);
    
      let sql = `
        SELECT
          regulation,
          article,
          requirement_summary,
          evidence_type,
          artifact_name,
          artifact_example,
          description,
          retention_period,
          auditor_questions,
          maturity_levels,
          cross_references
        FROM evidence_requirements
        WHERE 1=1
      `;
    
      const params: string[] = [];
    
      if (regulation) {
        sql += ` AND regulation = $${params.length + 1}`;
        params.push(regulation);
      }
    
      if (article) {
        sql += ` AND article = $${params.length + 1}`;
        params.push(article);
      }
    
      if (evidence_type) {
        sql += ` AND evidence_type = $${params.length + 1}`;
        params.push(evidence_type);
      }
    
      sql += ` ORDER BY regulation, article::INTEGER, evidence_type`;
      sql += ` LIMIT $${params.length + 1}`;
      params.push(String(limit));
    
      const result = await db.query(sql, params);
    
      return result.rows.map((row: any) => ({
        regulation: row.regulation,
        article: row.article,
        requirement_summary: row.requirement_summary,
        evidence_type: row.evidence_type,
        artifact_name: row.artifact_name,
        artifact_example: row.artifact_example,
        description: row.description,
        retention_period: row.retention_period,
        auditor_questions: row.auditor_questions ? JSON.parse(row.auditor_questions) : [],
        maturity_levels: row.maturity_levels ? JSON.parse(row.maturity_levels) : null,
        cross_references: row.cross_references ? JSON.parse(row.cross_references) : [],
      }));
    }
  • The input interface defining the shape of arguments for the tool.
    export interface EvidenceInput {
      regulation?: string;
      article?: string;
      evidence_type?: 'document' | 'log' | 'test_result' | 'certification' | 'policy' | 'procedure';
      limit?: number;
    }
  • The MCP tool registration, including the input JSON schema and the handler bridge.
    {
      name: 'get_evidence_requirements',
      description: 'Get compliance evidence and audit artifacts required for specific regulation requirements. Shows what documents, logs, and test results auditors will ask for, including retention periods and maturity levels.',
      inputSchema: {
        type: 'object',
        properties: {
          regulation: {
            type: 'string',
            description: 'Optional: filter to specific regulation (e.g., "DORA", "GDPR")',
          },
          article: {
            type: 'string',
            description: 'Optional: filter to specific article (e.g., "6", "32")',
          },
          evidence_type: {
            type: 'string',
            enum: ['document', 'log', 'test_result', 'certification', 'policy', 'procedure'],
            description: 'Optional: filter by evidence type',
          },
          limit: {
            type: 'number',
            description: 'Maximum results to return (default: 50)',
          },
        },
      },
      handler: async (db, args) => {
        const input = args as unknown as EvidenceInput;
        return await getEvidenceRequirements(db, input);
      },
    },
Behavior4/5

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

Annotations confirm read-only/destructive status, while the description adds valuable behavioral context about the return data domain—specifically mentioning 'retention periods and maturity levels' and the types of artifacts (documents, logs, test results). This helps the agent understand the semantic content of results without contradicting the safety annotations.

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?

Two well-structured sentences with zero waste. Front-loaded with the core action ('Get compliance evidence...'), followed by specific details about scope ('retention periods and maturity levels'). Every clause adds distinct value.

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 query tool with 100% schema coverage and no output schema, the description adequately compensates by detailing what information is returned (evidence types, retention periods, maturity levels). It provides sufficient context for an agent to understand the tool's utility in a compliance workflow.

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?

With 100% schema description coverage, the parameters are fully self-documenting. The description mentions 'specific regulation requirements' which loosely maps to the regulation/article parameters, but does not add syntax guidance or usage notes beyond the schema. Baseline 3 is appropriate given schema completeness.

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 uses specific verb 'Get' and clearly identifies the resource as 'compliance evidence and audit artifacts.' It effectively distinguishes from siblings like get_article (which retrieves legal text) by specifying this returns auditor-facing requirements including 'retention periods and maturity levels.'

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

Usage Guidelines3/5

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

The description implies usage context (when preparing for audits or gathering compliance documentation) by specifying it shows 'what documents, logs, and test results auditors will ask for.' However, it lacks explicit when-to-use guidance or contrasts with alternatives like check_applicability or get_article.

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

Install Server

Other Tools

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/Ansvar-Systems/eu-regulations'

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