mcpField
A
Apideck MCP Server

Apideck MCP Server

リモート
apideck.comビジネス・マーケティング206 日前に更新
リポジトリ公式サイト

Apideck MCP Server について

Apideck MCP Serverは、会計、CRM、人事などにわたるApideck Unified APIの操作を、単一のMCPエンドポイントからエージェントに提供します。段階的なツール探索や、簡潔なコード実行向けモードを選べます。

主な機能

  1. 0110種類のAPIにまたがる330ツール
  2. 02段階的なツール探索
  3. 03静的モードとコード実行モード
  4. 04HTTPメソッドによるツール絞り込み
  5. 05ホスト型HTTPとローカルstdio

活用シーン

  1. 01会計記録やレポートの管理
  2. 02CRM連絡先の検索と更新
  3. 03ファイルや人事データの操作
  4. 04読み取りや書き込み操作に制限

MCP 対応

会計、CRM、人事、ファイルストレージなどのApideck Unified API操作をMCPツールとして公開します。クライアントはホスト型HTTPエンドポイントに接続するか、ローカルでstdio経由で実行できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.apideck.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.apideck.dev/mcp認証が必要
パッケージ
npm@apideck/mcp0.1.13

ツール

4
パラメーター型必須説明
scopeenumいいえ変更範囲で絞り込みます:"read"(書き込みなし)、"write"(作成/更新)、または "destructive"(削除/上書き)。省略すると、すべての範囲が含まれます。read | write | destructive
domainstringいいえ結果を単一のツールドメインに限定します(例:"accounting"、"hris")。省略すると、ドメイン横断インデックスを取得します。引数なしの前回の呼び出しで返されたキーを使用します。
search_termsarrayいいえツール名/説明内で、大文字と小文字を区別しない部分文字列条件を AND で照合します(例:["invoice","create"])。省略すると、そのドメインのすべてのツールを一覧表示します。

詳細

Apideck MCP サーバー

npm バージョン MCP レジストリ Glama スコア voke MTQS ライセンス:MIT

Apideck Unified API 用の Model Context Protocol サーバーです。あらゆる MCP 対応エージェントを、会計システム、HRIS プラットフォーム、CRM、ファイルストレージなど、200 以上のコネクターに 1 つのインテグレーションで接続できます。

クイック接続

Cursor にインストール VS Code にインストール

Claude Desktop(.mcpb バンドル)

おすすめ — ビルド済みバンドル:

ビルド済みの mcp-server.mcpb を Claude Desktop にドラッグ&ドロップします。Claude が manifest.json を読み込み、認証情報の入力を求めてサーバーを起動するため、手動で設定する必要はありません。

メモ

デスクトップ拡張機能の詳細をご覧ください。

ローカル stdio(npx)を使う方法:

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %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"
      }
    }
  }
}

保存後、Claude Desktop を再起動します。特定のバージョンを固定するには、@apideck/mcp を @apideck/[email protected] に置き換えます。

Claude Code CLI

シェルで認証情報を設定します。

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

ホスト型(おすすめ):

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"

ローカル 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

start コマンドは環境変数からのみ認証情報を読み込みます。--api-key / --consumer-id / --app-id フラグは受け付けません。

Windsurf

Settings → Cascade → Manage MCPs → View raw config の順に選択し、次を貼り付けます。

{
  "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"
      }
    }
  }
}
任意の MCP クライアント(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 プラグインバンドル)

Apideck は Claude プラグインバンドル(.mcpb — Anthropic の Model Context Protocol Bundle 形式)を提供しています。これを Claude Desktop にドロップすると、標準のプラグイン UI から API キー/コンシューマー ID/アプリ ID の入力を求める、完全なサーバー(330 個のエンドポイントツール + 4 個のワークフローツール)を利用できます。

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

バンドルはローカルでビルドされます。GitHub Releases への CI による公開は延期されています。.mcpb を Claude Desktop のプラグインインストーラーで開くと、Claude Desktop が manifest.json を読み込んで認証情報を設定し、サーバーを起動します。


ツール

10 種類の統合 API にわたる 330 個のツール:

APIツール数対応範囲
Accounting143請求書、買掛金、支払い、サプライヤー、顧客、仕訳、元帳勘定、発注書、税率、損益計算書、貸借対照表など
CRM50企業、連絡先、見込み客、商談、パイプライン、メモ、アクティビティ、ユーザー
File Storage32ファイル、フォルダー、ドライブ、共有リンク、アップロードセッション
HRIS25従業員、企業、部門、給与、休暇申請
Vault23接続、コンシューマー、セッション、カスタムマッピング、ログ
ATS15応募者、応募、求人
Issue Tracking15コレクション、チケット、ユーザー、タグ、コメント
Connector8API、コネクター、リソース、対応範囲のメタデータ
Ecommerce7顧客、注文、商品、ストア
Webhook6Webhook サブスクリプション、ログ
Proxy6GET、POST、PUT、PATCH、DELETE、OPTIONS
ワークフローツール

意図ごとにまとめられたワークフローでは、複数の呼び出しを単一の MCP ツールの背後で実行します。エージェントが頻繁に誤る往復処理やフィールドの受け渡しを省けます。

ツール機能呼び出し数
apideck-month-end-close-check滞留買掛金、滞留売掛金、貸借対照表、損益計算書を並列で呼び出します。一部のレポートがコネクターでサポートされていない場合は、部分的な結果を返します。4

ホスト型

サーバーは次の場所で稼働しています。

https://mcp.apideck.dev/mcp

ヘッダーで認証情報を渡します。

ヘッダー説明
x-apideck-api-keyApideck API キー
x-apideck-consumer-idアプリ内のエンドユーザー/顧客 ID(任意。詳細は以下を参照)
x-apideck-app-idApideck アプリケーション ID
x-apideck-auth-type任意。API キーの代わりに Vault セッショントークンで認証するには、JWT を設定します
Vault セッショントークン(JWT)

エンドユーザーのブラウザーやエージェントが API キーを使わずにツールを呼び出せるようにするには、バックエンドで Vault セッション を作成し、代わりに session_token を渡します。

Authorization: Bearer <session_token>
x-apideck-auth-type: JWT
x-apideck-app-id: <your app ID>
x-apideck-consumer-id: <the session's consumer ID>

サーバーは API Explorer によるセッション認証と同様に、すべての Apideck API 呼び出しに x-apideck-auth-type: JWT を転送します。それ以外の値では API キー認証が維持されます。いくつかの制限があります。

  • このヘッダーは、リクエストにベアラートークンが含まれている場合にのみ有効です。サーバー自身の APIDECK_API_KEY が JWT として送信されることはありません。
  • セッショントークンでは新しい Vault セッションを作成できません。接続の再認証が必要な場合、ツールは再認証リンクではなく、通常のエラーメッセージを返します。
  • JWT 認証は HTTP でのみ機能します。stdio CLI では常に API キーが使用されます。
コンシューマーのスコープ設定(任意)

接続時にコンシューマー ID を指定する必要はありません。APIDECK_CONSUMER_ID/ x-apideck-consumer-id を設定せずにサーバーをスコープなしで起動し、各ツールに consumer_id 引数を渡すことで、呼び出しごとにコンシューマーを指定または上書きできます。

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

優先順位:呼び出しごとの consumer_id 引数が、APIDECK_CONSUMER_ID 環境変数/x-apideck-consumer-id ヘッダーより優先されます。

  • スコープなしの呼び出しは、Webhook ログ(webhook-event-logs-all)や vault-connections-all など、コンシューマーを必要としないアプリケーションスコープのエンドポイントで機能します。
  • コンシューマースコープのエンドポイントをコンシューマーなしで呼び出すと、Apideck の「consumer required」エラーが返されます。そのため、これらのエンドポイントでは consumer_id(または環境変数/ヘッダー)を設定してください。
ID の固定(オプトイン)

起動時のヘッダー/環境変数で ID を固定し、エージェントが呼び出しごとにコンシューマーや接続を切り替えられないようにするには、--lock-identity(CLI)を指定するか、?lock_identity=true(ホスト型)を追加して起動します。固定した呼び出しでは、呼び出しごとの consumer_id/service_id 引数は無視されます。デフォルトでは無効です。consumer_id をパスパラメーターとして受け取る Vault のコンシューマーツール(例:vault-consumers-one)では、固定されたコンシューマーのみが受け付けられます。それ以外の値や、コンシューマーが固定されていない場合は拒否されます。service_id パスパラメーター(例:vault-connections-one)には影響しません。


3 つのモード

モード公開されるツール初期トークン数最適な用途
dynamic(デフォルト)4 つのメタツール~1,300汎用エージェント、トークンに制約のあるコンテキスト
static330 個すべてのツール~35–55K特定の API に特化して作業するエージェント
codeapideck_search + apideck_run~600JS 経由でエンドポイントをプログラムから呼び出すエージェント
Dynamic モード

エージェントはツールを段階的に検出します。330 個すべてのスキーマを最初に読み込む場合と比べて、トークンを約 85% 削減できます。

list_tools({})
  → { total: 330, domains: [{ name: "accounting", count: 143 }, ...],
      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

describe_tool_input が返す契約に従い、操作フィールドを input に直接指定してください。Dynamic モードでの実行では、ディスパッチ前に引数が検証されます。ラッパーの形式が不正な場合やスキーマに違反している場合は、下流への呼び出しを行わず、フィールドパスまたは問題のパスとともに isError: true および code: "invalid_tool_input" が返されます。書き込みツールでは、トップレベルに未知のフィールドがある場合も拒否されるため、宣言されていない内容が API に渡ることはありません。検証エラーでは、送信された値は返されません。呼び出しごとの consumer_id および service_id による上書きは引き続きサポートされますが、ID ロックのルールは引き続き適用されます。リクエストスキーマでは読み取り専用のレスポンスフィールドは省略されますが、書き込み可能なリンク ID と必須のパス ID は保持されます。これによって冪等性が追加されるわけではなく、書き込みの再試行が安全になるわけでもありません。

Dynamic モードはスコープフィルターと組み合わせることもできます。

{
  "mcpServers": {
    "apideck": {
      "command": "node",
      "args": ["dist/bin/mcp.js", "--mode", "dynamic", "--scope", "read"],
      "env": { "APIDECK_API_KEY": "...", "APIDECK_CONSUMER_ID": "...", "APIDECK_APP_ID": "..." }
    }
  }
}
Code モード

Code モードでは、330 個以上のツールの代わりに 2 つのツールを公開します。ツール呼び出しではなく、メソッドとしてエンドポイントを呼び出したいエージェント向けに設計されています。

  1. apideck_search — 部分文字列でエンドポイントを検索し、camelCase のメソッド名を返します
  2. apideck_run — ライブのエンドポイントディスパッチャーにバインドされた apideck.<methodName> を使って JS スクリプトを実行し、node:vm でサンドボックス化します
apideck_search("invoices")
  → {
      count: 4,
      endpoints: [
        { name: "accounting-invoices-list",   method: "accountingInvoicesList" },
        { name: "accounting-invoices-create",  method: "accountingInvoicesCreate" },
        { name: "accounting-invoices-get",     method: "accountingInvoicesGet" },
        { name: "accounting-invoices-delete",  method: "accountingInvoicesDelete" }
      ]
    }

apideck_run({
  script: "return await apideck.accountingInvoicesList({ request: { limit: 5 } })"
})
  → Invoice data from the connected accounting system

サンドボックスでは process、require、fs、child_process、その他の Node グローバルが除去され、スクリプトからアクセスできるのは apideck オブジェクトのみです。


スコープ

HTTP メソッドの種類でツールを絞り込みます。

スコープHTTP メソッドフラグ
readGET、HEAD--scope read
writePOST、PUT、PATCH--scope write
destructiveDELETE--scope destructive

フラグを繰り返すと、スコープを組み合わせられます(--scope read --scope write)。ホステッドエンドポイントでは、カンマ区切りのクエリパラメーターを使用します:?scopes=read,write。無効な値や空の値は拒否されます(CLI の解析エラー/HTTP 400)。スコープは code を含むすべてのモードに適用されます。


あらゆるエージェントフレームワークから接続

リモート(ホステッド — ローカルへのインストール不要)
# OpenAI Agents SDK
from agents import Agent
from agents.mcp import MCPServerHTTP

agent = Agent(
    name="Apideck Agent",
    mcp_servers=[MCPServerHTTP(
        url="https://mcp.apideck.dev/mcp",
        headers={
            "x-apideck-api-key": "...",
            "x-apideck-consumer-id": "...",
            "x-apideck-app-id": "..."
        }
    )]
)
# Pydantic AI
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerHTTP

agent = Agent("anthropic:claude-sonnet-4-5", mcp_servers=[
    MCPServerHTTP(
        url="https://mcp.apideck.dev/mcp",
        headers={
            "x-apideck-api-key": "...",
            "x-apideck-consumer-id": "...",
            "x-apideck-app-id": "..."
        }
    )
])
# LangChain / LangGraph
from langchain_mcp_adapters.client import MultiServerMCPClient

client = MultiServerMCPClient({
    "apideck": {
        "url": "https://mcp.apideck.dev/mcp",
        "transport": "streamable_http",
        "headers": {
            "x-apideck-api-key": "...",
            "x-apideck-consumer-id": "...",
            "x-apideck-app-id": "..."
        }
    }
})
tools = await client.get_tools()
ローカル stdio(開発用)
pnpm install
pnpm build

# Dynamic mode (default)
APIDECK_API_KEY=... APIDECK_CONSUMER_ID=... APIDECK_APP_ID=... node dist/bin/mcp.js start

# Static mode (all 330 tools)
APIDECK_API_KEY=... node dist/bin/mcp.js start --mode static

# Code mode
APIDECK_API_KEY=... node dist/bin/mcp.js start --mode code

# Read-only
APIDECK_API_KEY=... node dist/bin/mcp.js start --scope read
# OpenAI Agents SDK (local stdio)
from agents import Agent
from agents.mcp import MCPServerStdio

mcp = MCPServerStdio(name="apideck", params={
    "command": "node",
    "args": ["dist/bin/mcp.js", "start", "--mode", "dynamic"],
    "env": {
        "APIDECK_API_KEY": "...",
        "APIDECK_CONSUMER_ID": "...",
        "APIDECK_APP_ID": "..."
    }
})
agent = Agent(name="Apideck Agent", mcp_servers=[mcp])

信頼性

ランタイムは失敗したリクエストを自動的に再試行するため、一時的なエラーがエージェントに通知されることはありません。

  • 再試行されるステータスコード:408、500、502、503、504
  • 再試行されるネットワークエラー:ECONNRESET、ECONNREFUSED、ETIMEDOUT など
  • 方式:指数バックオフ。最大 4 回まで試行し、間隔は最大 30 秒
  • 冪等性:再試行は GET、HEAD、PUT、DELETE、OPTIONS、TRACE でのみ実行されます。POST/PATCH は自動的に再試行されません

バイナリーコンテンツ

画像や音声を返す File Storage エンドポイントは、JSON 内の base64 文字列ではなく、ネイティブの MCP コンテンツブロックとして送信します。

{ "type": "image", "data": "<base64>", "mimeType": "image/png" }
{ "type": "audio", "data": "<base64>", "mimeType": "audio/mpeg" }

マルチモーダル MCP コンテンツに対応したエージェント(Claude、GPT-4o)は、生のバイト列を受け取るため、追加のデコード処理は不要です。


ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。