mcp

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

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
80%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'describe_tool_input' description lacks action verbin describe_tool_input

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~554Tokens (tool definitions)
~1.0 KBTypical response size
Minimal attention impact (0.43% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "@apideck/mcp"
      ]
    }
  }
}

Runnable packages

npm@apideck/mcp0.1.13stdio

Remote endpoints

https://mcp.apideck.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_tools(domain, search_terms, scope)

Discover Apideck tools. Call with no args for domain index; filter with domain/search_terms/scope.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "description": "Restrict results to a single tool domain (e.g. \"accounting\", \"hris\"). Omit to get the cross-domain index. Use a key returned by a prior no-arg call.",
      "type": "string"
    },
    "search_terms": {
      "description": "Case-insensitive substring terms ANDed across a tool name/description (e.g. [\"invoice\",\"create\"]). Omit to list everything in the domain.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scope": {
      "description": "Filter by mutation scope: \"read\" (no writes), \"write\" (creates/updates), or \"destructive\" (deletes/overwrites). Omit to include all scopes.",
      "type": "string",
      "enum": [
        "read",
        "write",
        "destructive"
      ]
    }
  },
  "required": []
}
🟢describe_tool_input(name)

Return the JSON-Schema input contract for a tool by name.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Exact tool name to describe (e.g. \"accounting-invoices-create\"), as returned by list_tools."
    }
  },
  "required": [
    "name"
  ]
}
⚪execute_tool(name, input)

Invoke a tool by name. `input` is forwarded raw to the tool handler.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Exact tool name to invoke (e.g. \"accounting-invoices-create\"), as returned by list_tools."
    },
    "input": {
      "description": "Arguments object forwarded verbatim to the target tool. Its shape matches that tool's input schema (fetch it with describe_tool_input). Omit for tools that take no arguments.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "name"
  ]
}
🟢list_scopes

Return the list of allowed MCP scopes.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools