Compliance API bridging AI agents to Norwegian government systems including Altinn, Maskinporten, and Brønnøysund.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The apier-no MCP server exposes 25 tools, focused primarily on general-purpose capabilities. Its published description reads: "Compliance API bridging AI agents to Norwegian government systems including Altinn, Maskinporten, and Brønnøysund". It communicates over Streamable HTTP using the 2026-07-28 protocol revision, and does not require authorization to connect. MCPGrade currently rates apier-no F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check apier-no's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add apier-no to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://www.apier.no/api/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
Retrieve a one-shot compliance summary for a Norwegian organisation by its 9-digit organisasjonsnummer. Your FIRST call when orienting against a company: one round-trip composes entity_type, nace_code
Retrieve the universal obligation set for a Norwegian entity type — every regulatory obligation that applies by virtue of an entity BEING that organisational form, BEFORE per-company Tier-2 data is la
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: get_company_summary
A tool description tries to alter the model’s use of another tool.
identity; call get_company_context for those fields. For drill-down call get_compaRecommendationDescriptions must describe only their own tool.
tool: get_public_obligations
A tool description tries to alter the model’s use of another tool.
cial data, call get_company_obligations; for a specific company's evaluated obligationsRecommendationDescriptions must describe only their own tool.
tool: get_exchange_rate
A tool description tries to alter the model’s use of another tool.
rency rate, use get_company_summary instead. Docs: https://www.apier.no/docs/mcpRecommendationDescriptions must describe only their own tool.
tool: list_acting_capacity
A tool description tries to alter the model’s use of another tool.
n snapshot, use check_authorization instead; for the company-level statutory signinRecommendationDescriptions must describe only their own tool.
tool: get_company_profile
A tool description tries to alter the model’s use of another tool.
ce verdict, use get_company_summary instead. Distinguishers: full address detail anRecommendationDescriptions must describe only their own tool.
tool: check_authorization
A tool description tries to alter the model’s use of another tool.
's actions, use list_acting_capacity instead. This is the CONSUMER-level snapshot —RecommendationDescriptions must describe only their own tool.
tool: get_company_context
A tool description tries to alter the model’s use of another tool.
ce verdict, use get_company_summary instead. Distinguishers: the role-code summary,RecommendationDescriptions must describe only their own tool.
tool: get_company_deadlines
A tool description tries to alter the model’s use of another tool.
ion_id matching get_company_obligations, the due_date as ISO 8601 in Europe/Oslo (DST-aRecommendationDescriptions must describe only their own tool.
tool: get_company_obligations
A tool description tries to alter the model’s use of another tool.
mer or key, use get_public_obligations instead. No API key? Bearer apier_sandbox_test_RecommendationDescriptions must describe only their own tool.
tool: get_public_deadlines
A tool description tries to alter the model’s use of another tool.
versal one, use get_company_deadlines instead. Docs: https://www.apier.no/docs/guidesRecommendationDescriptions must describe only their own tool.
tool: explain_compliance_error
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "context"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: explain_compliance_error
A tool description tries to alter the model’s use of another tool.
xplanation, use get_company_obligations instead. No API key? Bearer apier_sandbox_test_RecommendationDescriptions must describe only their own tool.
tool: search_companies
A tool description tries to alter the model’s use of another tool.
it), then call get_company_summary or get_company_context with it. Input: { name }RecommendationDescriptions must describe only their own tool.
tool: get_company_verification
A tool description tries to alter the model’s use of another tool.
t for identity, get_company_summary for obligations-and-deadlines, or get_company_oRecommendationDescriptions must describe only their own tool.
tool: get_company_authority
A tool description tries to alter the model’s use of another tool.
's actions, use list_acting_capacity; for the consumer's own delegation, use check_aRecommendationDescriptions must describe only their own tool.
tool: get_company_accounts
A tool description tries to alter the model’s use of another tool.
y identity, use get_company_context. No API key? Bearer apier_sandbox_test_<suffix>RecommendationDescriptions must describe only their own tool.
tool: get_company_filing_history
A tool description tries to alter the model’s use of another tool.
st filings, use get_company_deadlines instead. No API key? Bearer apier_sandbox_test_RecommendationDescriptions must describe only their own tool.
tool: list_changes
A tool description tries to alter the model’s use of another tool.
es. `observation_kind` distinguishes first_observation (cache warming up)RecommendationDescriptions must describe only their own tool.
tool: request_fullmakt
A tool description tries to alter the model’s use of another tool.
ad-side twin is check_fullmakt; the revocation leg is revoke_fullmakt. No sandRecommendationDescriptions must describe only their own tool.
tool: check_fullmakt
A tool description tries to alter the model’s use of another tool.
is reported by check_authorization. No sandbox mirror — a sandbox bearer gets SANDRecommendationDescriptions must describe only their own tool.
tool: revoke_fullmakt
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
s NAMED outcome tokens (principal_revoke_failed, delegation_not_found,RecommendationRemove side-channel parameters; constrain tool inputs.
tool: revoke_fullmakt
A tool description tries to alter the model’s use of another tool.
al (broker with request_fullmakt, inspect with check_fullmakt). Given ONLY the aRecommendationDescriptions must describe only their own tool.
tool: get_pricing
A tool description tries to alter the model’s use of another tool.
wn balance, use get_credit_balance (Bearer key required) instead. Docs: https://wwRecommendationDescriptions must describe only their own tool.
tool: get_credit_balance
A tool description tries to alter the model’s use of another tool.
y cost_ore from get_pricing by the planned call count and compare against bRecommendationDescriptions must describe only their own tool.
tool: redeem_issuance_token
A tool description tries to alter the model’s use of another tool.
onboarding, use get_pricing (keyless) to price metered work and get_credit_RecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: get_company_summary
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_summary
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
_up_url). Docs: https://www.apier.no/docs/guides/company-snapshotRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_public_obligations
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
instead. Docs: https://www.apier.no/docs/guides/norwegian-company-obligationsRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_exchange_rate
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_exchange_rate
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
instead. Docs: https://www.apier.no/docs/mcpRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: list_acting_capacity
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_profile
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: check_authorization
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_context
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_context
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
_up_url). Docs: https://www.apier.no/docs/guides/company-snapshotRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_company_deadlines
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_obligations
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: validate_action
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: search_companies
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: search_companies
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
etic org. Docs: https://www.apier.no/docs/guides/norwegian-company-register-searchRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_company_verification
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_verification
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-register-searchRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_company_authority
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_authority
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
_up_url). Docs: https://www.apier.no/docs/guides/signature-rights-norwegian-companyRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_company_accounts
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_company_accounts
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-annual-accountsRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: get_company_filing_history
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: request_fullmakt
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: request_fullmakt
The description pairs a fetch imperative with a hardcoded external URL, letting the server relocate its real instructions off-metadata and mutate them after review. Fires only when a fetch verb and a URL co-occur, so benign documentation links do not.
x mirror. Docs: https://www.apier.no/docs/fullmaktRecommendationDo not direct the model to fetch and act on external URLs; treat linked content as untrusted.
tool: revoke_fullmakt
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Fetch the most recent Norges Bank exchange-rate reference for a currency against NOK — the canonical conversion benchmark Norwegian tax + accounting authorities accept for obligations in foreign curre
Resolve every Norwegian regulatory action a person is currently authorised to perform on behalf of a specific organisation. Combines the actor's Altinn role assignments (DAGL, LEDE, MEDL, NESTL, INNH,
Resolve a Norwegian organisasjonsnummer (9 digits) into a structured company profile from Brønnøysund Enhetsregisteret: display name, organisational form (AS / ENK / ASA …), NACE codes with descriptio
Return the authorisation snapshot for the calling consumer's delegation on a Norwegian organisation: the `status` enum (`full` / `partial` / `none`), `missing_scopes` (empty on `full`), `granted_scope
Retrieve the structured Brønnøysund identity slice for a Norwegian organisation by its 9-digit organisasjonsnummer: legal name, organisasjonsform (AS / ENK / NUF / ASA …), NACE codes, addresses, incor
Compute the upcoming Norwegian regulatory filing calendar for a specific organisation, looking horizon_months ahead. One entry per (obligation, period) pair: a stable obligation_id matching get_compan
Evaluate the Apier Rulebook for a Norwegian organisation and return every applicable regulatory obligation with its current state and legal reference. One entry per obligation: a stable obligation_id
Compute the universal Norwegian regulatory filing calendar — the deadlines that apply to every Norwegian business of the covered categories (MVA, A-melding, Årsregnskap), independent of any specific o
Run the Apier dry-run validator against a proposed regulatory action without producing ANY upstream side effect — no Maskinporten call, no Altinn / Skatteetaten / NAV submission. Use this BEFORE the l
Resolve a structured Apier compliance error code into a Norwegian-bokmål Explanation envelope: a one-line summary, a 1–3 sentence why, ordered fix_steps, an optional documentation link, an optional Lo
Resolve a Norwegian company NAME to its 9-digit organisasjonsnummer. Use this as your FIRST call whenever you have a company's name but NOT its org_number — every other company tool requires the 9-dig
Get the deterministic verification verdict for a Norwegian organisation by its 9-digit organisasjonsnummer — a fast go / no-go trust check before acting on a company's behalf. Reduced from the same Ti
Answer "who can legally sign for this Norwegian company, and how?" before acting on its behalf. Given a 9-digit organisasjonsnummer it returns a deterministic signing-authority classification — `sole`
Current-snapshot read of a Norwegian company's annual accounts (årsregnskap) from the OPEN Regnskapsregisteret tier: `has_filed_annual_accounts` (tri-state — null means unknown, never a fabricated fal
Reconcile a Norwegian company's Altinn 3 filing history against the filings YOUR consumer submitted through Apier. Given a 9-digit organisasjonsnummer it returns the org's Altinn filing instances (Mva
Read Apier's cross-source change archive — detected created / updated / deleted events across the upstreams Apier polls (Brønnøysund ingestion plus the Altinn-schema, DigDir-policy, and Norges Bank po
Discover the Altinn 3 equivalent of an Altinn 2 service or role code. The 19 June 2026 Altinn 2 deprecation deadline has passed, so this serves remediation for any integration still on Altinn 2. Pass
Broker a fullmakt — a legally-grounded, scoped, revocable company→agent authority delegated through an Altinn systembruker. Turns an agent principal (an identity) into an ACTOR for a specific Norwegia
Check your fullmakt state for a Norwegian company BEFORE acting on its behalf — the read leg of the Fullmakt Rails. Per agent principal of yours holding a live delegation there it returns: the bound s
Revoke a fullmakt — withdraw an agent's delegated authority for a Norwegian company and retire the agent principal (broker with request_fullmakt, inspect with check_fullmakt). Given ONLY the agent_pri
Call this BEFORE metered work to check per-call cost and whether billing enforcement is live. Keyless: executes WITHOUT an API key, so an agent can price a workflow before it holds any credential. Ret
Call this BEFORE a batch of metered calls to confirm the calling key's prepaid credit balance covers it, and AFTER a 402 INSUFFICIENT_CREDITS + human top-up to verify the funds landed. The balance is
Convert an owner-issued key-issuance token into your own API key — the headless onboarding step for an agent that holds no credential yet. Keyless: the one-time token IS the credential. Minting and re