Free betaFree while we are in beta
Lead Strategist is free to use while we are in beta. Every account gets 20,000 credits per month, and you do not need a payment card. The prices you see are what will apply later. We will email you at least 30 days before paid plans start.
Want the data in your own code, Google Sheets, Zapier or Make? See all integrations
Lead Strategist is a remote MCP server (Model Context Protocol) with Danish CVR company data and figures from annual reports. You connect it once, and from then on your AI can look up companies whenever you ask. This page shows how to connect. What the server can do and which data it has is on CVR MCP server. Building your own integration? See CVR API.
| MCP URL | https://leadstrategist.dk/mcp |
| Transport | Streamable HTTP |
| Sign-in | OAuth 2.1 with PKCE (ChatGPT, Claude, Cursor, Grok) or API key (developers) |
| Access | Read-only (scope cvr:read) |
Before you start
- Create an account and confirm your email address. Lead Strategist is free while we are in beta: you get 20,000 credits per month, no card needed. The prices on the pricing page apply later, and we email at least 30 days before paid plans start. The server rejects accounts that have not been confirmed.
- Have the URL
https://leadstrategist.dk/mcpready. You paste it into Claude, ChatGPT or Cursor; it is not meant to be opened in a browser. You do not paste any key. They send you to our login page, where you approve read access. - When you are signed in, Connections shows the same steps with copy buttons, an Add to Cursor button and a file for Claude Desktop.
Claude (claude.ai and Claude Desktop)
Works on every Claude plan, including Free. Free users can have one custom connector. The connection is made from Anthropic's servers, so once you add it on claude.ai, it also works in the Claude app on your computer and phone.
- Go to claude.ai and sign in. Click Customize and then Connectors.
- Click + Add and choose Add custom connector. Type
Lead Strategistas the name, pastehttps://leadstrategist.dk/mcpand click Continue. - Claude checks No sign-in. Change it to Sign in when needed. Leave OAuth client on Use Claude's published identity. Do not add a header or a key. Click Add.
- Start a new chat. Click + at the bottom left, choose Connectors and switch on Lead Strategist.
- Ask a question. When the card says Authorization required, click Connect. Sign in with your Lead Strategist account and click Allow connection. The picture for each step is on Connections.
Team and Enterprise: An Owner first adds the connector under Organization settings → Connectors → Add → Custom → Web with the same URL. Each member then connects their own Lead Strategist account under Customize → Connectors.
Claude Desktop in one click: When you are signed in, Connections lets you download a file (Lead-Strategist.mcpb) with your own key. Double-click it and click Install in Claude Desktop. Do not share the file; it contains your key.
Source: Claude Help Center: custom connectors using remote MCP.
ChatGPT
Needs a paid ChatGPT plan (Plus or higher), and you have to use ChatGPT in the browser at chatgpt.com. It does not work in the free version or in the mobile app. ChatGPT calls custom MCP servers apps and requires developer mode. All Lead Strategist tools are read-only.
- Open chatgpt.com. Click your name or picture, choose Settings → Security and login and switch on Developer mode. If you cannot find the switch, it may already be on.
- Go to Plugins in the menu on the left, click + and choose Create MCP App.
- Name:
Lead Strategist. URL:https://leadstrategist.dk/mcp. Authentication: OAuth. Tick the warning box and click Create. - Sign in with your Lead Strategist account and click Allow connection.
- Start a new chat, click +, choose Developer mode and pick Lead Strategist.
Business, Enterprise and Edu: An admin has to allow it first under Workspace settings → Permissions & Roles. On Business, only admins can use developer mode.
OpenAI moves these menus often, and its two guides do not fully agree on which plans have access. Sources: OpenAI: ChatGPT developer mode and OpenAI Help Center: developer mode and MCP apps in ChatGPT.
OpenAI API (Responses API)
Use the mcp tool type with server_url. The Responses API does not store the authorization value, so send it with every request. Create an API key under Connections → Advanced: API key.
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-5.2",
"tools": [{
"type": "mcp",
"server_label": "lead_strategist",
"server_description": "Danish CVR company data and financial figures (read-only)",
"server_url": "https://leadstrategist.dk/mcp",
"authorization": "'"$LEAD_STRATEGIST_API_KEY"'",
"allowed_tools": ["search_companies", "get_company", "get_financials", "recommend_leads"],
"require_approval": "never"
}],
"input": "Find 5 active Danish machinery manufacturers with at least 20 employees."
}'
Use a model your account has access to. Source: OpenAI: MCP servers in the API.
Cursor
Click Add to Cursor under Connections, or add the server to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"lead-strategist": {
"url": "https://leadstrategist.dk/mcp"
}
}
}
Cursor starts the sign-in by itself the first time (under Cursor Settings → MCP, click Connect). Do not use an API key in Cursor: Cursor currently skips an Authorization header when the server also offers OAuth (known bug).
Source: Cursor docs: Model Context Protocol.
Grok
Grok has no field for an API key. It signs in with OAuth.
- Open grok.com/connectors.
- Click New Connector, choose Custom, and paste
https://leadstrategist.dk/mcp. - Grok gets
401straight away and opens our login. Sign in and approve read access. Leave client id and secret fields empty if they appear. - In a chat, type
@and choose Lead Strategist.
Grok does not open a login if it was first given the tool list without a token. The server therefore answers Grok with 401 on initialize and tools/list. Claude can still see the tool list without a token and is asked to sign in when a call reads data.
Other MCP clients
Any client that supports Streamable HTTP can use https://leadstrategist.dk/mcp.
With an API key: Send Authorization: Bearer ls_live_… (or x-api-key: ls_live_…) with every request. Many clients use this format:
{
"mcpServers": {
"lead-strategist": {
"url": "https://leadstrategist.dk/mcp",
"headers": { "Authorization": "Bearer ls_live_YOUR_KEY" }
}
}
}
stdio only (local clients): Use the mcp-remote bridge, which handles the OAuth login in your browser:
{
"mcpServers": {
"lead-strategist": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://leadstrategist.dk/mcp"]
}
}
}
With OAuth (if you are building a client):
| Step | Endpoint |
|---|---|
| Protected resource metadata | https://leadstrategist.dk/.well-known/oauth-protected-resource/mcp |
| Authorization server metadata | https://leadstrategist.dk/.well-known/oauth-authorization-server |
| OpenID Connect discovery | https://leadstrategist.dk/.well-known/openid-configuration |
| Dynamic client registration | POST https://leadstrategist.dk/register |
| Login and consent | https://leadstrategist.dk/authorize |
| Token and refresh | POST https://leadstrategist.dk/token |
| Revocation | POST https://leadstrategist.dk/revoke |
- Public clients only (
token_endpoint_auth_method: none) with PKCES256. - The scope is
cvr:read(offline_accessis also accepted, e.g. from ChatGPT; refresh tokens are always issued), andresourcemust behttps://leadstrategist.dk/mcp. - Access tokens last 1 hour. Refresh tokens last 30 days and are rotated on every use.
- A call that reads data without a valid token gets
401with aWWW-Authenticateheader that points to the metadata.initializeandtools/listcan be answered without a token, except for Grok, which gets401as soon as it connects so the login opens.
Tools
All tools are read-only. There is no SQL access and there are no write tools.
| Tool | What it does | Main parameters |
|---|---|---|
search_companies | Searches CVR data with filters | industry_code, industry_contains, status_contains, company_name_contains, min_revenue, max_revenue, min_employees, max_employees, municipality (name or code), city (post town, so Aarhus matches Aarhus C, N and V, or a postcode), region (for example Midtjylland), exclude_reklamebeskyttelse (default true), limit (max 50), offset |
recommend_leads | Ranked lead list with advertising-protection warnings | Same filters as search_companies, limit (max 25), offset (paging, max 499) |
get_company | One company by 8-digit CVR number | cvrnummer |
get_financials | Financial history: revenue, gross profit, EBIT, net income, equity, assets, employees | cvrnummer, limit (max 50), year |
get_data_dictionary | Describes the data model and the usage rules | none |
Test the connection
Send this prompt once the connector is turned on:
Use Lead Strategist to find 10 dental clinics in Aarhus with at least 5 employees. Show name, CVR number and number of employees in a table.
Troubleshooting
- You opened the link in a browser: That is expected. The link goes into Claude, ChatGPT or Cursor; it is not meant to be opened directly.
- 401 or "Invalid or expired OAuth token": Disconnect and reconnect the connector.
- "Verified account required": Confirm your email address in your account.
- A message about used-up credits: This month's 20,000 free beta credits are used. They reset on the 1st of the month (UTC). See pricing.
- 429 "Rate limit exceeded": More than 120 calls per minute with the same key. Wait a moment.
- Claude or ChatGPT cannot reach the server: Check that you entered exactly
https://leadstrategist.dk/mcp.
About the data
- Around 948,000 companies from CVR. Master data is synced daily from CVR early each morning, and new annual reports are fetched from Virk three times a day.
- Financial figures from published annual reports for around 460,000 companies. We are currently re-importing and improving them.
- No data yet on owners, boards or other people.
- Source and licence: Data from the Danish Central Business Register (CVR), Danish Business Authority, CC BY 4.0 (licence). Credit the source when you reuse the data.
- Companies with CVR advertising protection (reklamebeskyttelse) must not be contacted for marketing. The tools exclude them by default and flag them with
contact_warning.