@ialejandro/mcp-malt

中文文档
1.1.4发布于 2026/11/01MITTypeScriptES Module构建来源已验证

MCP server for the Malt API: invoices, payments, service charges and SCIM user provisioning.

原始使用文档
文档目录13 节
  1. What this does and does not cover
  2. Getting a token
  3. Install
  4. npx
  5. Claude Code
  6. Docker
  7. From source
  8. Configuration
  9. Common tasks
  10. Documentation
  11. Development
  12. Contributing
  13. License

mcp-malt

[!NOTE] This project is not affiliated with Malt.

An MCP server for the Malt API. It covers all 13 operations Malt publishes: the invoices you issue, the commission Malt bills you, the payments you receive, and SCIM user provisioning for organization accounts.

What this does and does not cover

Malt's API is smaller than most people expect. It covers back office billing and enterprise user provisioning, and nothing else:

ToolsetToolsWhat it reaches
invoices3Invoices you issued to clients, including the PDF
payments1Payments received, with the invoices each one settles
fee-invoices3Malt's commission invoices to you, including the PDF
scim2 read, 4 writeSCIM 2.0 user provisioning for an organization account

There is no talent search, no profiles, no missions, no offers, and no messaging. Those are what Malt is known for, and none of them are in the public API. If that is what you came for, this server cannot give it to you, and neither can anything else built on the documented API.

Two community MCP servers for Malt do reach that data, by driving the web app with browser automation and scraping the DOM. Their own documentation warns that automating profile edits may breach Malt's terms of service. This server only calls the documented API.

Getting a token

  1. Create an identity on the signup page if you do not have one.
  2. Open My Account, then API Keys.
  3. Create an access token with the permission scopes you need. Match them to the toolsets you plan to enable.
  4. Copy the token straight away. It is shown once, at creation, and never again.

Freelancer account tokens are self served. Client team and organization tokens, which the scim toolset needs, come through your Malt representative.

There is no OAuth 2.0 here. Malt publishes no authorization server and no token endpoint, so the API token above is the only way in. docs/authentication.md explains this in more detail, including the header detail that trips most people up.

Install

Published three ways from one release: the npm package on npmjs and on GitHub Packages, and the container image on GHCR. npx is the usual choice for an MCP client; Docker suits a locked-down or shared setup.

Pin a version in the examples below. An MCP server runs with your API token, so an unpinned @latest means a new release starts running on your machine without you choosing it.

npm install @ialejandro/[email protected]

To move to a newer version, bump the number in your client config and restart the client. The releases page lists what changed in each one.

To install from GitHub Packages instead of npmjs, point the scope at it: @ialejandro:registry=https://npm.pkg.github.com in your .npmrc.

npx

// Claude Desktop: claude_desktop_config.json
// Cursor: .cursor/mcp.json
{
  "mcpServers": {
    "malt": {
      "command": "npx",
      "args": ["-y", "@ialejandro/[email protected]"],
      "env": {
        "MALT_API_TOKEN": "your-token-here",
        "MALT_TOOLSETS": "invoices,payments,fee-invoices"
      }
    }
  }
}

Claude Code

claude mcp add malt \
  --env MALT_API_TOKEN=your-token-here \
  --env MALT_TOOLSETS=invoices,payments,fee-invoices \
  -- npx -y @ialejandro/[email protected]

Docker

The server speaks JSON-RPC over stdin and stdout, so -i is required and -t must be left off.

docker run -i --rm \
  -e MALT_API_TOKEN=your-token-here \
  -e MALT_TOOLSETS=invoices \
  ghcr.io/ialejandro/mcp-malt:1.0.0
// Claude Desktop: claude_desktop_config.json
// Cursor: .cursor/mcp.json
{
  "mcpServers": {
    "malt": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MALT_API_TOKEN",
        "-e", "MALT_TOOLSETS",
        "ghcr.io/ialejandro/mcp-malt:1.0.0"
      ],
      "env": {
        "MALT_API_TOKEN": "your-token-here",
        "MALT_TOOLSETS": "invoices,payments,fee-invoices"
      }
    }
  }
}

From source

git clone https://github.com/ialejandro/mcp-malt
cd mcp-malt
npm ci && npm run build
{
  "mcpServers": {
    "malt": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-malt/dist/index.js"],
      "env": {
        "MALT_API_TOKEN": "your-token-here",
        "MALT_TOOLSETS": "invoices,payments,fee-invoices"
      }
    }
  }
}

Configuration

VariableDefaultWhat it does
MALT_API_TOKENrequiredYour token from My Account, API Keys
MALT_TOOLSETSemptyComma list of invoices, payments, fee-invoices, scim, or all
MALT_ALLOW_WRITESfalseExposes the four SCIM write tools. scim alone gives you reads only
MALT_MAX_LIST_ITEMS200Caps list results, since Malt does not paginate the billing endpoints
MALT_RATE_LIMIT_RPS5Outbound pacing. Our number, not Malt's, which publishes none
MALT_TIMEOUT_MS30000Per request timeout
MALT_API_BASE_URLhttps://api.malt.comOverride, mostly for testing
MALT_AUTH_SCHEMErawraw or bearer. Leave it alone unless Malt changes
MALT_LOG_LEVELinfodebug, info, warn, error. All logging goes to stderr

With no MALT_TOOLSETS the server starts and offers nothing. That is deliberate, not a failure: you decide what a model gets to see. Add toolsets one at a time.

An unknown toolset name stops the server with an error rather than being ignored, because a typo that silently costs you three tools is miserable to debug.

Common tasks

You never name a tool yourself. You say what you want, the model picks from the tools the server registered at startup, and the server turns each call into an HTTP request to Malt with your token attached. docs/examples.md walks through each of these end to end, showing the tool calls and the responses.

Reconcile a quarter. Enable invoices,payments,fee-invoices and run the malt_reconcile_revenue prompt. It pulls all three lists, matches payments to the invoices they settle, and reports gross billed, tax, Malt's commission, and cash received.

Reconcile my Malt revenue for Q1 2026.

Get an invoice PDF. Malt returns PDFs base64-encoded inside a JSON body. The tools decode them and hand back a real PDF attachment.

Download the PDF for invoice INV-123456.

Offboard someone. Enable scim with MALT_ALLOW_WRITES=true and use malt_user_lifecycle. It deactivates rather than deletes, which is the path Malt actually supports.

Offboard [email protected] from our Malt organization.

Documentation

Development

npm ci
npm run typecheck
npm test
npm run build
npm run check-spec   # diff the live Malt spec against spec/malt-openapi.json

Tests mock fetch and never call the live API.

spec/malt-openapi.json is a committed snapshot of Malt's published document. A daily workflow diffs the live spec against it and opens a PR when anything moves. Malt has kept info.version at 0.0.1 throughout, so the check compares operations rather than trusting the version number.

Contributing

See CONTRIBUTING.md. Adding an endpoint or a toolset is described in docs/extending.md.

License

MIT

版本与发布记录

@ialejandro/mcp-malt 共发布 6 个版本,首次发布于 2026/08/24;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.1.4latest2026/11/012 天前
1.1.32026/10/268 天前
1.1.22026/10/268 天前
1.1.12026/10/258 天前
1.1.02026/08/242 个月前
1.0.02026/08/242 个月前

关于 @ialejandro/mcp-malt 的常见问题

@ialejandro/mcp-malt 是什么?

用于麦芽API的MCP服务器:发票、付款、服务费和SCIM用户配置。

如何安装 @ialejandro/mcp-malt?

在项目目录运行 npm install @ialejandro/mcp-malt,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-malt,可以用 npx mcp-malt 直接运行。

@ialejandro/mcp-malt 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ialejandro/mcp-malt 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@ialejandro/mcp-malt 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ialejandro/mcp-malt 可以商用吗?

@ialejandro/mcp-malt 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ialejandro/mcp-malt 还在维护吗?

最新版本 1.1.4 发布于 2026/11/01(2 天前);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/08/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。