Skip to main content
Glama
svn4pro

Pancake POS MCP

by svn4pro

Pancake POS MCP

Pancake POS REST APIをラップしたModel Context Protocol (MCP) サーバー。ClaudeなどのAIアシスタントが、23の専用ツールと7つの参照リソースを使用してベトナムのEコマースPOS運用を管理できるようにします。

概要

Pancake POS MCPは、Pancake POS API (https://pos.pages.fm/api/v1) をModel Context Protocolツールとして公開し、Claudeやその他のAIアシスタントが以下のPOS管理を自動化できるようにします。

  • コアPOS: 注文、商品、顧客、在庫

  • サプライチェーン: 倉庫、サプライヤー、仕入れ、移動、棚卸し

  • 販売: 返品、交換、コンボ、プロモーション、クーポン

  • CRM: 連絡先、案件、活動

  • マルチチャネル: Eコマース (Shopee/Lazada/TikTok)、ライブストリームコマース

  • 運用: 従業員、Webhook、分析、店舗情報、住所検索

前提条件

  • Bun (ランタイム) — https://bun.sh からインストール (curl -fsSL https://bun.sh/install | bash)

  • Pancake POS APIキー + 店舗ID — 以下のPancake POS認証情報の取得を参照してください。これはPancake POS (Eコマース/在庫) APIであり、Pancakeユーザー/ソーシャルインボックスAPIではありません。製品が異なり、キーも異なります。

  • Node.js 18+ (オプション、開発ツール用)

クイックスタート

約5分で動作するMCPサーバーを構築します:

# 1. Clone the repo
git clone https://github.com/nguyennguyenit/pancake-pos-mcp.git
cd pancake-pos-mcp

# 2. Install dependencies
bun install

# 3. Configure credentials
cp .env.example .env
# Open .env and fill in PANCAKE_POS_API_KEY + PANCAKE_POS_SHOP_ID
# (See "Getting Pancake POS credentials" section below)

# 4. Verify it runs
bun run src/index.ts
# Expected output:
#   [pancake-pos-mcp] Server started on stdio transport
# Press Ctrl+C to stop.

# 5. Connect Claude Desktop — see "Stdio Transport" section below

ステップ4でエラーが表示される場合は、.envの値を確認し、bun installを実行したか確認してください。一般的な問題はトラブルシューティングに記載されています。

Pancake POS認証情報の取得

⚠️ Pancake POSPancake (ソーシャルインボックス)。このMCPは、https://pos.pages.fm にあるPancake POS製品(Eコマース/在庫/注文管理システム)でのみ動作します。pages.fmのPancakeユーザー/インボックスAPIは別の製品であり、異なるAPIキーを使用するため、ここではサポートされていません。

Pancake POSアカウントから2つの値が必要です:

  1. PANCAKE_POS_SHOP_ID — 店舗の数値ID

    • https://pos.pages.fm にログインし、URLまたは店舗設定を確認して数値の店舗IDを見つけます

  2. PANCAKE_POS_API_KEY — Pancake POS APIトークン

    • Pancake POSダッシュボード → Cài đặt (設定) → APIGenerate API key

    • キーは一度しか表示されないため、すぐにコピーしてください

両方の値を秘密にしてください。gitにコミットしないでください。.gitignoreはすでに.env.dev.varsを除外しています。

設定

必須 (クイックスタートで設定):

変数

用途

PANCAKE_POS_API_KEY

Pancake POS APIトークン

PANCAKE_POS_SHOP_ID

数値の店舗ID

オプション:

変数

デフォルト

用途

PANCAKE_POS_BASE_URL

https://pos.pages.fm/api/v1

APIエンドポイントのオーバーライド

PORT

3000

HTTPトランスポートポート

MCP_AUTH_TOKEN

(なし)

HTTP/Workers認証用のBearerトークン

使用方法

Stdioトランスポート (Claude Desktop)

デフォルトモード。Claude Desktopの設定 claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "pancake-pos": {
      "command": "bun",
      "args": ["run", "/path/to/pancake-pos-mcp/src/index.ts"]
    }
  }
}

HTTPトランスポート (リモートアクセス)

ストリーミング可能なHTTPトランスポートを有効にします:

bun run src/index.ts --http

サーバーは http://localhost:3000/mcp で起動します。ヘルスチェック: http://localhost:3000/health

認証付き (本番環境で推奨):

# .env
PORT=3000
MCP_AUTH_TOKEN=your_secret_token

# Client usage
curl -H "Authorization: Bearer your_secret_token" http://localhost:3000/mcp

Cloudflare Workers (サーバーレスエッジ)

Cloudflare Workersにグローバルにデプロイし、どこからでも低遅延でアクセスできるようにします:

# Local development (uses .dev.vars for secrets)
cp .dev.vars.example .dev.vars
# Edit .dev.vars with your credentials
bun run dev:workers
# Runs at http://localhost:8787

# Deploy to Cloudflare
wrangler login
bun run deploy

# Set production secrets
wrangler secret put PANCAKE_POS_API_KEY
wrangler secret put PANCAKE_POS_SHOP_ID
wrangler secret put MCP_AUTH_TOKEN

Workers URL: https://pancake-pos-mcp.<your-subdomain>.workers.dev/mcp

mcp-remote経由でClaude Desktopを接続:

{
  "mcpServers": {
    "pancake-pos": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://pancake-pos-mcp.<your-subdomain>.workers.dev/mcp",
        "--header", "Authorization: Bearer <your-token>"
      ]
    }
  }
}

Workersの特性: アップストリーム呼び出しごとに8秒のタイムアウト、2回のリトライ、レート制限無効 (リクエストごとのステートレスモデル)。無料枠: 1日10万リクエスト。詳細はデプロイガイドを参照してください。

利用可能なツール

ツール

フェーズ

説明

manage_orders

1

注文の作成、読み取り、更新、削除、印刷、出荷、ステータス管理

manage_products

1

バリエーションと価格を含む商品カタログの管理

manage_customers

1

顧客のCRUD、ポイント、取引履歴

manage_inventory

1

倉庫、カテゴリ、サプライヤーでフィルタリングされた在庫レポート

manage_warehouses

2

倉庫のCRUDと設定

manage_suppliers

2

サプライヤーの連絡先とプロファイル管理

manage_purchases

2

発注書と入荷在庫

manage_transfers

2

倉庫間移動の管理

manage_stocktaking

2

実地棚卸し記録

manage_returns

3

注文の返品と交換処理

manage_combos

3

商品バンドル販売と期間限定オファー

manage_promotions

3

割引キャンペーン (パーセント/金額ベース)

manage_vouchers

3

クーポンコードの生成と使用状況の追跡

manage_crm_contacts

4

CRM連絡先のCRUDと関係管理

manage_crm_deals

4

販売パイプラインの案件とステージ

manage_crm_activities

4

連絡先/案件に紐付く通話、会議、タスク、メモ

manage_ecommerce

4

マルチチャネル同期 (Shopee, Lazada, TikTok)

manage_livestream

4

ライブ販売セッションの管理とスケジュール

manage_employees

5

スタッフ管理と倉庫割り当て

manage_webhooks

5

イベントサブスクリプションとWebhook設定

get_statistics

5

在庫、販売、注文の分析 (グループ化可能)

get_shop_info

5

店舗プロファイル情報と設定

lookup_address

5

ベトナムの住所階層 (省 → 郡 → 村)

利用可能なリソース

静的参照リソース (認証不要):

リソース

内容

order-statuses

ベトナム語/英語名付きの16の注文ステータスコード

order-sources

販売チャネルコード (Facebook, Shopee, Lazadaなど)

sort-options

注文リスト用の22のソートオプション

webhook-events

Webhookイベントタイプ (order.created, order.updatedなど)

error-codes

HTTPエラーコード参照

rate-limits

APIレート制限 (1000/分, 10000/時間)

shipping-partners

配送パートナーのライブデータ (APIからキャッシュ)

アーキテクチャ

  • APIクライアント: トークンバケットレート制限 (1000/分, 10000/時間)、指数バックオフリトライ (3回試行)

  • ツール: ビジネスドメインごとに整理された23のMCPツール

  • スキーマ検証: 厳密なランタイム検証のための判別共用体を持つZod

  • トランスポート: Stdio (デフォルト) + ストリーミング可能なHTTP + オプションのBearerトークン認証付きCloudflare Workers

  • エラー処理: コードとメッセージを含む構造化されたエラーレスポンス

開発

型チェック

bun run typecheck

テストの実行

bun run test       # vitest (includes Workers tests)

プロジェクト構造

src/
├── api-client/              # HTTP layer with rate limiting
│   ├── pancake-http-client.ts
│   ├── request-builder.ts
│   └── response-parser.ts
├── tools/                   # 23 MCP tools (23 files)
├── resources/               # MCP reference resources
├── shared/                  # Schemas, errors, pagination
├── config.ts                # Environment configuration
├── server.ts                # MCP server factory
├── worker.ts                # Cloudflare Workers entry point
└── index.ts                 # Entry point (stdio + HTTP)

開発ガイドラインの詳細はdocs/code-standards.mdを参照してください。

ドキュメント

トラブルシューティング

いくつかの注意点:

  • 429 Too Many Requests — Pancakeのレート制限 (1000/分, 10000/時間) に達しました。組み込みのトークンバケットが自動的にスロットリングします。呼び出し側の並列処理を減らしてください。

  • テストが Cannot find package 'cloudflare:test' で失敗する — ネイティブの bun test ではなく bun run test (vitest) を使用してください。Workersのテストにはvitestプールワーカープラグインが必要です。

  • Claude Desktopがツールを認識しないclaude_desktop_config.jsoncommand/args パスは絶対パスである必要があります。設定を編集した後はClaude Desktopを再起動してください。

その他のエラーについては、エラーメッセージを確認し、.envの認証情報を検証してください。

ライセンス

MITライセンス — 全文はLICENSEファイルを参照してください。

A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/svn4pro/pancake-pos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server