Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Machine-verifiable Norwegian company authority: status, roles and coded signing authority.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
Authorization标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
在终端中运行这条命令
claude mcp add --transport http apier https://www.apier.no/api/mcp --header 'Authorization: your-value'运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"apier": {
"url": "https://www.apier.no/api/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"apier": {
"type": "http",
"url": "https://www.apier.no/api/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
Authorization 机密 HTTP header这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 apier.no 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:Authorization
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(2026.10.0)于27天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Apier is a hosted MCP (Model Context Protocol) server that gives AI agents structured access to Norwegian company data and regulatory compliance. It resolves any 9-digit organisasjonsnummer (organisation number) against Brønnøysundregistrene (the Brønnøysund Register Centre / Enhetsregisteret), answers who holds signing authority for a company (signaturrett and prokura), reads annual accounts (årsregnskap) from Regnskapsregisteret, computes filing deadlines for MVA, A-melding and Årsregnskap, and brokers fullmakt — scoped, revocable company→agent authority delegated through an Altinn 3 systembruker, authenticated upstream via Maskinporten against Skatteetaten and other agencies. This repository is the thin, hardened npm proxy (@apier-no/mcp) that connects local stdio MCP clients to the hosted server.
With this server connected, an AI agent can answer questions like:
All 25 tools exposed by the hosted server at https://www.apier.no/api/mcp (discovered live via tools/list on 2026-10-10; each row is the opening sentence of the live description, so the full text is one tools/list call away):
| Tool | Description |
|---|---|
get_company_summary | A one-shot summary of obligations and deadlines for a Norwegian organisation: your FIRST call when you orient against a company. |
get_public_obligations | Keyless. Retrieve the universal obligation set for a Norwegian entity type — every regulatory obligation that applies by virtue of BEING that organisational form, before per-company Tier-2 data is layered on. |
get_exchange_rate | Keyless. Norges Bank reference exchange rate for a currency against NOK — the benchmark Norwegian tax and accounting rules accept for foreign-currency obligations. |
list_acting_capacity | Resolve every Norwegian regulatory action a person is currently authorised to perform on behalf of a specific organisation. |
get_company_profile | Resolve a Norwegian organisasjonsnummer (9 digits) into a structured company profile from Brønnøysund Enhetsregisteret: display name, form of organisation, NACE codes with descriptions, addresses, the dates of registration and dissolution, the active / dissolved status enum, the MVA-registered flag, and the role CODES of persons — never personal identifiers. |
check_authorization | Return the authorisation snapshot for the calling consumer's delegation on a Norwegian organisation: the status enum (full / partial / none), active_scopes, missing_scopes (empty on full) and delegated_rights. |
get_company_context | Brønnøysund identity slice for a Norwegian organisation: legal name, form of organisation, NACE codes, addresses, the dates it was formed or dissolved, and the signaturrett / prokura role-code summary (never personal identifiers). |
get_company_deadlines | The upcoming filing calendar for one organisation, horizon_months ahead. |
get_company_obligations | Evaluate the Apier Rulebook for a Norwegian organisation: one entry per rule with rule_id, obligation_name, evaluation_result (applicable, not_applicable or insufficient_data), a reason, the legal_reference, frequency, data_tier_required and the bokmål description, which is inherited byte for byte (never re-translate it). |
get_public_deadlines | Keyless. The universal Norwegian filing calendar: the deadlines for every Norwegian business in the covered categories (MVA, A-melding, Skattemelding, Årsregnskap), which do not depend on any one organisation. |
validate_action | Dry-run a proposed regulatory action with NO upstream side effect (no government call). |
explain_compliance_error | Keyless. Resolve a structured Apier compliance error code into a Norwegian-bokmål Explanation envelope: summary, bokmål why, ordered fix_steps, optional documentation link + legal_basis, and an optional handover block (who / where / what / why) for errors a human must resolve. |
search_companies | Resolve a Norwegian company NAME to its 9-digit organisasjonsnummer. |
get_company_verification | Fast go / no-go trust check before you act for a Norwegian organisation. |
get_company_authority | Who can legally sign for this Norwegian company, and how? |
get_company_accounts | A current snapshot of a Norwegian company's annual accounts (årsregnskap) from the OPEN Regnskapsregisteret tier: has_filed_annual_accounts (null = unknown, never a fabricated false), last_accounts_year and that year's minimal key_figures (currency always surfaced, presentation basis, totals). |
get_company_filing_history | Reconcile a company's Altinn 3 filing history against the filings YOUR consumer submitted through Apier: each Altinn instance paired with its Apier audit record (filed_via_apier + apier_record). |
list_changes | Read Apier's cross-source change archive — created / updated / deleted events detected across the upstreams Apier polls (Brønnøysund, Altinn schemas, Norges Bank, NAV, Skatteetaten Tier-2; the Digdir poller is retired, so digdir is a valid but empty filter). |
get_altinn_migration_guidance | Discover the Altinn 3 equivalent of an Altinn 2 service or role code. |
request_fullmakt | Broker a fullmakt — scoped, revocable company→agent authority via an Altinn systembruker. |
check_fullmakt | Check your fullmakt state for a Norwegian company BEFORE acting on its behalf. |
revoke_fullmakt | Revoke a fullmakt — withdraw an agent's delegated authority for a Norwegian company and retire the agent principal. |
get_pricing | Call this BEFORE metered work to check per-call cost and whether billing enforcement is live. |
get_credit_balance | 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. |
redeem_issuance_token | Convert an owner-issued key-issuance token into your own API key — the headless onboarding step for an agent that holds no credential yet. |
Starting this proxy requires `APIER_API_KEY` (see Quickstart). The proxy forwards whatever bearer you give it as Authorization: Bearer … and never inspects the key's shape. Without a real key you still have two sandbox paths, both served from synthetic fixtures and never from a government register:
/api/v1/sandbox/ on apier.no. Every Category B company endpoint has a mirror there. It is not zero-auth: it expects a *self-invented* sandbox bearer, apier_sandbox_test_ (any suffix of 1–64 characters from A-Za-z0-9_-), which the server recognises by its prefix and answers with fixtures — no signup and no key store behind it. A separate, truly zero-auth mirror lives under /api/v1/sandbox/public/ for the single fixture org 999999999.https://www.apier.no/api/mcp. Send Authorization: Bearer apier_sandbox_test_ and the fixture-backed company tools (get_company_context, get_company_obligations, get_company_deadlines, get_company_summary, get_company_verification, explain_compliance_error, get_company_authority, get_company_accounts, get_company_filing_history) are routed to the sandbox mirror, with _meta.is_sandbox: true on every result; the remaining tools answer exactly as they would without a key. Because this proxy forwards the bearer unchanged, setting APIER_API_KEY to such a value lets a stdio client rehearse those tools against fixtures too.List the canonical sandbox test data (no auth at all):
curl -sL https://apier.no/api/v1/sandbox/fixtures
Trimmed response — … marks omitted fields:
{"success":true,"data":{"schema_version":"1.0.0",
"reserved_test_orgs":[{"org_number":"999000001","name":"Sandbox AS","entity_type":"AS","data_tier":"tier_1", …}], "realistic_orgs":[{"org_number":"818000006","name":"Fjellberg Regnskap AS","entity_type":"AS","data_tier":"tier_1_2"}, …], "magic_scenarios":[{"org_number":"999660010","state":"konkurs","label":"Bankrupt (konkurs)"}, …], …}}
Verify the bankrupt fixture company with a self-invented bearer — any suffix of 1–64 chars from A-Za-z0-9_- after apier_sandbox_test_ works; here bash's $RANDOM supplies one. (This call goes to the www host directly: the apex→www 308 redirect makes curl drop the Authorization header.)
curl -s -H "Authorization: Bearer apier_sandbox_test_$RANDOM" https://www.apier.no/api/v1/sandbox/company/999660010/verify
Trimmed response — … marks omitted fields:
{"success":true,"data":{"org_number":"999660010","name":"Sandbox Konkurs AS",
"verification_status":"fail", "signals":{"is_active":false,"not_bankrupt":false, …}, "summary":"Selskapet er ikke aktivt registrert i Enhetsregisteret.", …}}
Don't confuse the two prefixes: a real API key is apr_ _… (apr_free_, apr_starter_, apr_pro_ or apr_ent_) and comes from signup via https://www.apier.no/docs/authentication, while apier_sandbox_test_ is self-generated and needs no signup. (Earlier README versions mentioned apier_live_ / apier_test_ keys; no key of that shape was ever issued.) GET /api/v1/sandbox/fixtures is the canonical machine-readable table of sandbox test data.
The fastest path — no install. Point any streamable-HTTP-capable MCP client at:
https://www.apier.no/api/mcp
Discovery is keyless: initialize, tools/list, resources and prompts all work without credentials, so an agent can explore the full catalogue before authenticating. An API key (Authorization: Bearer apr_ _…) is needed only for protected tool calls. See https://www.apier.no/docs/authentication for how to get a key, then create one in the dashboard at https://www.apier.no/dashboard.
@apier-no/mcp)For stdio-only clients, this package wraps mcp-remote, reads APIER_API_KEY from your environment, removes it from the spawned child's environment, redacts it from stderr, and hands the bearer value over out-of-band so it never appears on the child's command line — see SECURITY.md.
mcp-remote moved from geelen/mcp-remote to punkpeye/mcp-remote; the npm package name is unc
只显示了开头部分;其余内容请在仓库中阅读