mcp-malt
[!请注意) 本项目不隶属于 麦芽.
MCP服务器 麦芽API。它涵盖了Malt发布的所有13个操作:您发出的发票、Malt给您开出的佣金、您收到的付款,以及为组织帐户提供SCIM用户。
这包括什么,不包括什么
Malt的API比大多数人预期的要小。它涵盖了后台计费和企业用户配置,仅此而已:
| 工具集 | 工具 | 它达到了什么程度 |
|---|---|---|
invoices | 3 | 你发给客户的发票,包括PDF |
payments | 1 | 收到的款项,以及各自结算的发票 |
fee-invoices | 3 | Malt给你的佣金发票,包括PDF |
scim | 2读,4写 | 组织帐户的SCIM 2.0用户配置 |
没有人才搜索,没有简介,没有任务,没有offer,没有信息。这些都是Malt出名的地方,它们都不在公共API中。如果这是您想要的,那么这个服务器无法满足您的要求,基于文档化API构建的其他任何东西也无法满足您的要求。
Malt的两个社区MCP服务器通过浏览器自动化驱动web应用并抓取DOM来获取这些数据。他们自己的文档警告说,自动编辑个人资料可能会违反Malt的服务条款。该服务器只调用文档化的API。
获得代币
- 上创建一个标识 注册页面 如果你没有的话。
- 开放 我的帐户,然后是API密钥.
- 创建具有所需权限范围的访问令牌。将它们与您计划启用的工具集相匹配。
- 立即复制令牌。它在创世时只显示一次,再也不会出现。
自由职业者账户令牌是自助服务的。客户端团队和组织令牌,其中 scim 工具集需求,请通过您的Malt代表。
这里没有OAuth 2.0。Malt不发布授权服务器和令牌端点,因此上面的API令牌是唯一的方法。 文档/ authentication.md 更详细地解释这一点,包括使大多数人困惑的标题细节。
安装
从一个版本中以三种方式发布 npmjs GitHub Packages和GHCR上的容器镜像。 npx 是MCP客户端的常用选择;Docker适合锁定或共享设置。
在下面的例子中固定一个版本。MCP服务器使用您的API令牌运行,因此未绑定 @latest 意味着一个新版本在你的机器上开始运行,而你没有选择它。
npm install @ialejandro/[email protected]
要移动到较新的版本,请在客户端配置中更改数字并重新启动客户端。这个 发布页面 列出每个文件中更改的内容。
要从GitHub Packages而不是npmjs安装,将作用域指向它: @ialejandro:registry=https://npm.pkg.github.com 在你的 .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 mcp add malt \
--env MALT_API_TOKEN=your-token-here \
--env MALT_TOOLSETS=invoices,payments,fee-invoices \
-- npx -y @ialejandro/[email protected]
码头工人
服务器通过标准输入和标准输出使用JSON-RPC,因此 -i 是必需的 -t 必须停止。
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"
}
}
}
}
从源
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"
}
}
}
}
配置
| 变量 | 默认的 | 它是做什么的 |
|---|---|---|
MALT_API_TOKEN | 要求 | 您的令牌从我的帐户,API密钥 |
MALT_TOOLSETS | 空 | 逗号列表 invoices, payments, fee-invoices, scim,或者 all |
MALT_ALLOW_WRITES | false | 公开四个SCIM写工具。 scim 独自一人只能给你阅读 |
MALT_MAX_LIST_ITEMS | 200 | Caps列出结果,因为Malt不对计费端点进行分页 |
MALT_RATE_LIMIT_RPS | 5 | 出站踱来踱去。我们的号码,不是麦特的,麦特没有公布 |
MALT_TIMEOUT_MS | 30000 | 每个请求超时 |
MALT_API_BASE_URL | https://api.malt.com | 覆盖,主要用于测试 |
MALT_AUTH_SCHEME | raw | raw 或者 bearer。不管它,除非麦芽改变 |
MALT_LOG_LEVEL | info | debug, info, warn, error。所有的日志记录都将出错 |
没有 MALT_TOOLSETS 服务器启动,但没有提供任何东西。这是有意为之,而不是失败:你决定模特能看到什么。每次添加一个工具集。
一个未知的工具集名称会用一个错误停止服务器,而不是被忽略,因为一个错别字会无声地耗费您三个工具,调试起来非常痛苦。
常见的任务
你从不自己给工具起名字。您说出您想要什么,模型从服务器在启动时注册的工具中选择,服务器将每个调用转换为附加您的令牌的HTTP请求。 文档/ examples.md 从头到尾遍历其中的每一个,显示工具调用和响应。
和解四分之一。 启用 invoices,payments,fee-invoices 然后运行 malt_reconcile_revenue 提示。它提取所有三个列表,将付款与它们结算的发票相匹配,并报告总账单、税收、麦芽的佣金和收到的现金。
调和我2026年第一季度的麦芽收入。
获取PDF格式的发票。 Malt返回JSON主体内base64编码的pdf文件。这些工具对它们进行解码,并返回一个真正的PDF附件。
请下载发票INV-123456的PDF文件。
Offboard某人。 启用 scim 与 MALT_ALLOW_WRITES=true 和使用 malt_user_lifecycle。它停用而不是删除,这是Malt实际支持的路径。
Offboard [email protected] 来自我们的麦芽组织。
文档
开发
npm ci
npm run typecheck
npm test
npm run build
npm run check-spec # diff the live Malt spec against spec/malt-openapi.json
测试模拟 fetch 永远不要调用实时API。
spec/malt-openapi.json 是Malt已发布文档的已提交快照。日常工作流程将实时规范与之区别开来,并在任何情况发生变化时打开PR。麦芽一直保持着 info.version 在 0.0.1 因此,检查比较操作而不是信任版本号。
贡献
看到 CONTRIBUTING.md。中描述了添加端点或工具集 文档/ extending.md.
许可证
麻省理工学院