Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Apideck MCP

by apideck-librariesversion 0.1.13i★ –iComputer or cloud
Registry namecom.apideck/mcp

Install

Overview

Description from the maker (original English)

Apideck Unified API MCP — 330 tools across 200+ SaaS connectors (accounting, CRM, HRIS, ATS).

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Accounting, finance & tax
  • You need to fill in: APIDECK_API_KEY, APIDECK_APP_ID, APIDECK_CONSUMER_ID, x-apideck-api-key, x-apideck-app-id, x-apideck-consumer-id

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: APIDECK_API_KEY, APIDECK_APP_ID, APIDECK_CONSUMER_ID, x-apideck-api-key, x-apideck-app-id, x-apideck-consumer-id

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "apideck": {
      "command": "npx",
      "args": [
        "-y",
        "@apideck/mcp"
      ],
      "env": {
        "APIDECK_API_KEY": "your-value",
        "APIDECK_APP_ID": "your-value",
        "APIDECK_CONSUMER_ID": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport http apideck https://mcp.apideck.dev/mcp --header 'x-apideck-api-key: your-value' --header 'x-apideck-app-id: your-value' --header 'x-apideck-consumer-id: your-value'

Or run it on your computer

claude mcp add apideck --env APIDECK_API_KEY=your-value --env APIDECK_APP_ID=your-value --env APIDECK_CONSUMER_ID=your-value -- npx -y @apideck/mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "apideck": {
      "url": "https://mcp.apideck.dev/mcp",
      "headers": {
        "x-apideck-api-key": "your-value",
        "x-apideck-app-id": "your-value",
        "x-apideck-consumer-id": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "apideck": {
      "command": "npx",
      "args": [
        "-y",
        "@apideck/mcp"
      ],
      "env": {
        "APIDECK_API_KEY": "your-value",
        "APIDECK_APP_ID": "your-value",
        "APIDECK_CONSUMER_ID": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "apideck": {
      "type": "http",
      "url": "https://mcp.apideck.dev/mcp",
      "headers": {
        "x-apideck-api-key": "your-value",
        "x-apideck-app-id": "your-value",
        "x-apideck-consumer-id": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "apideck": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@apideck/mcp"
      ],
      "env": {
        "APIDECK_API_KEY": "your-value",
        "APIDECK_APP_ID": "your-value",
        "APIDECK_CONSUMER_ID": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • APIDECK_API_KEY secret required env
    Your Apideck API key (from https://platform.apideck.com/configuration/api-keys).
  • APIDECK_APP_ID required env
    Your Apideck application ID (from https://platform.apideck.com/configuration/api-keys).
  • APIDECK_CONSUMER_ID required env
    The end-user/customer ID whose Vault connections should be used.
  • x-apideck-api-key secret required HTTP header
    Your Apideck API key.
  • x-apideck-app-id required HTTP header
    Your Apideck application ID.
  • x-apideck-consumer-id required HTTP header
    The end-user/customer ID whose Vault connections should be used.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain apideck.com (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Accounting, finance & taxi

  • More stars than 0% of the other 1722 servers in this category
  • Published to the registry more recently than 6% of the other 1722 servers in this category
  • Basic checks equal to or better than 100% of the other 1722 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Apideck MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: APIDECK_API_KEY, APIDECK_APP_ID, APIDECK_CONSUMER_ID, x-apideck-api-key, x-apideck-app-id, x-apideck-consumer-id

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.13) reached the registry 6 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Finance Toolkit, SolidInvoice, Korea Tax Calculator

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Finance Toolkit

by JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

Computer or cloud★ 5,496MITUpdated yesterday
Install

SolidInvoice

by SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

Runs in the cloud★ 981MITUpdated 7 days ago
Install

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

Runs on your computer★ 97MITUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Apideck MCP Server

Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent to 200+ connectors — accounting systems, HRIS platforms, CRM, file storage, and more — through one integration.

Quick Connect

Claude Desktop (.mcpb bundle)

Recommended — prebuilt bundle:

Drag and drop the prebuilt mcp-server.mcpb onto Claude Desktop. Claude reads manifest.json to prompt for credentials and spawn the server — no manual config needed.

[!NOTE]

Learn more about Desktop Extensions.

Local stdio (npx) alternative:

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

{

"mcpServers": { "apideck": { "command": "npx", "args": ["-y", "@apideck/mcp", "start"], "env": { "APIDECK_API_KEY": "YOUR_API_KEY", "APIDECK_CONSUMER_ID": "YOUR_CONSUMER_ID", "APIDECK_APP_ID": "YOUR_APP_ID" } } } }

Restart Claude Desktop after saving. Pin a specific version by replacing @apideck/mcp with @apideck/mcp@0.1.15.

Claude Code CLI

Set credentials in your shell:

export APIDECK_API_KEY="..."

export APIDECK_CONSUMER_ID="..." export APIDECK_APP_ID="..."

Hosted (recommended):

claude mcp add --transport http apideck https://mcp.apideck.dev/mcp \

--header "Authorization: Bearer $APIDECK_API_KEY" \ --header "x-apideck-consumer-id: $APIDECK_CONSUMER_ID" \ --header "x-apideck-app-id: $APIDECK_APP_ID"

Local stdio (npx):

claude mcp add apideck \

-e APIDECK_API_KEY="$APIDECK_API_KEY" \ -e APIDECK_CONSUMER_ID="$APIDECK_CONSUMER_ID" \ -e APIDECK_APP_ID="$APIDECK_APP_ID" \ -- npx -y @apideck/mcp start

The start command reads credentials from environment variables only — it does not accept --api-key / --consumer-id / --app-id flags.

Windsurf

Settings → Cascade → Manage MCPs → View raw config, then paste:

{

"mcpServers": { "apideck": { "url": "https://mcp.apideck.dev/mcp", "headers": { "x-apideck-api-key": "YOUR_API_KEY", "x-apideck-consumer-id": "YOUR_CONSUMER_ID", "x-apideck-app-id": "YOUR_APP_ID" } } } }

Any MCP client (manual JSON)

{

"mcpServers": { "apideck": { "url": "https://mcp.apideck.dev/mcp", "headers": { "x-apideck-api-key": "YOUR_API_KEY", "x-apideck-consumer-id": "YOUR_CONSUMER_ID", "x-apideck-app-id": "YOUR_APP_ID" } } } }


Claude Desktop (.mcpb plugin bundle)

Apideck ships a Claude plugin bundle (.mcpb — Anthropic's Model Context Protocol Bundle format). Drop it into Claude Desktop and you get the full server (380+ tools: every endpoint tool plus 4 workflow tools) with API key / consumer ID / app ID prompted via the standard plugin UI.

pnpm mcpb:build       # → dist/mcp-server.mcpb (~590 KB)

Each release attaches mcp-server.mcpb to the latest release. To build it yourself: pnpm mcpb:build → dist/mcp-server.mcpb. Open the .mcpb with Claude Desktop's plugin installer; Claude Desktop reads manifest.json to wire credentials and spawn the server.


Tools

380+ tools across 10 unified APIs (run list_tools({}) for live per-domain counts):

APICoverage
AccountingInvoices, bills, payments, suppliers, customers, journal entries, ledger accounts, purchase orders, tax rates, P&L, balance sheet, and more
CRMCompanies, contacts, leads, opportunities, pipelines, notes, activities, users
File StorageFiles, folders, drives, shared links, upload sessions
HRISEmployees, companies, departments, payrolls, time-off requests
VaultConnections, consumers, sessions, custom mappings, logs
ATSApplicants, applications, jobs
Issue TrackingCollections, tickets, users, tags, comments
ConnectorAPIs, connectors, resources, coverage metadata
EcommerceCustomers, orders, products, stores
WebhookWebhook subscriptions, logs
ProxyGET, POST, PUT, PATCH, DELETE
Workflow tools

Intent-grouped workflows orchestrate multiple calls behind a single MCP tool — saving agents the round-trips and field-plumbing they routinely get wrong.

ToolWhat it doesCalls
apideck-month-end-close-checkFans out aged-creditors, aged-debtors, balance-sheet, and P&L in parallel. Returns a partial result when some reports aren't supported by the connector.4
apideck-pay-billLooks up a vendor bill and creates a bill payment allocated against it, so the accounting system marks the bill (partially) paid.2
apideck-receive-customer-paymentLooks up an invoice and creates a customer payment allocated against it, so the accounting system marks the invoice (partially) paid.2
apideck-onboard-employeeConverts a hired ATS applicant into an HRIS employee, and optionally moves the applicant to a "hired" stage.2–3

Hosted

The server is live at:

https://mcp.apideck.dev/mcp

Pass credentials via headers:

HeaderDescription
x-apideck-api-keyYour Apideck API key
x-apideck-consumer-idThe end-user / customer ID in your app (optional — see below)
x-apideck-app-idYour Apideck application ID
x-apideck-auth-typeOptional. Set to JWT to authenticate with a Vault session token instead of an API key
Query parameters (single-credential clients)

Some clients can send only one credential, such as a bearer token. Put the API key in Authorization and the ids in the URL:

https://mcp.apideck.dev/mcp?app_id=<your app ID>&consumer_id=<consumer ID>

Authorization: Bearer

service_id works the same way. Precedence: header > query param > env var. Empty values are ignored. The API key is never accepted in the URL, because URLs end up in logs.

Vault session tokens (JWT)

To let an end user's browser or agent call tools without your API key, create a Vault session on your backend and pass its session_token instead:

Authorization: Bearer <session_token>

x-apideck-auth-type: JWT x-apideck-app-id: x-apideck-consumer-id:

The server forwards x-apideck-auth-type: JWT on every Apideck API call, the same way the API Explorer authenticates sessions. Any other value keeps API-key auth. A few limits:

  • The header only takes effect alongside a bearer token in the request. The server's own APIDECK_API_KEY is never sent as a JWT.
  • A session token can't create a new Vault session. If a connection needs re-authorizing, the tool returns the plain error message instead of a re-auth link.
  • JWT auth works over HTTP only. The stdio CLI always uses an API key.
Consumer scoping (optional)

The consumer ID is optional at connect time. Leave APIDECK_CONSUMER_ID / x-apideck-consumer-id unset to start the server unscoped, then supply or override the consumer per call by passing a consumer_id argument to any tool:

execute_tool({ name: "crm-contacts-all", input: { consumer_id: "acme-inc" } })

Precedence: per-call consumer_id argument > x-apideck-consumer-id header > ?consumer_id= query param > APIDECK_CONSUMER_ID env var.

  • Unscoped calls work for application-scoped endpoints that don't need a consumer — e.g. webhook logs (webhook-event-logs-all) and vault-connections-all.
  • Consumer-scoped endpoints called without a consumer return Apideck's "consumer required" error, so set consumer_id (or the env/header) for those.
Locking identity (opt-in)

To pin identity to the boot header/query/env and stop agents from switching consumer or connection per call, start with --lock-identity (CLI) or append ?lock_identity=true (hosted). Locked calls ignore per-call consumer_id / service_id arguments. Off by default. Vault consumer tools that take consumer_id as a path parameter (e.g. vault-consumers-one) only accept the locked consumer; any other value, or no locked consumer, is refused. service_id path parameters (e.g. vault-connections-one) are unaffected.


Three Modes

ModeTools exposedInitial tokensBest for
dynamic (default)4 meta-tools~1,300General-purpose agents, token-sensitive contexts
staticAll endpoint tools + workflows~35–55KFocused agents doing a specific API
codeapideck_search + apideck_run~600Agents that call endpoints programmatically via JS
Dynamic mode

Agents discover tools progressively — ~85% fewer tokens than loading all 380+ schemas upfront:

list_tools({})

→ { total: , domains: [{ name: "accounting", count: }, ...], hint: "Call list_tools(domain=X) or list_tools(search_terms=[...])" }

list_tools({"search_terms": ["invoices"]}) → accounting-invoices-all, accounting-invoices-add, accounting-invoices-one, ...

describe_tool_input({"name": "accounting-invoices-all"}) → Full JSON Schema with all parameters

execute_tool({"name": "accounting-invoices-all", "input": {"limit": 10}}) → Invoice data from the connected accounting system

Put operation fields directly in input, using the contract returned by describe_tool_input. Dynamic execution validates the arguments before dispatch; malformed wrappers and schema violations return isError: true with code: "invalid_tool_input", a field path or issue paths, and no downstream call. Write tools also reject unknown top-level fields, so nothing undeclared reaches the API. Validation errors do not echo submitted values. Per-call consumer_id and service_id overrides remain supported; identity-lock rules still apply. When a service_id is set, list_tools only lists tools the connector supports, and calls to an unsupported resource return code: "unsupported_resource", which means the connector can't serve it, not that the result is empty. Request schemas omit read-only response fields, while r

Only the beginning is shown; read the rest in the repo

Ask PopNx