关于 figuard-mcp
figuard-mcp 将 FiGuard 支出控制接入 AI 助手,适用于希望授权 Agent 支出但不编写 SDK 代码的团队。其工具涵盖预算设置、付款前授权、结算和委托令牌管理。
主要功能
- 01创建和管理支出预算
- 02授权支出并返回原因
- 03确认、失败处理或作废预留
- 04查看预算与筛选账本
- 05管理有范围限制的委托令牌
适用场景
- 01为 Agent 的差旅支出创建预算
- 02付款前检查拟议采购
- 03核对实际扣款或释放失败预留
- 04用委托令牌设置每个 Agent 的支出上限
MCP 相关
figuard-mcp 向 MCP 客户端提供 14 个 FiGuard 工具,涵盖预算、授权、账本和委托操作。它通过配置的 API 密钥和基础 URL 连接正在运行的 FiGuard 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y figuard-mcpFIGUARD_API_KEY密钥FiGuard API key — set this (with FIGUARD_BASE_URL) to use a self-hosted FiGuard server. Leave unset to run embedded: in-process enforcement against a local SQLite file, no account or server needed.FIGUARD_BASE_URLSelf-hosted FiGuard server URL. Leave unset to run embedded against a local SQLite file.FIGUARD_DATABASEPath to the embedded SQLite file (default ~/.figuard/figuard.db). Embedded is the default backend — no server required.FIGUARD_MODEBackend mode: embedded | server | sandbox. Defaults to embedded when nothing else is configured.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
16收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| unit | string | 否 | 资源单位标签(例如 'tokens'、'api_calls')。资源预算必填。货币预算请省略。 |
| user_id | string | 是 | 此预算所属用户或 Agent 会话的标识符。 |
| currency | string | 否 | ISO 4217 货币代码(例如 'USD'、'EUR')。金钱预算必填。资源预算请省略。 |
| expires_in | string | 否 | 预算有效时长。接受 '24h'、'7d'、'30m' 或秒数。默认值为 '24h'。 |
| allocations | array | 否 | 可选的类别级别上限。每项 allocation 都是独立的最高限额——机票上限为 $300 时,无论其他类别支出多少,机票支出都不能超过 $300。Allocation 限额不得超过 total_limit,但无需加总等于该值——剩余部分为共享额度。例如:total_limit=1000,allocations=[{flights: 500}, {hotels: 200}]——有效,剩余 $300 为未分配额度。 |
| total_limit | number | 是 | Agent 获准支出的最高总金额。对于 USD 预算,此金额以美元计,而非美分。 |
| intent_context | string | 否 | 此预算用途的人类可读描述(可选)(例如,'Book travel to NYC for user_123')。 |
| external_reference | string | 否 | 此预算的稳定标识符(可选)(例如,'run-abc-123'、'order-456')。提供此值后,使用相同 external_reference 重新调用 figuard_create_budget 会返回现有的有效预算,而不会创建重复预算,因此可安全用于编排器重启。 |
| velocity_max_per_day | number | 否 | 滚动 24 小时窗口内的授权尝试次数上限。 |
| auto_pause_on_anomaly | boolean | 否 | 控制异常响应模式。为 true(默认值)时,异常请求会暂停预算,直到人工恢复前不允许继续支出。为 false(建议模式)时,异常请求仍会被拒绝并触发 ANOMALY_DETECTED webhook,但预算会保持 ACTIVE。适用于高吞吐量 Agent,避免单次激增导致整个集群停摆。 |
| velocity_max_per_minute | number | 否 | 滚动 1 分钟窗口内的授权尝试次数上限。超出时将以 VELOCITY_LIMIT_EXCEEDED 拒绝。 |
| anomaly_detection_enabled | boolean | 否 | 为 true 时,FiGuard 会监控支出请求中的统计异常。建议在生产环境中启用。 |
| velocity_max_amount_per_hour | number | 否 | 滚动 1 小时窗口内 requestedQuantity 总量的上限。 |
详细介绍
figuard-mcp
FiGuard MCP 服务 — 无需编写任何 SDK 代码,即可直接在 Claude Code、Cursor 或 Claude Desktop 中使用 FiGuard。
功能
为你的 AI 助手添加 14 个 FiGuard 工具。无需编写 SDK 代码,只需与 Claude 对话:
“创建一个 $500 的旅行预算,其中 $300 用于机票,$200 用于酒店” → Claude 调用
figuard_create_budget
“从此预算中授权一张 $149 的经济舱机票” → Claude 调用
figuard_authorize→ 返回 AUTHORIZED 或 DENIED
“机票最终花了 $147 — 确认实际金额” → Claude 调用
figuard_confirm
要求
- Node.js 18+
- 正在运行的 FiGuard 服务(本地或沙盒)
设置
Claude Code
claude mcp add figuard-mcp \
--env FIGUARD_API_KEY=fg_live_... \
--env FIGUARD_BASE_URL=http://localhost:8080
或者手动添加到 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"figuard": {
"command": "npx",
"args": ["figuard-mcp"],
"env": {
"FIGUARD_API_KEY": "fg_live_...",
"FIGUARD_BASE_URL": "http://localhost:8080"
}
}
}
}
Cursor
添加到项目中的 .cursor/mcp.json(或全局配置 ~/.cursor/mcp.json):
{
"mcpServers": {
"figuard": {
"command": "npx",
"args": ["figuard-mcp"],
"env": {
"FIGUARD_API_KEY": "fg_live_...",
"FIGUARD_BASE_URL": "http://localhost:8080"
}
}
}
}
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):
{
"mcpServers": {
"figuard": {
"command": "npx",
"args": ["figuard-mcp"],
"env": {
"FIGUARD_API_KEY": "fg_live_...",
"FIGUARD_BASE_URL": "http://localhost:8080"
}
}
}
}
使用沙盒(无需 Docker)
将 FIGUARD_BASE_URL 指向托管的沙盒,即可在不运行本地服务的情况下试用 FiGuard:
{
"FIGUARD_API_KEY": "sb_live_demo",
"FIGUARD_BASE_URL": "https://figuard-sandbox-g1ha.onrender.com"
}
可用工具
| 工具 | 功能 |
|---|---|
figuard_create_budget | 创建支出预算;返回 session_token |
figuard_authorize | 预先检查 — 返回 AUTHORIZED 或 DENIED 及原因 |
figuard_confirm | 成功后,按实际金额结算预留款项 |
figuard_fail | 操作失败时释放预留款项 |
figuard_void | 取消未使用的预留款项 |
figuard_get_budget | 查看预算状态、已支出、已预留和可用金额 |
figuard_get_ledger | 列出所有支出事件,并支持筛选 |
figuard_resume_budget | 恢复被异常检测暂停的预算 |
figuard_extend_budget | 延长预算的到期时间 |
figuard_cancel_batch | 一次调用取消最多 100 个预算 |
figuard_fund_budget | 调整预算总限额(CREDIT / DEBIT / RESET / RESET_SPENT) |
figuard_create_delegation_token | 为各 Agent 创建针对舰队预算的限定范围令牌 |
figuard_revoke_delegation_token | 撤销委托令牌(幂等) |
figuard_get_delegation_token | 查看委托令牌状态和额度使用情况 |
安全说明
FIGUARD_API_KEY 配置为环境变量,而不是工具参数。工具参数会出现在大模型上下文窗口中 — 绝不能将 API 密钥作为工具参数传递。
figuard_create_budget 返回的会话令牌有效期较短(会随预算到期),可在会话内安全地用作工具参数。
在本地运行 FiGuard
git clone https://github.com/figuard/figuard-core
cd figuard-core
docker compose up -d
FiGuard 将在 http://localhost:8080 上提供服务。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。