agentleFS
apideck-librariesapideck-libraries/api-skills/skills/apideck-mcp/SKILL.md

apideck-mcp

Skill4 starsChanged 3 months agoApache-2.0View on GitHub

Front-door skill for the Apideck MCP server — 330 unified-API tools across 10 domains plus 4 intent-grouped workflow tools, exposed via dynamic discovery. Use when the user is building an MCP-based agent (Claude Code, OpenAI Agents SDK, Pydantic AI, LangChain) and wants to integrate with any of the 200+ SaaS connectors Apideck covers. Hosted at mcp.apideck.dev/mcp; stdio transport via `npx -y @apideck/mcp` for local development.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    HANDLE URL elicitations: when an upstream call hits a missing/expired Vault connection, the server throws UrlElicitationRequiredError (MCP …

    line 54
  2. Very specific:

    USE x-apideck-service-id: when a consumer has multiple connections of the same unified API — e.g.

    line 55
  3. Very specific:

    Static mode: All 330+ tools listed up front, ~25-40K tokens.

    line 76

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Apideck MCP

The Apideck MCP server exposes the Unified API as Model Context Protocol tools. One MCP server, 330+ tools, 200+ SaaS connectors.

If you're building an agent that needs to read/write SaaS data — invoices, candidates, employees, files, tickets, customers — and your agent runtime supports MCP (Claude Code, Claude Desktop, Cursor, Windsurf, OpenAI Agents SDK, Pydantic AI, LangChain), this is usually the right choice over a language SDK.

When to prefer MCP over the language SDK

Use the MCP server when…Use a language SDK (apideck-node, apideck-python, …) when…
You're building an agent (LLM-driven control flow)You're building a deterministic backend integration
You want dynamic tool discovery — agent picks tools at runtimeYou know at compile time which methods you'll call
Your runtime already speaks MCP (Claude Code, Cursor, OpenAI Agents SDK, …)You're embedding Apideck inside a non-agent service
You want Vault OAuth elicitation handled for free (consent URLs surface as MCP elicitations)You'll wire OAuth flows yourself
Tool descriptions matter for agent decision-makingYour code knows which method to call regardless of description quality

Endpoints

Hosted:    https://mcp.apideck.dev/mcp
Stdio:     npx -y @apideck/mcp
Source:    https://github.com/apideck-libraries/mcp

Pass credentials via headers (HTTP)

x-apideck-api-key:      <your Apideck API key>
x-apideck-app-id:       <your application ID>
x-apideck-consumer-id:  <end-user / customer ID>

Pass credentials via env vars (stdio)

APIDECK_API_KEY=...  APIDECK_APP_ID=...  APIDECK_CONSUMER_ID=...  npx -y @apideck/mcp

IMPORTANT RULES

  • PREFER dynamic mode (?mode=dynamic or --dynamic, the default). It exposes 4 meta-tools — list_tools, describe_tool_input, execute_tool, list_scopes — instead of 330 individual tools, dropping initial token cost from ~25-40K to ~1,300. Switch to static mode only for small fixed tool sets.
  • CALL list_tools first with relevant search_terms (["accounting", "invoices"], ["hris", "employees"]). Don't enumerate 330 tools.
  • PREFER workflow tools over manual chains — see "Intent-grouped workflows" below. The agent that picks apideck-pay-bill instead of stitching accounting-bills-get + accounting-bill-payments-create will succeed more often and leak less context.
  • HANDLE URL elicitations: when an upstream call hits a missing/expired Vault connection, the server throws UrlElicitationRequiredError (MCP error code -32042) carrying a one-time consent URL. Surface this URL to the user, wait for them to complete OAuth, then retry the original tool call.
  • USE x-apideck-service-id when a consumer has multiple connections of the same unified API — e.g. the consumer connected both Xero and QuickBooks, and the user wants the call to target Xero. Without this, Apideck routes to whichever connection is first.
  • USE scopes to restrict an agent to a subset of capabilities — ?scopes=read for analysis agents, ?scopes=read,write to allow non-destructive changes, omit for full access. Scopes are enforced server-side, so a "read-only" agent literally cannot call destructive tools no matter what the prompt says.

Intent-grouped workflows

The MCP server ships 4 high-level workflow tools alongside the 330 endpoint tools. Each workflow orchestrates 2-4 underlying calls behind a single intent. Prefer these when they match the user's task — agents picking the right workflow succeed more often than agents stitching the chain manually.

WorkflowUse when…See
apideck-month-end-close-check"Give me a P&L / balance sheet / aged receivables snapshot"apideck-mcp-month-end-close
apideck-pay-bill"Pay bill X" / "Settle invoice X from supplier"apideck-mcp-pay-bill
apideck-receive-customer-payment"Record that customer paid invoice X"apideck-mcp-receive-payment
apideck-onboard-employee"Convert hired applicant X into an employee"apideck-mcp-onboard-employee

Workflows return a structured result with failingStep so you know which leg of the chain broke when something fails. Partial successes (e.g. one report unsupported by the connector) come back as useful data, not opaque errors.

Mode selection

The server supports three operational modes:

  • Dynamic mode (default): 4 meta-tools, ~1,300 initial tokens, agent discovers via list_tools. Use this.
  • Static mode: All 330+ tools listed up front, ~25-40K tokens. Use only when you're filtering to a tiny subset (e.g. ?include=accounting-invoices-list,accounting-invoices-get) and want the schemas resolved at handshake.
  • Code mode (?mode=code, experimental): Agent writes JavaScript against an apideck.* SDK in a sandbox. Beta — currently uses vm.createContext which isn't production-hardened. Skip for production agents.

Coverage

330 tools across these unified APIs:

APIToolsExamples
Accounting143invoices, bills, payments, suppliers, customers, P&L, balance sheet, journal entries
CRM50companies, contacts, leads, opportunities, pipelines, activities
File Storage32files, folders, drives, shared links, upload sessions
HRIS25employees, departments, payrolls, time-off requests
Vault23connections, consumers, sessions, custom mappings, logs
ATS15applicants, applications, jobs
Issue Tracking15tickets, comments, users, tags
Connector8API discovery, coverage metadata
Ecommerce7customers, orders, products, stores
Webhook6webhook subscriptions, logs
Proxy6direct GET/POST/PUT/PATCH/DELETE for connector-native endpoints not yet in the unified spec

Worked example: list invoices in dynamic mode

Agent: list_tools(search_terms: ["accounting", "invoices"])
→ Returns: [
    "accounting-invoices-list",
    "accounting-invoices-get",
    "accounting-invoices-create",
    "accounting-invoices-update",
    "accounting-invoices-delete"
  ]

Agent: describe_tool_input(tool_name: "accounting-invoices-list")
→ Returns: {
    filter: { updated_since, status, ... },
    cursor: string,
    limit: number,
    "x-apideck-service-id": string,
    ...
  }

Agent: execute_tool(
  tool_name: "accounting-invoices-list",
  input: { limit: 10, "x-apideck-service-id": "quickbooks" }
)
→ Returns: { data: [...], meta: { cursors: { next: "..." } } }

Initial cost: ~1,300 tokens for the meta-tools. The agent fetches schemas only for tools it intends to call.

Related skills

  • apideck-unified-api — the unified-API model itself; install this alongside apideck-mcp if your agent isn't already grounded on Apideck's routing model.
  • apideck-best-practices — auth patterns, pagination, error handling, Vault — applies to MCP usage too.
  • apideck-connector-coverage — how to verify a method is supported by a specific connector before calling it.
  • Per-workflow playbooks: apideck-mcp-pay-bill, apideck-mcp-receive-payment, apideck-mcp-onboard-employee, apideck-mcp-month-end-close.

Reference

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.