MCP 서버

Norric

io.github.gucceed/norric-mcp

이 MCP로 할 수 있는 일

Provides Swedish, Danish, and Norwegian company intelligence covering identity, insolvency risk, procurement signals, housing cooperatives, supply-chain exposure, and monitoring alerts.

danish_company_changes_v1
Return a normalized feed of source-backed Danish company registry changes over the last 1-30 days: new registrations, closures/ophoer, renames, address changes, and mergers when those facts exist in the CVR data (bulk baseline diffs plus CVR_Events deltas). Each event includes canonical identity, before/after fields, source freshness, and evidence links. The tool never equates Norric first-seen time with legal registration and never infers a merger from a rename. Filter by event type or CVR number; up to 100 events. Source: Datafordeler CVR, CC BY 4.0.
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7}, 'limit': {'type': 'integer', 'default': 25}, 'cvr_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
danish_company_verify_v1
Verify a Danish company against official CVR registry data. One CVR number (8 digits, e.g. 54562519) or company name in, one normalized cited answer out: canonical identity (name, CVR number, virksomhedsform legal form, registered address, hovedbranche industry), legal status (active/ceased with dates and bitemporal registration timestamps), the latest recorded CVR registry changes, and per-source observation timestamps with evidence links. Danish codes and labels are canonical as issued by Erhvervsstyrelsen - never translated. verified=true means the CVR number exists in the CVR registry mirror and is currently active. Fields Norric does not track (VAT/moms, employer registration) return status 'not_tracked' - never a fabricated value. Source: Datafordeler CVR fildownload + CVR_Events, CC BY 4.0.
입력 스키마
{'type': 'object', 'required': ['cvr_or_name'], 'properties': {'cvr_or_name': {'type': 'string'}}, 'additionalProperties': False}
estonian_company_changes_v1
Return source-backed Estonian company changes over 1-30 days from daily e-Ariregister snapshot diffs. Never treats Norric first-seen time as registration. CC BY 4.0.
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7}, 'limit': {'type': 'integer', 'default': 25}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'registry_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
estonian_company_verify_v1
Verify an Estonian company against the official e-Ariregister daily open data. Returns identity, address, legal form, industry, registry status, recent source-backed changes and freshness. No person or beneficial-owner data. CC BY 4.0.
입력 스키마
{'type': 'object', 'required': ['registry_code_or_name'], 'properties': {'registry_code_or_name': {'type': 'string'}}, 'additionalProperties': False}
finnish_company_changes_v1
Return source-backed Finnish company changes over 1-30 days from daily PRH/YTJ snapshot diffs. Never treats Norric first-seen time as registration. CC BY 4.0.
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7}, 'limit': {'type': 'integer', 'default': 25}, 'business_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
finnish_company_verify_v1
Verify a Finnish company against official PRH/YTJ daily open data. Returns identity, address, legal form, industry, registry status, recent source-backed changes and freshness. No person or beneficial-owner data. CC BY 4.0.
입력 스키마
{'type': 'object', 'required': ['business_id_or_name'], 'properties': {'business_id_or_name': {'type': 'string'}}, 'additionalProperties': False}
french_company_changes_v1
Return source-backed French company changes over 1-30 days from INSEE Base Sirene snapshot diffs. Never treats Norric first-seen time as registration. Licence Ouverte 2.0.
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7}, 'limit': {'type': 'integer', 'default': 25}, 'siren': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
french_company_verify_v1
Verify a French company against the official INSEE Base Sirene mirror. Returns identity, address, legal form, industry, registry status, recent source-backed changes and freshness. Non-diffusible natural persons (Art. A123-96 code de commerce) are excluded. Licence Ouverte 2.0.
입력 스키마
{'type': 'object', 'required': ['siren_or_name'], 'properties': {'siren_or_name': {'type': 'string'}}, 'additionalProperties': False}
kreditvakt_bankruptcy_status_v1
Return Bolagsverket konkurs (bankruptcy) filing status for a Swedish company. Shows whether konkurs has been filed, the filing date, current status (ansökt | beslutad | avslutad), and whether the company is still active. This is a binary verification tool — use score_company_v1 for predictive risk.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
kreditvakt_batch_score_v1
Score a portfolio of Swedish companies for insolvency risk in one call. Maximum 500 organisation numbers per request. Returns each company's score, verdict, primary risk signal, and debt status. Includes a portfolio-level risk summary: % by risk tier, weighted average score, estimated SEK exposure for high-risk entries. This is the primary tool for factoring companies reviewing credit exposure at scale.
입력 스키마
{'type': 'object', 'required': ['orgnrs'], 'properties': {'orgnrs': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
kreditvakt_contagion_v1
Supply-chain contagion analysis for a HIGH or CRITICAL Swedish company. Returns the companies most likely to have supply-chain exposure to the given company, based on shared procurement sector and geographic proximity (kommunkod → county fallback). Use after identifying a HIGH/CRITICAL company via kreditvakt_score_company_v1. Reads from the contagion_peers cache (refreshed every 4h); recomputes on cache miss. Always returns the probabilistic disclaimer in warnings — these are likely relationships, not verified supply chains. orgnr accepts format with or without dash. limit defaults to 10, max 25.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'limit': {'type': 'integer', 'default': 10}, 'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
kreditvakt_debt_signals_v1
Return Skatteverket restanslängd debt data for a Swedish company. Shows outstanding tax debt amount in SEK, publication date, number of payment remarks, and F-skatt (sole trader tax registration) status. This signal is also consumed by Norric SIGNAL's competitor risk analysis — it is the shared data layer between Kreditvakt and SIGNAL.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
kreditvakt_score_company_v1
Score the insolvency risk of a Swedish company using four independent signal sources: Skatteverket restanslängd (tax debt), Kronofogden betalningsförelägganden (payment orders), Bolagsverket pending ärenden (leading indicator — days before registration), and Bolagsverket konkursregister. Returns risk_score [0–20, ascending=worse], risk_band [1–5], risk_tier (HEALTHY|WATCH|ELEVATED|HIGH|CRITICAL), and full signal breakdown. score_source='live' means DB-backed signals; 'no_signals' means the orgnr is in norric_entities but no current risk data exists (risk_score will be null). stale_data=true means freshness > 48h. Accepts a Swedish organisation number (e.g. 556000-1234).
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
norric_company_profile_v1
Return a unified Norric intelligence profile for a Swedish company. Combines: Kreditvakt insolvency score, Vigil lifecycle stage, and Vigil ownership velocity into one call. Use this when you need a complete picture of a company across all Norric products. orgnr is the canonical cross-product identifier — all Norric tools accept it.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_contagion_map_v1
Supply-chain blast-radius shape for a HIGH or CRITICAL company, sized for the dashboard visualisation. Returns source company (with lat/lng), concentric rings of peers grouped by match_reason (same_sector_kommunkod = ring 1, same_sector_county = ring 2), each peer enriched with its own lat/lng and risk score, plus an aggregate summary. Reads the cached contagion_peers table (refreshed every 4h). Empty rings when no peers exist — caller should fall back to a non-spatial view. Same disclaimer as kreditvakt_contagion_v1: peers are probabilistic, not verified.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_data_freshness_v1
Returns ingestion freshness for all active Norric data pipelines, per agency. Used by: - Agents deciding whether Norric data is current enough to act on (a Claude Code agent should check this before triggering a workflow) - Compliance dashboards monitoring pipeline health - Norric internal ops alerting (stale pipeline = data quality incident) Args: agencies Optional list of agency IDs to filter. If omitted, returns all active pipelines. e.g. ["bolagsverket", "kronofogden"] Returns: NorricResponse with data containing: pipelines Per-agency freshness records summary Aggregate health summary checked_at UTC timestamp of this freshness check
입력 스키마
{'type': 'object', 'properties': {'agencies': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['success', 'tool'], 'properties': {'ts': {'type': 'string', 'format': 'date-time'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'array', 'items': {}}, {'type': 'null'}], 'default': None}, 'tool': {'type': 'string'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'cached': {'type': 'boolean', 'default': False}, 'source': {'type': 'array', 'items': {'type': 'string'}}, 'success': {'type': 'boolean'}, 'confidence': {'type': 'number', 'default': 1.0, 'maximum': 1.0, 'minimum': 0.0}, 'provenance': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['source_agency', 'source_document_ref', 'confidence'], 'properties': {'raw_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Source URL if this record was fetched from a web endpoint.'}, 'confidence': {'type': 'number', 'maximum': 1.0, 'minimum': 0.0, 'description': 'Derivation confidence. 1.0=direct copy, 0.8–0.99=parsed, 0.5–0.79=inferred, 0.0–0.49=estimated.'}, 'ingested_at': {'type': 'string', 'format': 'date-time', 'description': 'UTC timestamp of when this record was ingested by Norric.'}, 'source_agency': {'type': 'string', 'description': "Canonical agency identifier. One of the Agency enum values, or 'kommun:{kommunkod}' for municipality sources."}, 'schema_version': {'type': 'string', 'default': '1.0', 'description': 'Provenance schema version. Increment when breaking changes are made.'}, 'source_document_ref': {'type': 'string', 'description': 'Canonical document reference in format {agency}:{entity_id}/{document_type}[/{period}]. Use make_document_ref() to construct this.'}}, 'description': 'Per-record lineage envelope. Attached at ingestion time, stored in DB,\nsurfaced in every NorricResponse that touches this record.\n\nFields:\n    source_agency       Canonical agency identifier (Agency enum value or\n                        "kommun:{kommunkod}" for municipality sources)\n    source_document_ref Canonical document reference — see make_document_ref()\n    ingested_at         UTC timestamp of ingestion (not document date)\n    confidence          0.0–1.0 derivation confidence — see ConfidenceTier\n    raw_url             Source URL if the record came from a web endpoint\n    schema_version      Provenance schema version for forward compatibility'}}, {'type': 'null'}], 'default': None, 'description': 'Per-record data lineage. Present for SIGNAL, Kreditvakt, and Sigvik records ingested after provenance layer deployment. Null for pre-provenance records — do not treat as error.'}}, 'description': 'Universal response envelope for all Norric MCP tools.\n\nEvery tool — Kreditvakt, Sigvik, SIGNAL, Vigil, LeadFlow — returns\nthis shape. Agents and compliance systems can rely on a consistent\nstructure regardless of which product generated the response.\n\nFields:\n    success         True if the tool executed without error\n    tool            The tool name that generated this response\n    source          Human-readable list of data agencies (for display)\n    confidence      Overall confidence score 0.0–1.0\n                    When provenance is present, derived as min(provenance.confidence)\n    data            Tool-specific payload (dict or list)\n    error           Error message if success=False, else None\n    cached          True if response was served from cache\n    ts              UTC timestamp of response generation\n    provenance      Per-record lineage (None for pre-provenance records)'}
norric_explain_score_v1
Returns a human-readable explanation of how a specific score was computed, with full source provenance. Intended for compliance teams and regulated workflow integrations (e.g. a bank using Kreditvakt scores in credit decisions). Args: tool_name The Norric tool that produced the score. e.g. "kreditvakt_score_company_v1" record_id The entity identifier for the record. For Kreditvakt/Sigvik: orgnr (10-digit) For SIGNAL: municipality notice ID include_raw_refs If True, includes raw source document references in the response. Set False to reduce response size. Returns: NorricResponse with data containing: explanation Natural language explanation of the score pipeline_steps Ordered list of scoring pipeline steps provenance_chain Full provenance records for each source compliance_summary Structured summary for EU AI Act documentation
입력 스키마
{'type': 'object', 'required': ['tool_name', 'record_id'], 'properties': {'record_id': {'type': 'string'}, 'tool_name': {'type': 'string'}, 'include_raw_refs': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['success', 'tool'], 'properties': {'ts': {'type': 'string', 'format': 'date-time'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'array', 'items': {}}, {'type': 'null'}], 'default': None}, 'tool': {'type': 'string'}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'cached': {'type': 'boolean', 'default': False}, 'source': {'type': 'array', 'items': {'type': 'string'}}, 'success': {'type': 'boolean'}, 'confidence': {'type': 'number', 'default': 1.0, 'maximum': 1.0, 'minimum': 0.0}, 'provenance': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['source_agency', 'source_document_ref', 'confidence'], 'properties': {'raw_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Source URL if this record was fetched from a web endpoint.'}, 'confidence': {'type': 'number', 'maximum': 1.0, 'minimum': 0.0, 'description': 'Derivation confidence. 1.0=direct copy, 0.8–0.99=parsed, 0.5–0.79=inferred, 0.0–0.49=estimated.'}, 'ingested_at': {'type': 'string', 'format': 'date-time', 'description': 'UTC timestamp of when this record was ingested by Norric.'}, 'source_agency': {'type': 'string', 'description': "Canonical agency identifier. One of the Agency enum values, or 'kommun:{kommunkod}' for municipality sources."}, 'schema_version': {'type': 'string', 'default': '1.0', 'description': 'Provenance schema version. Increment when breaking changes are made.'}, 'source_document_ref': {'type': 'string', 'description': 'Canonical document reference in format {agency}:{entity_id}/{document_type}[/{period}]. Use make_document_ref() to construct this.'}}, 'description': 'Per-record lineage envelope. Attached at ingestion time, stored in DB,\nsurfaced in every NorricResponse that touches this record.\n\nFields:\n    source_agency       Canonical agency identifier (Agency enum value or\n                        "kommun:{kommunkod}" for municipality sources)\n    source_document_ref Canonical document reference — see make_document_ref()\n    ingested_at         UTC timestamp of ingestion (not document date)\n    confidence          0.0–1.0 derivation confidence — see ConfidenceTier\n    raw_url             Source URL if the record came from a web endpoint\n    schema_version      Provenance schema version for forward compatibility'}}, {'type': 'null'}], 'default': None, 'description': 'Per-record data lineage. Present for SIGNAL, Kreditvakt, and Sigvik records ingested after provenance layer deployment. Null for pre-provenance records — do not treat as error.'}}, 'description': 'Universal response envelope for all Norric MCP tools.\n\nEvery tool — Kreditvakt, Sigvik, SIGNAL, Vigil, LeadFlow — returns\nthis shape. Agents and compliance systems can rely on a consistent\nstructure regardless of which product generated the response.\n\nFields:\n    success         True if the tool executed without error\n    tool            The tool name that generated this response\n    source          Human-readable list of data agencies (for display)\n    confidence      Overall confidence score 0.0–1.0\n                    When provenance is present, derived as min(provenance.confidence)\n    data            Tool-specific payload (dict or list)\n    error           Error message if success=False, else None\n    cached          True if response was served from cache\n    ts              UTC timestamp of response generation\n    provenance      Per-record lineage (None for pre-provenance records)'}
norric_score_v1
Full intelligence package for a Swedish company: identity + geography (with lat/lng), risk score (band/tier/percentile/delta_7d/trajectory), decomposed signal flags (restanslängd, betalningsförelägganden, konkursansökan, F-skatt), insolvency timeline (onset date, days elapsed/remaining vs ~210-day median), supply-chain contagion preview, and active SIGNAL contracts. Single round-trip payload for the intelligence dashboard score card. Returns null for risk_* fields when score_source='no_signals'. Accepts orgnr with or without dash.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_search_v1
Search the Norric monitored universe by organisation number prefix or company name prefix. Returns each match with its current risk score / band / tier when available. Use to resolve a typed query in the dashboard search bar to a concrete orgnr before calling norric_score_v1. Heuristic: if the query is digits + dashes, prefix-match orgnr_display; otherwise prefix-match name (case-insensitive). limit defaults to 10, max 50.
입력 스키마
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string'}, 'limit': {'type': 'integer', 'default': 10}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_status_v1
Return the live status of all Norric MCP products and their data pipelines. Shows which products are live, which are in build, and the last successful data ingestion timestamp for each source. Use this to understand what data is currently reliable before acting on it.
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_watch_create_v1
Create a Norric Watch: push a signed webhook to callback_url when a watched company's Kreditvakt data changes. Args: event_types: one or more of: company.risk_tier_changed, company.score_changed, company.debt_signal_new, company.bankruptcy_status_changed callback_url: HTTPS endpoint that receives signed POSTs (X-Norric-Signature: t=...,v1=... — HMAC-SHA256, like Stripe) orgnrs: Swedish org numbers to watch (e.g. ["556012-3456"]) min_score_delta: minimum 0-20 risk_score movement that fires company.score_changed (default 3) description: free-text label for this watch Returns the watch object including signing_secret — shown ONCE. Events emit after the daily scoring beat (~05:30 Europe/Stockholm); delivery is at-least-once, dedupe on X-Norric-Event-Id.
입력 스키마
{'type': 'object', 'required': ['event_types', 'callback_url'], 'properties': {'orgnrs': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'type': 'array', 'items': {'type': 'string'}}, 'callback_url': {'type': 'string'}, 'min_score_delta': {'type': 'integer', 'default': 3}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_watch_delete_v1
Delete a watch and its event history. Immediate; no delivery attempt is made after deletion.
입력 스키마
{'type': 'object', 'required': ['watch_id'], 'properties': {'watch_id': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_watch_events_v1
Recent events for a watch — delivery replay/audit. Includes dead-lettered events (status "dead", kept 30 days). Standard tier sees 7 days of history; Compliance sees full history. Args: watch_id: watch_... id limit: max events to return (1-200, default 50)
입력 스키마
{'type': 'object', 'required': ['watch_id'], 'properties': {'limit': {'type': 'integer', 'default': 50}, 'watch_id': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_watch_list_v1
List your API key's watches with delivery stats (events_sent, last_delivery_at, consecutive_failures) and status (active/paused). A watch auto-pauses after 50 consecutive failed deliveries; resume with norric_watch_update_v1(status="active").
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norric_watch_update_v1
Update a watch. Only the fields you pass change. Args: watch_id: watch_... id from create/list event_types: replacement event type list orgnrs: replacement watched-orgnr list min_score_delta: replacement score-delta threshold (1-20) callback_url: replacement HTTPS callback URL description: replacement label status: "paused" to stop delivery, "active" to resume (resume resets the consecutive-failure counter that auto-pauses at 50)
입력 스키마
{'type': 'object', 'required': ['watch_id'], 'properties': {'orgnrs': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'watch_id': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'callback_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'min_score_delta': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
norwegian_company_changes_v1
Return source-backed Norwegian company registry changes over 1-30 days: registrations, closures, renames, address changes, bankruptcy and liquidation flags from daily bulk diffs and Brønnøysund update deltas. Never treats Norric first-seen time as registration. NLOD 2.0.
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7}, 'limit': {'type': 'integer', 'default': 25}, 'org_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
norwegian_company_verify_v1
Verify a Norwegian organisation against official Brønnøysund Enhetsregisteret data. A 9-digit organisation number or company name returns canonical identity, address, legal form, industry, active, bankruptcy and liquidation flags, recent source-backed changes and freshness. No role/person or beneficial-owner data. NLOD 2.0.
입력 스키마
{'type': 'object', 'required': ['orgnr_or_name'], 'properties': {'orgnr_or_name': {'type': 'string'}}, 'additionalProperties': False}
signal_contract_expiry_alerts_v1
Return contracts expiring within N days across all 290 Swedish municipalities for a given vertical. Sorted by days until expiry ascending. Each alert includes the incumbent supplier name, contract value, and a Kronofogden risk flag indicating if the incumbent has financial distress. This is displacement-window intelligence: expiring contracts are the highest-conversion procurement opportunities.
입력 스키마
{'type': 'object', 'required': ['vertikal'], 'properties': {'vertikal': {'type': 'string'}, 'days_ahead': {'type': 'integer', 'default': 90}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
signal_municipality_briefing_v1
Generate a full Swedish-language call briefing for a municipality and vertical. Contains: what happened (facts), why it matters commercially, optimal call window, 3 ready-to-use talking points, active signals summary, and incumbent risk flag. Designed for direct use by sales reps and autonomous SDR agents before dialling.
입력 스키마
{'type': 'object', 'required': ['kommunkod', 'vertikal'], 'properties': {'vertikal': {'type': 'string'}, 'kommunkod': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
signal_score_municipality_v1
Score the procurement readiness of a Swedish municipality for a given vertical. Combines 7 signal components (IVO decisions, protocol signals, budget motions, contract expiries, SCB demographics, Kronofogden incumbent risk, SKR benchmarks) into a 0-100 composite score. Scores above 70 indicate actionable procurement intent — contact this week. Scores 50-70 are warm — contact this month. Below 50, monitor only.
입력 스키마
{'type': 'object', 'required': ['kommunkod', 'vertikal'], 'properties': {'vertikal': {'type': 'string'}, 'kommunkod': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
signal_sweden_pulse_v1
Return the national Swedish procurement activity index across all 290 municipalities. A single 0-100 'temperature' of public procurement activity right now. Historical baseline is ~35. Values above 60 indicate elevated national activity. Optionally filter to a specific vertical or get the cross-vertical aggregate. Useful for market timing, investment research, and portfolio-level intelligence.
입력 스키마
{'type': 'object', 'properties': {'vertikal': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
signal_weekly_call_list_v1
Return the ranked list of Swedish municipalities to contact this week for a given vertical. Sorted by composite procurement score descending. This is the core Norric SIGNAL product output — the Monday morning call list for sales teams and autonomous SDR agents. Each entry includes the primary signal, suggested call window, and opening talking point. Maximum 50 results. Updated every Monday at 06:00 CET.
입력 스키마
{'type': 'object', 'required': ['vertikal'], 'properties': {'limit': {'type': 'integer', 'default': 10}, 'vertikal': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
sigvik_brf_avgift_v1
Return the monthly avgift (housing fee) history, trend, and year-on-year delta for a Swedish BRF. Avgift trend is one of the strongest predictors of BRF financial stress — rising avgift indicates the association is covering costs by increasing member fees. Returns: current_kr, 5-year history, YoY delta %, trend label (rising|stable|falling).
입력 스키마
{'type': 'object', 'required': ['brf_id'], 'properties': {'brf_id': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
sigvik_brf_flags_v1
Return active risk flags for a Swedish BRF. Flags: renovation_risk (major upcoming costs), ekonomisk_risk (financial distress), eu_2033_energy_deadline (E/F/G energy class must reach D by 2033 — renovation pressure within 7 years). Each flag has a severity level: low | medium | high | critical.
입력 스키마
{'type': 'object', 'required': ['brf_id'], 'properties': {'brf_id': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
sigvik_score_brf_v1
Score the financial health and renovation intent of a Swedish BRF (bostadsrättsförening / housing cooperative). Combines avgift trend, annual report analysis, renovation risk, and EU energy class (E/F/G class must reach D by 2033) into a 0-100 intent score. Returns confidence_label (Starkt signal / Måttlig signal / Tidig indikation), scored_at timestamp, and data_freshness_hours. stale_data=true if score older than 48h.
입력 스키마
{'type': 'object', 'required': ['brf_id'], 'properties': {'brf_id': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
siteloop_pipeline_status_v1
Return the current state of the SiteLoop pipeline across all active cities. Shows leads at each funnel stage: scanned → site_built → sms_sent → clicked → activated → churned. Includes conversion rates and MRR by city. Use this to monitor the autonomous pipeline health without opening a dashboard.
입력 스키마
{'type': 'object', 'properties': {'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
siteloop_submit_lead_v1
Submit a business lead into the SiteLoop pipeline programmatically. This is the primary integration point for Norric Vigil — Vigil detects new companies, SiteLoop receives them and runs site generation + SMS outreach automatically. The lead enters the queue and proceeds through the pipeline without any human intervention. This is a mutating tool — every call is audited.
입력 스키마
{'type': 'object', 'required': ['business_name', 'category', 'address', 'phone'], 'properties': {'email': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'orgnr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'phone': {'type': 'string'}, 'source': {'type': 'string', 'default': 'api'}, 'address': {'type': 'string'}, 'category': {'type': 'string'}, 'business_name': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
swedish_company_changes_v1
Return a normalized feed of source-backed Swedish company registry changes over the last 1-30 days: new registrations, closures/deregistrations, renames, address changes, and mergers when those facts exist in the Bolagsverket snapshot data. Each event includes canonical identity, before/after fields, source freshness, and evidence links. The tool never equates Norric first-seen time with legal registration and never infers a merger from a rename. Filter by event type or orgnr; up to 100 events.
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 7}, 'limit': {'type': 'integer', 'default': 25}, 'orgnr': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
swedish_company_verify_v1
Verify a Swedish company against official registry data. One orgnr (556000-1234) or company name in, one normalized cited answer out: canonical identity (name, orgnr, orgform, registered address), legal status (active/deregistered with date), F-tax registration where tracked, insolvency flags (konkurs filings, Kronofogden payment orders, tax-debt listing), the cached Kreditvakt risk band when present, the latest recorded Bolagsverket registry changes, and per-source observation timestamps with evidence links. verified=true means the orgnr exists in the Bolagsverket registry mirror and is currently active. Fields Norric does not track (VAT/moms, employer registration) return status 'not_tracked' — never a fabricated value. Use this as the first diligence call before kreditvakt_score_company_v1.
입력 스키마
{'type': 'object', 'required': ['orgnr_or_name'], 'properties': {'orgnr_or_name': {'type': 'string'}}, 'additionalProperties': False}
vigil_lifecycle_stage_v1
Classify a Swedish company's lifecycle stage using three signals: F-skatt registration date, building permit filings, and Bolagsverket ownership change velocity. Returns: early | growth | scaling | distress — with confidence and signal breakdown. Primary use: identifying companies that just started (early stage) so SiteLoop can reach them before any competitor knows they exist.
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
vigil_new_companies_v1
Return companies newly registered in a Swedish municipality — detected via F-skatt (sole trader) registrations at Skatteverket. These are companies that just started and almost certainly have no website. Primary feed for SiteLoop's automated outreach pipeline. Results include orgnr, registration date, business category, and phone where available.
입력 스키마
{'type': 'object', 'required': ['kommunkod'], 'properties': {'days_back': {'type': 'integer', 'default': 30}, 'kommunkod': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
vigil_ownership_velocity_v1
Return the ownership change rate for a Swedish company over the last 12 months. High velocity signals acquisition, restructuring, or distress. This signal feeds both Norric Kreditvakt (distress correlation) and Norric SIGNAL (competitor risk component when an incumbent supplier is changing hands).
입력 스키마
{'type': 'object', 'required': ['orgnr'], 'properties': {'orgnr': {'type': 'string'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
추가됨
french_company_changes_v1
2026년 9월 25일 2:49 AM
추가됨
french_company_verify_v1
2026년 9월 25일 2:49 AM
추가됨
estonian_company_changes_v1
2026년 9월 25일 2:49 AM
추가됨
estonian_company_verify_v1
2026년 9월 25일 2:49 AM
추가됨
finnish_company_changes_v1
2026년 9월 23일 2:40 AM
추가됨
finnish_company_verify_v1
2026년 9월 23일 2:40 AM
추가됨
norric_watch_events_v1
2026년 9월 21일 2:41 AM
추가됨
norric_watch_delete_v1
2026년 9월 21일 2:41 AM
추가됨
norric_watch_update_v1
2026년 9월 21일 2:41 AM
추가됨
norric_watch_list_v1
2026년 9월 21일 2:41 AM
추가됨
norric_watch_create_v1
2026년 9월 21일 2:41 AM
추가됨
norric_contagion_map_v1
2026년 9월 21일 2:41 AM
추가됨
norric_search_v1
2026년 9월 21일 2:41 AM
추가됨
norric_score_v1
2026년 9월 21일 2:41 AM
추가됨
norric_data_freshness_v1
2026년 9월 21일 2:41 AM
추가됨
norric_explain_score_v1
2026년 9월 21일 2:41 AM
추가됨
norric_status_v1
2026년 9월 21일 2:41 AM
추가됨
norric_company_profile_v1
2026년 9월 21일 2:41 AM
추가됨
sigvik_brf_flags_v1
2026년 9월 21일 2:41 AM
추가됨
sigvik_brf_avgift_v1
2026년 9월 21일 2:41 AM
추가됨
sigvik_score_brf_v1
2026년 9월 21일 2:41 AM
추가됨
siteloop_submit_lead_v1
2026년 9월 21일 2:41 AM
추가됨
siteloop_pipeline_status_v1
2026년 9월 21일 2:41 AM
추가됨
vigil_ownership_velocity_v1
2026년 9월 21일 2:41 AM
추가됨
vigil_new_companies_v1
2026년 9월 21일 2:41 AM
추가됨
vigil_lifecycle_stage_v1
2026년 9월 21일 2:41 AM
추가됨
kreditvakt_bankruptcy_status_v1
2026년 9월 21일 2:41 AM
추가됨
kreditvakt_debt_signals_v1
2026년 9월 21일 2:41 AM
추가됨
kreditvakt_batch_score_v1
2026년 9월 21일 2:41 AM
추가됨
kreditvakt_contagion_v1
2026년 9월 21일 2:41 AM