NORMA MCP Server
Server Details
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Tool Definition Quality
Average 4.3/5 across 4 of 4 tools scored.
Each tool has a clearly distinct purpose: search_controls finds controls, assess_gap performs gap analysis, map_controls crosswalks frameworks, and generate_policy creates policy documents. No overlapping boundaries.
All tool names follow a consistent verb_noun pattern with lowercase and underscores: assess_gap, generate_policy, map_controls, search_controls. No deviations.
Four tools is well-scoped for a compliance-focused MCP server, covering search, analysis, mapping, and generation without unnecessary bloat.
The surface covers core workflows for compliance assessment and policy generation. A minor gap is that search is the only retrieval method and there is no direct 'get_control' tool, but search_controls with excerpts largely compensates.
Available Tools
4 toolsassess_gapAssess compliance gap against a target frameworkARead-onlyIdempotentInspect
Indicative gap register against a target framework. Given a company profile (existing certifications, sector, size, jurisdiction), return covered / partial / gap counts and slug examples. Heuristic only — Pyxis (https://kynosure.ai/en/pyxis) produces the severity-ranked cross-framework gap register with FCI/WMI/ECI scoring.
| Name | Required | Description | Default |
|---|---|---|---|
| company_profile | Yes | Existing certifications + organisational profile. | |
| target_framework | Yes | The framework to assess gaps against. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent hints. The description adds the heuristic nature ('Indicative', 'Heuristic only') and indicates the output format (counts and slug examples). This goes beyond the annotations, though it does not detail limitations beyond the heuristic caveat.
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?
The description is two sentences: the first front-loads the core function, and the second adds a necessary caveat and pointer to a more advanced tool. Every word earns its place, with no redundant or filler content.
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 output schema, the description clarifies the return types (covered/partial/gap counts and slug examples) and the heuristic nature. It could have mentioned potential error scenarios or exactly how the heuristic works, but for a read-only, idempotent tool with 2 parameters, it is sufficiently complete.
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?
The input schema provides 100% description coverage for both parameters, including details about the company_profile nested object and target_framework enum. The description states the high-level purpose but adds no new parameter-specific meaning beyond what the schema already defines, so the baseline of 3 is appropriate.
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 assesses compliance gaps, listing specific inputs (company profile, target framework) and the output (covered/partial/gap counts and slug examples). It uses a specific verb and resource, distinguishing it from siblings like generate_policy and map_controls.
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 provides clear usage context: it is an indicative, heuristic tool, and it explicitly points to Pyxis for severity-ranked gap registers. However, it does not directly compare against sibling tools such as search_controls or map_controls, so it falls short of a full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_policyGenerate policy from NORMA templateAIdempotentInspect
Parametrize a NORMA compliance template with company context and return Markdown. Templates are sourced from the curated corpus (32 in the public subset, 176 more queryable in full). Output begins with a not-legal-advice disclaimer block. Use search_controls first to discover a slug.
| Name | Required | Description | Default |
|---|---|---|---|
| template_slug | Yes | Template slug. Use search_controls to discover one. Examples: "iso27001-access-control", "isms-policies-supplier-security". | |
| company_context | Yes | Variables substituted into {{COMPANY_NAME}}, {{SECTOR}}, etc. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context beyond the annotations: output format (Markdown), a not-legal-advice disclaimer, and template sourcing details (32 public vs 176 full). It aligns with idempotentHint=true by implying deterministic template parametrization, and no contradiction with readOnlyHint=false.
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 purpose, then corpus context and a usage hint. No extraneous words; each sentence adds distinct value.
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?
Despite a nested parameter and no output schema, the description nails the essential behavior: input source, required discovery step, output format, and disclaimer. It could mention error behavior for invalid slugs, but overall it's well-rounded for an agent.
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 enriches company_context semantics by mentioning 'Variables substituted into {{COMPANY_NAME}}, {{SECTOR}}, etc.', which clarifies how the parameter is used. It also reinforces the template_slug discovery via search_controls.
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 'Parametrize' with a specific resource ('NORMA compliance template') and output ('Markdown'). It distinguishes from siblings by explicitly directing users to search_controls for slug discovery, setting this tool apart as the generation step.
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?
Provides a clear prerequisite: use search_controls first to find a slug, which tells the agent when to call this tool (after discovery). It also frames the tool's role in a workflow but doesn't explicitly exclude alternatives like assess_gap or map_controls; however, the search_controls mention gives practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_controlsMap controls between frameworksARead-onlyIdempotentInspect
Crosswalk corpus controls between two compliance frameworks via the cross_references frontmatter graph. Useful for prompts like 'I am ISO 27001 certified — what gaps for NIS2?'. Returns an array of mapped pairs with confidence + source slug.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| to_framework | Yes | Target framework (e.g., nis2). | |
| from_framework | Yes | Source framework (e.g., iso27001). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, but the description adds valuable behavioral details: it operates on the 'cross_references' frontmatter graph and returns an array of mapped pairs with confidence and source slug. This goes beyond the annotations by explaining the underlying data source and output shape.
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?
The description is two sentences long, with the first stating purpose and mechanism and the second giving a usage example and output summary. It is front-loaded and free of unnecessary words, making it highly concise.
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?
The description covers the purpose, usage, mechanism, output type, and includes an example. Since there is no output schema, the description appropriately explains the return array and its fields. It does not mention error conditions or edge cases, but the tool is simple and read-only, so this is sufficient.
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 67%, and the description helps clarify the from/to frameworks using an example, but it does not mention the 'limit' parameter at all. The schema property descriptions are minimal ('Source framework', 'Target framework'), so the description adds some semantic value but does not fully compensate for the missing explanation of limit.
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's function with a specific verb ('Crosswalk') and resource ('corpus controls between two compliance frameworks') via a specific mechanism ('cross_references frontmatter graph'). It also distinguishes itself from sibling tools like search_controls and assess_gap by focusing on mapping between frameworks.
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 provides a concrete usage example ('I am ISO 27001 certified — what gaps for NIS2?') that illustrates when to use the tool. It does not explicitly mention when not to use it or compare with alternatives, so it lacks exclusionary guidance but still offers clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_controlsSearch NORMA controlsARead-onlyIdempotentInspect
Full-text search the curated NORMA control corpus. Filter by framework (NIS2 / DORA / ISO 27001 / ISO 42001 / EU AI Act / ISO 22301 / ISO 27701 / CRA). Returns matching templates with title, framework, slug, source_refs, and an excerpt around the match.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| keyword | Yes | Search query (matched against title + body, case-insensitive). | |
| framework | No | Restrict to one framework (omit to search all frameworks). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, covering safety. The description adds valuable context by disclosing the return format (matching templates with title, framework, slug, source_refs, and excerpt) and the full-text scope. This goes beyond the annotations and schema, providing a clear picture of the tool's behavior.
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?
The description is two sentences, front-loaded with the main purpose, and includes no filler. It effectively balances brevity with necessary detail about filtering and return fields.
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?
For a read-only search tool, the description is complete. It states what is searched, the filtering options, and the exact fields returned. Since there is no output schema, listing the return fields is especially valuable. The annotations cover safety, and the schema covers parameters adequately.
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?
The schema describes keyword and framework, with descriptions for both. The description adds the list of allowed framework values and confirms keyword matches title+body. However, the 'limit' parameter has no description in either the schema or the description, though its constraints (default 10, max 50) are present in the schema. Overall, the description partially supplements the schema but doesn't fully compensate for the missing 'limit' semantics.
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 uses a specific verb ('Full-text search') with a clear resource ('the curated NORMA control corpus'), and explicitly mentions filtering by framework and the return fields. This clearly distinguishes it from sibling tools like assess_gap, generate_policy, and map_controls, 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?
The description clearly states what the tool does and mentions the framework filter as a usage option. However, it does not explicitly compare with sibling tools or state when not to use this tool, so it falls short of a 5. The purpose is clear enough that an agent would know to use it for full-text search of controls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
10,065 source-verified compliance nodes, 39 pillars, 25 MCP tools (EU AI Act, GDPR, NIST, MITRE).
AI legal compliance: contract review, risk scoring, EU/CN AI act, watermark check. 8 MCP tools.
BC/DR & compliance tools: DORA, NIS2, NIST CSF, GDPR, SOC 2, CMMC, CAF, ISO 27001, FCA/PRA.
AI governance MCP server for EU AI Act compliance and jurisdiction verification
Related MCP Servers
- AlicenseAqualityCmaintenanceEU AI Act · APRA · NIST AI RMF · ISO 42001 · AU AI Safety — grounded compliance citations for any MCP client.6491Apache 2.0
- FlicenseNot gradedqualityDmaintenanceFree hosted MCP server for EU compliance, enabling search across 8 frameworks, cross-framework mapping, policy generation, and gap assessment via natural language.
- AlicenseBqualityAmaintenanceMulti-regime AI incident classification and reporting MCP supporting EU AI Act Article 73, DORA, NIS2, and GDPR breach reporting.3MIT
- AlicenseAqualityFmaintenanceQuery 37 EU regulations — from GDPR and AI Act to DORA, MiFID II, eIDAS, Medical Device Regulation, and more — directly from Claude, Cursor, or any MCP-compatible client.1417325Apache 2.0