Askell

io.github.Neschadin由 GitHub 帳號 Neschadin 發布v0.5.0更新於 Nov 13, 2026

MCP server for the Askell payment and subscription API (Bun + stdio)

概覽

AI 產生的概覽

針對 Askell 付款與訂閱 API 的本機 MCP 伺服器,讓助理查找端點、檢視客戶、合約與帳務,並呼叫 API。

可以做什麼
  • 搜尋並檢視內建的 OpenAPI v1/v2 操作,包含參數、請求內容結構與錯誤碼
  • 呼叫唯讀端點(GET/HEAD),並自動追蹤分頁清單端點
  • 透過獨立的變更工具執行寫入操作(POST/PUT/PATCH/DELETE)
  • 檢視客戶及其訂閱與合約、合約帳務執行紀錄,以及帳務執行排查
  • 列出已設定的 webhook,其中 HMAC 密鑰會被遮蔽
  • 以資源形式載入 OpenAPI 規格與 webhook 事件文件,並提供內建指引技能
適用情境
當你使用 Askell 處理付款或訂閱,希望助理在聊天用戶端內查詢 API 操作、檢視客戶、合約與帳務資料,或直接發起 API 呼叫時適用。若同時需要正式與沙箱環境,可設定兩個獨立項目。
執行需求
透過 bunx(需 Bun 1.4.4 以上)或預先建置的執行檔以 stdio 在本機執行。需要 Askell 帳號,並在 ASKELL_PRIVATE_API_KEY 提供密鑰;ASKELL_PUBLIC_API_KEY 為選用,僅少數結帳與付款方式端點使用。ASKELL_ENV 選擇 production(預設)或 sandbox,密鑰無法跨主機使用。需要連線至 Askell API 的網路。
安裝前請注意
密鑰可存取真實的付款帳戶,應放在被 git 忽略的 dotenv 檔案中,盡量避免以明文寫入 JSON,測試時請使用沙箱密鑰。變更工具會建立、修改或刪除資料,預設確認模式依賴用戶端自身的核准介面,可考慮改為 elicit。客戶入口登入連結與小工具權杖會以完整內容回傳。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Askell,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

askell-mcp

MCP server for the Askell payment and subscription API.

Connect it to Cursor, Claude Desktop, or any MCP client to discover Askell endpoints, inspect customers/contracts/billing, and call the API. Reads and writes are separate tools so clients can show their own approval UI on mutations.

Requirements

  • An Askell account and secret API key (from the Askell dashboard). The public key is optional — only temporary payment-method and checkout status endpoints use it
  • One of:
    • Bun ≥ 1.4.4 (for bunx), or
    • a prebuilt binary from Releases (no Bun needed)

Quick start

Prefer two server entries if you have both production and sandbox keys. Tool names are the same on both; the client distinguishes them by the server key (askell-prod vs askell-sandbox). Each instance's instructions include the environment it is talking to.

Put keys in gitignored dotenv files, not in JSON. Copy .env.example:

  • .env — production (ASKELL_ENV=production and that dashboard's keys)
  • .env.sandbox — sandbox (ASKELL_ENV=sandbox and that dashboard's keys)

Bun does not auto-load .env.sandbox. --no-env-file stops the sandbox process from also reading a production .env that happens to sit in the cwd.

Cursor

Project file: .cursor/mcp.json. mcp.json.example is this shape. ${workspaceFolder} is the directory that contains that mcp.json (the repo root when the file is .cursor/mcp.json). In ~/.cursor/mcp.json, use an absolute envFile path.

With Bun:

json
{  "mcpServers": {    "askell-prod": {      "command": "bunx",      "args": ["--no-env-file", "x", "askell-mcp"],      "envFile": "${workspaceFolder}/.env"    },    "askell-sandbox": {      "command": "bunx",      "args": ["--no-env-file", "x", "askell-mcp"],      "envFile": "${workspaceFolder}/.env.sandbox"    }  }}

With a binary (download askell-mcp-<os>-<arch> from Releases, then chmod +x). Same envFile; the binary reads the environment Cursor injects:

json
{  "mcpServers": {    "askell-prod": {      "command": "/absolute/path/to/askell-mcp-linux-x64",      "envFile": "${workspaceFolder}/.env"    }  }}

Reload the window after saving.

Claude Desktop

Config file:

  • Linux: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

No envFile field. The desktop process cwd is not your repo, so a relative .env path does not resolve. With Bun, pass an absolute --env-file:

json
{  "mcpServers": {    "askell-prod": {      "command": "bunx",      "args": [        "--no-env-file",        "--env-file=/absolute/path/.env",        "x",        "askell-mcp"      ]    },    "askell-sandbox": {      "command": "bunx",      "args": [        "--no-env-file",        "--env-file=/absolute/path/.env.sandbox",        "x",        "askell-mcp"      ]    }  }}

A binary has no --env-file. Put the keys in env (plaintext in that JSON file):

json
{  "mcpServers": {    "askell-prod": {      "command": "/absolute/path/to/askell-mcp-linux-x64",      "env": {        "ASKELL_ENV": "production",        "ASKELL_PRIVATE_API_KEY": "your_production_secret_api_key",        "ASKELL_PUBLIC_API_KEY": "your_production_public_api_key_optional"      }    }  }}

Quit Claude Desktop completely and reopen it. Saving the file is not enough.

Claude Code

Project .mcp.json expands ${VAR} from the environment of the process that launched claude. It does not load a dotenv file. The Bun --env-file args from the Desktop section work here as well; a relative path is fine when you start claude from the repo. ${ASKELL_PRIVATE_API_KEY} inside env only works when that variable is already exported in that environment. A .env file alone is not read.

Configuration

VariableRequiredDefaultDescription
ASKELL_PRIVATE_API_KEYyes*—Secret API key (or ASKELL_SECRET_API_KEY)
ASKELL_PUBLIC_API_KEYno—Public key for a few checkout/payment endpoints
ASKELL_ENVnoproductionproduction | sandbox — selects the official API host
ASKELL_API_BASE_URLno—Custom/local API base only. Do not set together with ASKELL_ENV unless it matches
ASKELL_RESPONSE_MAX_BYTESno131072Max response size returned to the model
ASKELL_MUTATION_GATEnoautoauto / elicit / off — see below
ASKELL_REQUIRE_MUTATION_APPROVALno—Deprecated alias: true→elicit, false→off

ASKELL_ENV picks a stable host (same v1/v2 surface):

  • production — https://askell.is/api
  • sandbox — https://sandbox.askell.is/api (isolated tenant; keys from that dashboard)

Point a second MCP server entry at sandbox (ASKELL_ENV=sandbox) rather than switching env on one process. Keys do not work across hosts. Áskell Test Gateway is a payment acquirer (fake cards) on either host — not the same as the sandbox API. Official prose at docs.askell.is still documents Test Gateway and may omit the sandbox host.

ASKELL_MUTATION_GATE:

  • auto (default) — confirmation form only if this request's _meta envelope declared form elicitation (MCP 2026-07-28). 2025-era clients (Cursor, most hosts) do not send that envelope, so the mutation runs and their own “allow this tool” UI is the gate.
  • elicit — always return an elicitation form. The SDK refuses the call if the client cannot fulfil it (2026 envelope / 2025 initialize via the legacy shim).
  • off — never ask (eval / trusted automation).

If both ASKELL_MUTATION_GATE and ASKELL_REQUIRE_MUTATION_APPROVAL are set, ASKELL_MUTATION_GATE wins.

What you can do

Tools

ToolDescription
askell_list_operationsSearch bundled OpenAPI operations (paths, tags, error codes)
askell_describe_operationParams, body schema, and response/error codes for one operation
askell_callGET/HEAD any v1/v2 endpoint
askell_mutatePOST/PUT/PATCH/DELETE any v1/v2 endpoint
askell_paginate_allFollow paginated list endpoints
askell_customer_overviewv1 customer + subscriptions (+ optional v2 contracts)
askell_contract_overviewv2 subscription contract + billing runs
askell_billing_run_triagev2 billing run (+ optional contract)
askell_list_webhooksList configured webhooks (hmac_secret redacted)

hmac_secret is the only field redacted in tool output. Customer-portal sign-in URLs and widget tokens (POST /v2/customer-portal-entries/, POST /v2/customer-portal-sessions/) are returned in full so the browser can use them. Do not put the widget token in a URL.

Resources

URIContent
askell://spec/v1OpenAPI v1
askell://spec/v2OpenAPI v2
askell://docs/webhook-eventsWebhook event reference

Skills (SEP-2640)

Clients supporting MCP Skills (skills/list, skills/get) can load bundled guidance on demand:

SkillPurpose
askell-docsLive Askell docs workflow and integration traps (claims, coupons, checkouts, webhooks)
askell-mcpTool selection, discovery, read/mutate split, and prod vs sandbox safety

Docs: docs.askell.is · OpenAPI: v1 · v2

License

MIT

Contributing

See CONTRIBUTING.md for local development, tests, and releases.

來源:README.md,提交 dffe611

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未能啟動。

版本歷史

11
  1. v0.5.0最新Nov 13, 2026
  2. v0.4.27Nov 3, 2026
  3. v0.4.26Oct 29, 2026
  4. v0.4.25Oct 26, 2026
  5. v0.4.24Oct 16, 2026
  6. v0.4.23Oct 9, 2026
  7. v0.4.21Oct 5, 2026
  8. v0.4.20Oct 2, 2026
  9. v0.4.19Oct 1, 2026
  10. v0.4.18Sep 30, 2026
  11. v0.4.17Sep 25, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分