CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
mnymann avatar

Nordic Data

mnymann/nordic-data-mcp
111 toolsauthSTDIO, HTTPregistry active
Summary

Plug your AI assistant directly into official business registries across 15 EU countries. You get seven tools: company lookups against CVR, Brønnøysund, Companies House and others, VAT validation via VIES, bulk sanctions screening against UN/EU/OFAC lists, full KYB reports with financials and risk scores, address autocomplete from DAWA and Kartverket, LEI resolution through GLEIF, and enriched company data with Wikidata. Requires an API key from addonnordic.com. Free tier covers most countries, though NL and DE need a paid plan. Works locally via stdio or remotely as a custom connector in ChatGPT Pro and Claude.ai.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Tools

Public tool metadata for what this MCP can expose to an agent.

11 tools
lookup_companyLook up basic company data (name, address, status, industry, VAT registration, founding date) from official European business registries. Supports 15 countries: DK (CVR), NO (Brønnøysund), SE (Bolagsverket), FI (YTJ/PRH), IE (CRO), UK (Companies House), FR (INSEE Sirene), DE (...2 params

Look up basic company data (name, address, status, industry, VAT registration, founding date) from official European business registries. Supports 15 countries: DK (CVR), NO (Brønnøysund), SE (Bolagsverket), FI (YTJ/PRH), IE (CRO), UK (Companies House), FR (INSEE Sirene), DE (...

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code, lowercase. One of: dk, no, se, fi, ie, uk, fr, de, cz, pl, lv, ee, nl, be, lu.one of dk · no · se · fi · ie · uk
idstring
National company identifier. DK=CVR (8 digits), NO=orgnr (9), SE=orgnr (10), FI=Y-tunnus (NNNNNNN-D), IE=CRO (1-7), UK=8 chars, FR=SIREN (9), DE=HRB number, CZ=IČO (8), PL=NIP (10) or KRS (10), LV=...
validate_vatValidate a VAT registration number against the official EU VIES service (or HMRC for GB). Returns validity status, registered name, and registered address.2 params

Validate a VAT registration number against the official EU VIES service (or HMRC for GB). Returns validity status, registered name, and registered address.

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code, UPPERCASE. Use GB for the United Kingdom (HMRC), not UK. Supports all EU member states plus GB and NO.one of DK · NO · SE · FI · NL · BE
vat_numberstring
VAT number WITHOUT country prefix — just the digits/characters. Example: for DK29403473, pass '29403473'.
screen_sanctionsScreen one or more names against UN, EU, OFAC and PEP sanctions lists (768K+ entries via OpenSanctions). Returns match scores with source attribution.3 params

Screen one or more names against UN, EU, OFAC and PEP sanctions lists (768K+ entries via OpenSanctions). Returns match scores with source attribution.

Parameters* required
fuzzyboolean
Enable fuzzy matching. Default true.default: true
min_scorenumber
Minimum fuzzy match score, 0-1. Default 0.7. Lower values return more (lower-confidence) matches.default: 0.7
namesarray
Array of person or company names to screen. Max 1000 names per call.
kyb_fullFull Know-Your-Business master report for a company across 15 EU countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Aggregates 9 sections: identity, registered address (geocoded), key persons & directors, financial statements, official filings, LEI + corpo...2 params

Full Know-Your-Business master report for a company across 15 EU countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE, LU). Aggregates 9 sections: identity, registered address (geocoded), key persons & directors, financial statements, official filings, LEI + corpo...

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code, lowercase.one of dk · no · se · fi · ie · uk
idstring
National company identifier — same format as lookup_company (e.g. DK CVR 8 digits, NO orgnr 9 digits).
autocomplete_addressAddress autocomplete using each country's authoritative register: DAWA (DK), Kartverket (NO), BAN (FR official), MML (FI), and Nominatim (others). Returns ranked address suggestions with coordinates. Supports 15 countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE...2 params

Address autocomplete using each country's authoritative register: DAWA (DK), Kartverket (NO), BAN (FR official), MML (FI), and Nominatim (others). Returns ranked address suggestions with coordinates. Supports 15 countries (DK, NO, SE, FI, IE, UK, FR, DE, CZ, PL, LV, EE, NL, BE...

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code, lowercase.one of dk · no · se · fi · ie · uk
querystring
Partial address — street name, postcode, city, or any combination. Min 2 characters.
lookup_leiLook up a Legal Entity Identifier (LEI) via GLEIF — the global standard for entity identification. Returns legal name, registered address, status, parent + ultimate parent relationships, and child entities (subsidiaries). Also supports reverse lookup from a national company nu...5 params

Look up a Legal Entity Identifier (LEI) via GLEIF — the global standard for entity identification. Returns legal name, registered address, status, parent + ultimate parent relationships, and child entities (subsidiaries). Also supports reverse lookup from a national company nu...

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code, lowercase. Required when mode='reverse'.one of dk · no · se · fi · ie · uk
idstring
National company ID. Required when mode='reverse'.
include_relationshipsboolean
If true, also fetch parent and child entities. Only applies when mode='lei'.default: false
leistring
20-character ISO 17442 Legal Entity Identifier. Required when mode='lei'.
modestring
'lei' = look up by LEI directly. 'reverse' = look up LEI from national company number.one of lei · reverse
company_enrichedEnriched company data: basic registry data + DAWA-validated address with lat/lng + industry statistics (DST for DK, SSB for NO, etc.) + Wikidata enrichment (website, employees, CEO, ticker, logo, Wikipedia URL). One call, multiple sources. Supports 15 countries (DK, NO, SE, FI...2 params

Enriched company data: basic registry data + DAWA-validated address with lat/lng + industry statistics (DST for DK, SSB for NO, etc.) + Wikidata enrichment (website, employees, CEO, ticker, logo, Wikipedia URL). One call, multiple sources. Supports 15 countries (DK, NO, SE, FI...

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code, lowercase.one of dk · no · se · fi · ie · uk
idstring
National company identifier — same format as lookup_company.
fr_historyFrench company history timeline. Returns one event per change to the company's name, activity (NAF code), status (active/closed), legal form, or social-economy flag, derived from INSEE Sirene 3.11's bitemporal periodesUniteLegale array. Includes 'initial:<field>' events that s...1 params

French company history timeline. Returns one event per change to the company's name, activity (NAF code), status (active/closed), legal form, or social-economy flag, derived from INSEE Sirene 3.11's bitemporal periodesUniteLegale array. Includes 'initial:<field>' events that s...

Parameters* required
sirenstring
9-digit French SIREN number. Examples: 652014051 (Carrefour), 775670417 (LVMH). No spaces or punctuation.
list_endpointsDiscovery meta-tool. Lists ALL available Nordic Data API data endpoints (HTTP method, path, short description) by reading the backend's live OpenAPI spec at runtime — far beyond the curated high-level tools. Use this to discover capabilities the dedicated tools do not cover, t...1 params

Discovery meta-tool. Lists ALL available Nordic Data API data endpoints (HTTP method, path, short description) by reading the backend's live OpenAPI spec at runtime — far beyond the curated high-level tools. Use this to discover capabilities the dedicated tools do not cover, t...

Parameters* required
searchstring
Optional case-insensitive keyword filter, matched against each endpoint's path, summary, and tags. Examples: 'sanction', 'address', 'cvr', 'history', 'vat', 'lei'. Omit to list every available data...
get_endpoint_schemaDiscovery meta-tool. Returns the full parameter and response schema for a single Nordic Data API endpoint (path + method), read from the backend's live OpenAPI spec with $refs resolved inline. Use after list_endpoints to learn exactly which parameters an endpoint takes before...2 params

Discovery meta-tool. Returns the full parameter and response schema for a single Nordic Data API endpoint (path + method), read from the backend's live OpenAPI spec with $refs resolved inline. Use after list_endpoints to learn exactly which parameters an endpoint takes before...

Parameters* required
methodstring
HTTP method for the endpoint (e.g. GET, POST). Defaults to GET. Must be a method the endpoint actually defines.default: GET
pathstring
Endpoint path from list_endpoints, e.g. '/api/company/{country}/{id}'. Concrete paths like '/api/company/dk/22756214' are also accepted.
call_endpointDiscovery meta-tool. Executes a real HTTP request against the Nordic Data API for any non-admin endpoint discovered via list_endpoints, and returns the response. Authenticates with the same scoped API key as the curated tools. Only HTTP methods declared in the spec for the giv...3 params

Discovery meta-tool. Executes a real HTTP request against the Nordic Data API for any non-admin endpoint discovered via list_endpoints, and returns the response. Authenticates with the same scoped API key as the curated tools. Only HTTP methods declared in the spec for the giv...

Parameters* required
methodstring
HTTP method to use, e.g. GET or POST. Must be a method the endpoint actually supports (see get_endpoint_schema). Defaults to GET.default: GET
paramsobject
Parameters for the call. Values whose keys match {placeholders} in the path are substituted into the path. Remaining values become query-string params for GET/DELETE, or the JSON request body for P...
pathstring
Concrete endpoint path, e.g. '/api/company/dk/22756214'. Path templates with {placeholders} are also accepted when you supply the values in `params`.

Nordic Data MCP Server

npm version License: MIT

A Model Context Protocol server that gives AI agents (Claude, Cursor, Claude Code, ChatGPT, Copilot, etc.) direct access to official European business data across 15 EU countries.

Look up companies, validate VAT numbers, run KYB reports, screen against sanctions lists, autocomplete addresses, and resolve LEI ownership — all from inside your AI assistant.

DK · NO · SE · FI · IE · UK · FR · DE · CZ · PL · LV · EE · NL · BE · LU

NL and DE require a Starter+ subscription (free-tier API keys receive HTTP 402 upgrade_required). On paid tiers, NL calls cost 5x quota units and DE calls cost 3x; all other countries cost 1x.


Quick start

1. Get an API key

Sign up at addonnordic.com and grab your NORDIC_API_KEY. Free tier available.

2. Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "nordic-data": {
      "command": "npx",
      "args": ["-y", "nordic-data-mcp"],
      "env": {
        "NORDIC_API_KEY": "YOUR_KEY_HERE"
      }
    }
  }
}

Restart Claude Desktop. You should see "nordic-data" appear in the tools menu.

3. Add to Cursor

In Cursor settings → MCP → Add new server, or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nordic-data": {
      "command": "npx",
      "args": ["-y", "nordic-data-mcp"],
      "env": {
        "NORDIC_API_KEY": "YOUR_KEY_HERE"
      }
    }
  }
}

4. Add to Claude Code

claude mcp add nordic-data --env NORDIC_API_KEY=YOUR_KEY_HERE -- npx -y nordic-data-mcp

5. Add to ChatGPT (Pro, Business, or Enterprise)

ChatGPT supports remote MCP servers as custom connectors. No API key needed from you — the hosted server handles upstream authentication.

  1. ChatGPT → Settings → Connectors → Add custom connector
  2. URL: https://nordic-data-mcp-production.up.railway.app/mcp
  3. Done — all 11 tools are available immediately.

Custom connectors require a ChatGPT Pro, Business, Team, or Enterprise plan.

6. Add to Claude.ai (web)

Same hosted endpoint, no local install:

  1. Claude.ai → Settings → Connectors → Add custom connector
  2. URL: https://nordic-data-mcp-production.up.railway.app/mcp
  3. Done.

Available tools

ToolWhat it does
lookup_companyBasic company data from official registries (CVR, Brønnøysund, Bolagsverket, Companies House, INSEE, etc.)
validate_vatValidate a VAT number against VIES (EU) or HMRC (GB)
screen_sanctionsBulk screen up to 1000 names against UN/EU/OFAC/PEP lists (OpenSanctions, 768K+ entries)
kyb_fullMaster Know-Your-Business report — identity, persons, financials, LEI, VAT, sanctions, adverse media, risk score
autocomplete_addressAddress autocomplete via DAWA (DK), Kartverket (NO), BAN (FR), MML (FI), Nominatim (others)
lookup_leiGLEIF Legal Entity Identifier lookup — forward, reverse, and parent/children relationships
company_enrichedCompany data + geocoded address + industry stats + Wikidata (website, employees, CEO, ticker, logo)
fr_historyFrench company history timeline (name, activity, status, legal-form changes) from INSEE Sirene bitemporal data
list_endpointsDiscovery: list all read-only data endpoints in the underlying API (230+), with optional keyword filter
get_endpoint_schemaDiscovery: full parameter + response schema for one endpoint, before calling it
call_endpointDiscovery: execute a read-only request (GET/HEAD, plus three allowlisted POST screening queries) against any discovered endpoint

Example agent prompts

"Look up CVR 61056416 in Denmark" → calls lookup_company { country: "dk", id: "61056416" } → Carlsberg A/S

"Run a full KYB report on Equinor (NO 923609016)" → calls kyb_full { country: "no", id: "923609016" }

"Is LU26375245 a valid VAT number?" → calls validate_vat { country: "LU", vat_number: "26375245" }

"Screen these names against sanctions: Vladimir Putin, Acme Corp, John Smith" → calls screen_sanctions { names: [...] }

"Find the LEI for Tesco UK (00445790) and include parent and subsidiaries" → calls lookup_lei { mode: "reverse", country: "uk", id: "00445790" }


Country / ID format reference

CountryID typeFormat
DKCVR8 digits
NOOrganisasjonsnummer9 digits
SEOrganisationsnummer10 digits (with or without dash)
FIY-tunnusNNNNNNN-D (7 digits + check digit)
IECRO number1–7 digits
UKCompanies House8 chars (digits, or prefix like SC, NI, OC)
FRSIREN9 digits
DELEI or HRBLEI = 20 alphanum; HRB = prefix + digits
CZIČO8 digits
PLNIP / REGON / KRSNIP=10, REGON=9/14, KRS=10
LVReģistrācijas nr.11 digits
EERegistrikood8 digits
NLKvK-nummer8 digits
BEBCE/KBO10 digits
LURCSLB + digits

For validate_vat, country codes are uppercase and cover the broader EU plus GB (use GB, not UK — HMRC requires GB).


Configuration

The only environment variable you need to set is:

VariableRequiredDescription
NORDIC_API_KEYyesYour API key from addonnordic.com

That's it. The MCP server connects to the hosted Nordic Data API for you.


Self-hosting (remote HTTP transport)

For remote MCP hosting (e.g. Anthropic Connectors, Smithery, web-based clients), deploy the bundled Streamable HTTP transport:

npm install
npm run build
NORDIC_API_KEY=sk_... npm run start:http   # listens on :$PORT (default 3000)

Endpoints:

  • GET /healthz — health check (returns version + status)
  • ALL /mcp — public MCP endpoint. No key required; all upstream calls are billed to the server's own NORDIC_API_KEY (freemium / discovery). Per-IP rate-limited.
  • ALL /mcp/auth — authenticated MCP endpoint. Requires Authorization: Bearer ndk_... on every request; each call is billed to that customer's own key + quota.

Both are session-based via the Mcp-Session-Id header.

Connecting a remote client

This server uses static API-key authentication, not OAuth. How you connect depends on your client:

  • Header-capable clients (Claude Code, Cursor, Smithery, Claude.ai / ChatGPT custom connectors): point them at …/mcp/auth and supply your key as Authorization: Bearer ndk_.... Each request is billed to your own tenant + quota.
  • Generic / auto-discovery clients that only know "URL + OAuth": point them at the public …/mcp (no key). Otherwise such clients attempt OAuth Dynamic Client Registration (POST /register) and fail — this server has no OAuth endpoints by design and answers them with a clear JSON oauth_not_supported error (not a sign-in flow).
  • Local clients: prefer the stdio package — npx -y nordic-data-mcp with NORDIC_API_KEY set (see Quick start above).

Full OAuth 2.1 (so arbitrary external clients can self-onboard with their own key) is a planned Phase-2 item, not yet implemented.

A railway.toml is included for one-click deploy on Railway:

  1. New Project → Deploy from GitHub repo → select Mnymann/nordic-data-mcp
  2. Set Root Directory to nordic-data-mcp
  3. Add env var NORDIC_API_KEY
  4. Railway auto-detects the config, builds, and exposes a public HTTPS URL

Design notes

  • Thin adapter. No business logic, no caching, no transformations. Each tool maps 1:1 to a Nordic Data API endpoint.
  • No PII in logs. Request and response bodies are never logged.
  • API key required. The process refuses to start without NORDIC_API_KEY.
  • Rate limiting. The backend enforces per-key quotas; the HTTP transport additionally applies a per-IP limit on the public /mcp endpoint as defense-in-depth (tunable via PUBLIC_RATE_LIMIT / PUBLIC_RATE_WINDOW_MS). Caching is handled upstream.
  • Inputs are validated with zod before any HTTP call.

Contributing

Issues and PRs welcome at github.com/Mnymann/nordic-data-mcp.

Please do not include API keys, request bodies, or response payloads in bug reports.


Disclaimer

Nordic Data returns informational decision-support aggregated from official and public sources. It is not legal, compliance, financial, or professional advice, and not a definitive determination. KYB reports, sanctions/PEP matches, adverse-media hits, and risk scores are signals to review, not verdicts — verify independently and apply your own professional judgment before acting. Use of the service is subject to the AddonNordic Terms.


License

MIT © AddonNordic ApS

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Configuration

NORDIC_API_KEY*secret

Your Nordic Data API key — get one at https://addonnordic.com (free tier: 100 lookups/day)

NORDIC_DEFAULT_COUNTRY

Optional ISO 3166-1 alpha-2 country code (lowercase) to assume when a tool call omits the country argument. One of: dk, no, se, fi, ie, uk, fr, de, cz, pl, lv, ee, nl, be, lu.

NORDIC_VERBOSE_ERRORS

Optional. Set to 'true' to include upstream HTTP status and request-id details in error messages. Useful for debugging.

Categories
Sales & MarketingData & Analytics
Registryactive
Packagenordic-data-mcp
TransportSTDIO, HTTP
AuthRequired
UpdatedMay 31, 2026
View on GitHub

Related Sales & Marketing MCP Servers

View all →
ozten avatar
Cantrip

io.github.ozten/cantrip

MCP server for Cantrip — AI-powered GTM engine for solo founders
1
provartesting avatar
Provar MCP Server

io.github.provartesting/provar

Provar MCP: AI-powered Salesforce test automation. Generate, validate, migrate, and run tests.
1
servosity avatar
AppDirect MCP

io.github.servosity/appdirect-mcp

AppDirect marketplace operations with an offline mirror and cross-company billing reconciliation.
1
servosity avatar
Kaseya BMS MCP

io.github.servosity/kaseya-bms-mcp

CLI and MCP server for Kaseya BMS PSA: tickets, CRM, contracts, finance, and offline analytics.
1
servosity avatar
PandaDoc MCP

io.github.servosity/pandadoc-mcp

Every PandaDoc endpoint, plus an offline document pipeline no other PandaDoc tool has - stalled
1
servosity avatar
Pipedrive MCP

io.github.servosity/pipedrive-mcp

Full Pipedrive CRUD plus a local SQLite pipeline copy: stale deals, forecasts, aging, dupes, rep
1