Connect EntityFeed to Claude Desktop, Cursor and VS Code

EntityFeed is a remote MCP server. Its address is https://entityfeed.com/mcp and it speaks Streamable HTTP. The initialize and tools/list requests work without a key. Every tool call needs a key, sent as Authorization: Bearer ef_YOUR_KEY. Get a free key on the home page.

Each client below has its own steps. They are not the same, so read only the section for your client. The steps follow the vendors' documentation as read on 5 November 2026. We have not run them in each client ourselves, and the vendors change their menus. If a menu differs, trust the vendor's page listed at the end.

What was tested

On 6 November 2026 we ran the official MCP TypeScript client against https://entityfeed.com/mcp with a real key: listing tools, get_company for SK and CZ, search_company, an unknown company, and a wrong key. All behaved as described here.

The Slovak register is slow. On that day its API took 7 to 33 seconds per request, so a first Slovak lookup can take that long or longer. Repeats come from the cache. Czech lookups answered in under a second in the same test. If your client has a short tool timeout, raise it.

Check the key first

This request does not use a tool call, so it does not use up a query. It returns your plan and your usage:

curl -H "Authorization: Bearer ef_YOUR_KEY" https://entityfeed.com/v1/usage

A valid key returns JSON with plan, period, used, limit and resets_at. A wrong key returns the 401 error described under Troubleshooting. Do this before you blame the client.

Claude Desktop

Claude Desktop has two places where an MCP server can be set up, and they do different things. The documentation describes them this way:

Route 1: custom connector with a request header (the route the documentation supports)

Limits stated in the documentation:

Route 2: local bridge with mcp-remote (third-party tool, not Anthropic documentation)

Use this only if route 1 is not available to you. The claude_desktop_config.json file is documented for local servers started with command and args. The documentation we read does not say that a url entry with headers works in that file, so do not write one. The open-source tool mcp-remote runs on your computer as a local server and forwards to a remote one. Its README shows the setup for Claude Desktop. It needs Node.js.

The config file is at:

To open it, go to Settings > Developer and click Edit Config. The button creates the file if it does not exist. Put this in it, or add the entityfeed entry to an existing mcpServers object:

{
  "mcpServers": {
    "entityfeed": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://entityfeed.com/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer ef_YOUR_KEY"
      }
    }
  }
}

The key sits in env and not in args because the mcp-remote README says that spaces inside args are not escaped in Claude Desktop on Windows, while spaces in env values are fine. Save the file, then quit Claude Desktop completely and start it again. A restart is required to load the file.

Confirm that it works

Logs for route 2

mcp.log has connection messages. mcp-server-entityfeed.log has the output of the bridge.

Cursor

Cursor reads remote servers from mcp.json. The documentation gives two locations:

The page gives the same ~/.cursor/mcp.json form for every system and no separate Windows path. ~ means your home directory. Put the key in the global file or in an environment variable, not in a project file that you commit.

Create the file, or add the entityfeed entry to an existing mcpServers object:

{
  "mcpServers": {
    "entityfeed": {
      "url": "https://entityfeed.com/mcp",
      "headers": {
        "Authorization": "Bearer ef_YOUR_KEY"
      }
    }
  }
}

To keep the key out of the file, use the variable syntax Cursor documents for headers. Cursor resolves ${env:NAME} in command, args, env, url and headers:

"headers": {
  "Authorization": "Bearer ${env:ENTITYFEED_KEY}"
}

The variable has to exist in the environment of the Cursor process. The documentation recommends setting environment variables for remote servers in your shell profile or system environment. Start Cursor again after you set it.

Confirm that it works

Cursor also offers OAuth sign-in for remote servers. EntityFeed does not use OAuth, so use the headers form above.

VS Code

VS Code uses a file named mcp.json with a top-level servers object. This differs from Claude Desktop and Cursor, which use mcpServers. The documentation warns against copying a file between the two formats without changing it.

Where the file lives:

You can also run MCP: Add Server from the Command Palette and choose HTTP. To write the file by hand, use this. VS Code asks for the key once, hides what you type and stores it, so the key does not sit in the file:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "entityfeed-key",
      "description": "EntityFeed API key (starts with ef_)",
      "password": true
    }
  ],
  "servers": {
    "entityfeed": {
      "type": "http",
      "url": "https://entityfeed.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:entityfeed-key}"
      }
    }
  }
}

The documentation says VS Code prompts for the input value when the server first starts. It also says not to commit tokens or populated authentication headers to source control. If you use the workspace file, the inputs form above is the safe one to commit, because the key is not in it.

For type: "http" the documentation says VS Code tries the Streamable HTTP transport first and falls back to SSE.

Confirm that it works

Troubleshooting

These are the responses EntityFeed sends. Find the one your client shows, in its log or output.

HTTP 401, invalid_api_key. The body is:

{"error":{"code":"invalid_api_key","message":"Missing or invalid API key. Send it as 'Authorization: Bearer <key>'. Get a free key at https://entityfeed.com/"}}

The response also has the header www-authenticate: Bearer realm="mcp". It appears only on a tool call. Causes to check:

The server also accepts the key in an x-api-key header. You do not need that for the setups above.

HTTP 429, quota_exceeded. The monthly limit is used up. The body has limit, used, resets_at and plan, and the message names the reset date in UTC. The response has a retry-after header and the headers x-quota-limit, x-quota-used and x-quota-resets. Check your usage with the /v1/usage request at the top of this guide.

HTTP 405, method_not_allowed. The message is "This server is stateless. Use POST /mcp." A client that opens a GET connection to listen for server messages gets this answer. The server only accepts POST. A single 405 in a log, with tool calls that work, is expected. If everything fails with 405, the client is not using Streamable HTTP for this URL.

HTTP 404, not_found, "Unknown path." The URL is wrong. The address must be exactly https://entityfeed.com/mcp with no extra path and no /sse ending.

HTTP 400, "Parse error" (code -32700). The body was not valid JSON. A client that is configured correctly does not send this. It points to a proxy or bridge that changes the request.

HTTP 413, body_too_large. The request was larger than 1,000,000 bytes.

A tool call that returns an error result. The HTTP status is 200 and the result has isError set. The text is JSON of this form:

{"error":{"code":"not_found","message":"...","source":"...","retryable":false}}

The code is one of invalid_input, not_found, source_unavailable, source_timeout, source_rate_limited, source_not_configured or source_error. These come from the official register behind the lookup, not from your client or your key. When retryable is true, try again later. not_found means the register has no record with that ID.

Only some countries are offered. tools/list shows which countries the server can answer for. At the time of writing, a request to the live server lists SK and CZ.

The client lists the tools but every call fails. Listing needs no key, so this is the usual sign of a missing or wrong key. Run the /v1/usage request.

Claude Desktop, route 1, no Request headers section. Your organization does not have the beta. See route 2, or ask your Claude owner or Claude support.

Claude Desktop, route 2, server missing after restart. Check that the JSON is valid, that Node.js is installed and that npx runs in a terminal, and read mcp.log and mcp-server-entityfeed.log.

Cursor, server listed but red or no tools. Read MCP Logs in the Output panel. Check the file name and that the url is exactly https://entityfeed.com/mcp

VS Code, no key prompt. The documentation says the prompt appears when the server first starts. Run Start Server or Restart Server from MCP: List Servers, then open Show Output.

General information, not tax advice. EntityFeed data comes from public registers and is informational. See the terms.

Sources read on 5 November 2026