npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@heibergindustries/orakel-mcp

v1.4.1

Published

MCP server for Orakel — Norwegian company data, financials, and prospecting tools for Claude Code, Claude Desktop & Gemini CLI

Readme

@heibergindustries/orakel-mcp

MCP server for Orakel — Nordic company data (Norway + Finland + Sweden), financials, ownership, procurement, market context, and prospecting tools. Works with Claude Code, Claude Desktop, and Gemini CLI.

Supported Countries

| Country | Company data | Financials | Roles/Board | |---------|-------------|-----------|-------------| | Norway (NO) | Full Brreg registry (~1.16M companies) | Full Regnskapsregisteret XBRL | Full Brreg roles | | Finland (FI) | YTJ v3 PRH registry | Best-effort plain XBRL (~30K digital filers) | Not available (paid Virre only) | | Sweden (SE) | Full Bolagsverket + SCB bulk (~2.8M companies) — firmographics + NACE | Bolagsverket HVD iXBRL (K2/K3, 2020+, SMEs mainly — large listed companies often absent) | Not available (requires separate Företagsinformation credential) |

Pass country=FI or country=SE on any lookup_company, search_companies, or get_financials call to query Finnish or Swedish companies. Finnish business IDs use the format NNNNNNN-N (e.g., 0112038-9 for Nokia Oyj). Swedish organisationsnummer are 10 digits (e.g., 5560125790 for Volvo AB).

Denmark (DK) is planned. Follow orakel.cloud for updates.

Get Access

Self-service free-tier signup + higher-tier requests: orakel.cloud

Quick Start

ORAKEL_API_KEY=orakel_YOUR_KEY npx -y @heibergindustries/orakel-mcp

Setup — Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "orakel": {
      "command": "npx",
      "args": ["-y", "@heibergindustries/orakel-mcp@latest"],
      "env": {
        "ORAKEL_API_KEY": "orakel_YOUR_KEY"
      }
    }
  }
}

Setup — Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "orakel": {
      "command": "npx",
      "args": ["-y", "@heibergindustries/orakel-mcp@latest"],
      "env": {
        "ORAKEL_API_KEY": "orakel_YOUR_KEY"
      }
    }
  }
}

Setup — Gemini CLI

Add to your Gemini CLI MCP config:

{
  "mcpServers": {
    "orakel": {
      "command": "npx",
      "args": ["-y", "@heibergindustries/orakel-mcp@latest"],
      "env": {
        "ORAKEL_API_KEY": "orakel_YOUR_KEY"
      }
    }
  }
}

One-click connect (OAuth)

If you have an Orakel account and your AI host supports OAuth 2.1 — Claude.ai, ChatGPT, Gemini web — you can authorise Orakel in one click. No config file to edit, no API key to paste.

  1. Open your AI host's MCP or integrations settings
  2. Search for Orakel, or point it at https://orakel.cloud
  3. Click Connect and enter the email address on your Orakel account
  4. Click the magic link in the email
  5. Review what access is being granted and click Approve

Orakel creates a dedicated API key for that AI host automatically. The host stores it; you never handle it directly. Recommended for Claude.ai and ChatGPT web users.

OAuth discovery document: https://orakel.cloud/.well-known/oauth-authorization-server

HTTP Transport (no npm install)

If your client speaks MCP Streamable HTTP (ChatGPT Desktop, any HTTP agent, web apps), skip the npm package entirely and POST directly to:

https://orakel.cloud/api/mcp
Authorization: Bearer orakel_YOUR_KEY

Stateless — every request is independent. Tier rate limits and daily/monthly quotas apply exactly as they do on the REST endpoints, so budget calls accordingly.

ChatGPT Desktop config example:

{
  "mcpServers": {
    "orakel": {
      "url": "https://orakel.cloud/api/mcp",
      "headers": { "Authorization": "Bearer orakel_YOUR_KEY" }
    }
  }
}

Tiers & Rate Limits

Your API key is associated with one of four tiers. Each tier caps requests-per-minute, daily/monthly quotas, and page sizes. Rate-limit responses (HTTP 429) include a Retry-After header.

| Tier | Rate/min | Daily | Monthly | Max page | Push | Filter required | |------|----------|-------|---------|----------|------|-----------------| | free | 20 | 500 | 5,000 | 20 | ✗ | yes | | pro | 60 | 5,000 | 50,000 | 100 | ✓ | no | | enterprise | 120 | unlimited | unlimited | 100 | ✓ | no |

"Filter required" means free-tier search requests must include at least one filter (q, nace, county, municipality, employees, revenue, etc.). Prevents bulk-scraping the whole registry.

Check your current usage from an MCP tool or directly:

curl -H "Authorization: Bearer $ORAKEL_API_KEY" https://orakel.cloud/api/keys/usage

Available Tools

| Tool | Description | |------|-------------| | lookup_company | Look up a company by org number | | search_companies | Search by name, NACE, municipality, county, employees, revenue, tech stack, ad pixels | | get_financials | Get financial data (revenue, profit, assets, equity, debt, ratios) | | find_prospects | Find prospects by industry, location, size — formatted for sales | | get_corporate_group | Get parent company + subsidiaries hierarchy | | get_shareholders | Get shareholder register with ownership percentages | | get_ownership_network | Reverse lookup: what does a company/person own? | | get_market_context | SSB aggregate context — municipality population, industry wage, enterprise density | | list_municipalities | List Norwegian municipalities and county codes | | search_inspections | Search Mattilsynet food safety inspections (smilefjes) | | search_licenses | Search alcohol/tobacco licenses (TBR) | | search_procurement | Search public procurement notices (Doffin) | | enrichment_status | View domain enrichment pipeline results | | push_to_destination | Push companies to CRM (Attio, HubSpot, webhooks) | | list_destinations | List configured push destinations | | manage_destination | Create/update/delete push destinations | | check_health | Check API health, database status, sync progress |

Skills (Guided Workflows)

Five guided workflows ship embedded in the server and surface through MCP's prompts capability — any client that speaks the prompts spec (Claude Code, Claude Desktop, Cursor, Gemini CLI) picks them up automatically. No filesystem copy needed.

| Skill | Use when | |-------|----------| | prospect | Find and qualify Nordic prospects by industry, location, size | | company-deep-dive | Research a single NO/FI/SE company in depth | | market-scan | Analyze a Nordic market segment — size, players, regulatory | | ownership-map | Trace ownership networks (NO + FI; SE shareholders not available) | | push-to-crm | Export to Attio / HubSpot / webhook destinations |

In Claude Code you can invoke a skill with /prospect, /company-deep-dive, etc. Other clients expose them via their prompt picker.

Environment Variables

| Variable | Default | Description | |----------|---------|-------------| | ORAKEL_API_KEY | (required) | Your Orakel API key | | ORAKEL_URL | https://orakel.cloud | API base URL (override for local dev) |

Examples

Once configured, ask from any project:

  • "Look up Equinor" → lookup_company
  • "Find 15 bars in Oslo with over 10M revenue" → find_prospects
  • "What companies does Aker own?" → get_ownership_network
  • "Show me IT consulting companies in Bergen" → search_companies
  • "What's the market context for this municipality?" → get_market_context
  • "Push these prospects to my CRM" → push_to_destination

Data Sources & Licence

Norwegian data is sourced from public registries under NLOD 2.0 (Norwegian Licence for Open Government Data). Finnish data is sourced from PRH open data under the CC BY 4.0 licence.

  • Brønnøysundregistrene — Norwegian company register, roles, financials
  • PRH/YTJ v3 — Finnish company register (free open API)
  • XBRL financial filings — Finnish annual report data (~30K digital filers)
  • Mattilsynet — Food safety inspections (Smilefjes)
  • Helsedirektoratet — Alcohol/tobacco licenses (TBR)
  • Doffin — Public procurement notices
  • Aksjonærregisteret — Shareholder data
  • SSB — Municipality reference data + aggregate context statistics
  • NORID — Domain verification

Every API response includes X-Data-Source and X-Data-License headers so downstream consumers can comply with NLOD attribution transitively.

Deployment

Orakel is hosted on EU-sovereign infrastructure (Hetzner Helsinki). All data processing, storage, and email delivery stays within the EU — no US cloud providers.

License

MIT (this package). Data is NLOD 2.0 — attribute when redistributing.