mcpField
B
Bacon Services

Bacon Services

本地服务
baconservices.com媒体与设计02 天前更新

关于 Bacon Services

Bacon Services 的 MCP 客户端,让 AI Agent 按次购买图像处理和网页品牌提取服务,以 USDC 在 Base 上付款。钱包私钥留在本机,并通过单次、会话和每日支出限额控制付款。

主要功能

  1. 01按次调用图像处理服务
  2. 02去除背景并优化为 WebP
  3. 03提取图像色板及网页品牌信息
  4. 04本机签署 USDC 付款
  5. 05设置单次、会话和每日限额
  6. 06查询服务价格、钱包及可用额度

适用场景

  1. 01为照片移除背景并保存透明 PNG
  2. 02缩小图像并转换为 WebP
  3. 03提取图像主色用于设计
  4. 04从网页收集品牌名称、颜色与标志

MCP 相关

这是通过 stdio 连接 MCP 客户端的开源 MCP 客户端,提供付费图像与网页工具,并以 x402 和 USDC 在 Base 上逐次付款。私钥留在本机,付款前检查价格、余额和支出限额。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"afmontoya-baconservices": {
"command": "npx",
"args": [
"-y",
"baconservices-mcp"
],
"env": {
"BACON_WALLET_KEY_FILE": "<BACON_WALLET_KEY_FILE>",
"BACON_WALLET_PRIVATE_KEY": "<BACON_WALLET_PRIVATE_KEY>",
"BACON_MAX_PER_CALL": "<BACON_MAX_PER_CALL>",
"BACON_MAX_PER_SESSION": "<BACON_MAX_PER_SESSION>",
"BACON_MAX_PER_DAY": "<BACON_MAX_PER_DAY>",
"BACON_CONFIRM": "<BACON_CONFIRM>"
}
}
}
}
启动命令npx -y baconservices-mcp
需要配置的环境变量
BACON_WALLET_KEY_FILE密钥Path to a file holding the buyer wallet's private key (USDC on Base). Or set BACON_WALLET_PRIVATE_KEY.
BACON_WALLET_PRIVATE_KEY密钥The buyer wallet's private key, if not using a key file. Use a dedicated wallet.
BACON_MAX_PER_CALLLargest single payment in USDC.
BACON_MAX_PER_SESSIONMost this process may spend, in USDC.
BACON_MAX_PER_DAYMost spent in any rolling 24 hours, persisted across restarts, in USDC.
BACON_CONFIRMauto, always or never: ask before each payment when the host can.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmbaconservices-mcp0.2.0

工具

3

收录的工具列表 · 更新于 2 天前

此工具无需参数。

详细介绍

baconservices-mcp

一个 MCP 服务,让 AI Agent 逐次调用工具,从 Bacon Services 购买图像处理服务,通过 x402 使用 你自己的钱包,在 Base 上以 USDC 付款,并遵守你设置的支出限额。无需账户,也无需 API 密钥:Agent 调用工具后,服务会根据你的限额核对价格,为对应金额签署 USDC 付款,并返回结果。

该服务也已列入 MCP Registry,名称为 io.github.afmontoya/baconservices-mcp。

钱包安全

你的钱包私钥始终保存在本机。Bacon Services 不会接收或存储私钥。付款在本地签署,并受可配置的单次调用、会话和每日支出限额约束。

销售的服务

工具功能价格(2026-10-17)
remove_background移除一张照片的背景;返回尺寸与照片相同的透明 PNG0.20 USDC
optimize_image调整尺寸,使最长边 ≤ max_width(64–4096,默认 1600),并以 quality(40–95,默认 80)编码为 WebP0.01 USDC
image_palette以 JSON 返回一张图像的主要颜色:最多 count(1–12,默认 6)种十六进制颜色及其占比;include_neutrals(默认 true)0.01 USDC
brand_from_url读取一个公开网页(url),并以 JSON 返回其品牌信息:名称、描述、徽标 URL、颜色、字体和社交媒体资料。不会运行 JavaScript;遵守 robots.txt0.03 USDC

图像工具接受最大 8 MB 的 PNG、JPEG 或 WebP 文件,可通过 image_url(公开的 https 地址)或 image_path(本地文件)提供。remove_background 和 optimize_image 会返回签名下载链接(有效期为 24 小时);image_palette 和 brand_from_url 会在工具结果中返回 JSON。添加 save_to 可将任一类型的结果写入磁盘。价格来自 Bacon 的实时目录,每个付费工具都会在其说明中注明当前价格。

Bacon 的目录发布相应合约版本后,image_palette 和 brand_from_url 才会显示。已安装的软件包无法识别的服务会列在 list_services 中,但在更新软件包之前无法调用。

免费工具:

  • list_services:列出 Bacon 当前提供的所有服务、价格、限额,以及此版本的软件包是否支持运行。
  • quote:查询某项服务的 Bacon 当前价格,以及你的限额和钱包是否允许购买。不会签署任何内容。
  • wallet_status:显示网络、是否已配置钱包、你的限额及剩余额度,以及你是否能够负担每项服务(是/否)。

开始之前

  1. Node.js 20 或更高版本。
  2. 准备一个专用钱包,其中只存放你愿意花费的金额。向其中存入 Base 上的 USDC。无需 ETH:x402 付款是签名授权(EIP-3009),由中介方支付 Gas。
  3. 将私钥放入只有你能读取的文件中,例如 ~/.bacon/buyer.key。将 BACON_WALLET_KEY_FILE 指向该文件,可避免密钥出现在 MCP 主机配置中;这类配置通常会同步或共享。也可使用 BACON_WALLET_PRIVATE_KEY。

密钥永远不会离开你的设备。只有签名会发送出去,而且只发送给 Bacon。密钥绝不会写入日志或支出记录,也不会被接受为工具参数。

安装

Claude Code
claude mcp add bacon -e BACON_WALLET_KEY_FILE=/home/you/.bacon/buyer.key -- npx -y baconservices-mcp

添加更多 -e NAME=value 参数即可设置下方的限额。运行 claude mcp list 进行检查。

Claude Desktop

设置 → 开发者 → 编辑配置(claude_desktop_config.json):

{
  "mcpServers": {
    "bacon": {
      "command": "npx",
      "args": ["-y", "baconservices-mcp"],
      "env": {
        "BACON_WALLET_KEY_FILE": "/Users/you/.bacon/buyer.key",
        "BACON_MAX_PER_CALL": "0.50",
        "BACON_MAX_PER_SESSION": "1.00",
        "BACON_MAX_PER_DAY": "5.00"
      }
    }
  }
}

在 Windows 上,如果找不到 npx,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "baconservices-mcp"],并按 "C:\\Users\\you\\.bacon\\buyer.key" 的格式填写路径。之后重启 Claude Desktop。

Cursor、Windsurf 及其他使用 mcpServers 文件的客户端

使用与 Claude Desktop 相同的 command / args / env 配置块(对于 Cursor,文件位于 ~/.cursor/mcp.json 或项目中的 .cursor/mcp.json)。

VS Code(.vscode/mcp.json)

VS Code 可以提示你输入一次密钥,并安全地保存:

{
  "inputs": [
    { "type": "promptString", "id": "bacon-key", "description": "Bacon buyer wallet private key", "password": true }
  ],
  "servers": {
    "bacon": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "baconservices-mcp"],
      "env": { "BACON_WALLET_PRIVATE_KEY": "${input:bacon-key}" }
    }
  }
}
其他 MCP 客户端

这是一个 stdio 服务:使用以下环境变量运行 npx -y baconservices-mcp。

配置

变量默认值含义
BACON_WALLET_KEY_FILE—包含买家钱包私钥的文件路径。
BACON_WALLET_PRIVATE_KEY—私钥本身(两个选项只能设置一个)。如果两者都未设置,免费工具仍可使用。
BACON_MAX_PER_CALL0.50单笔付款的最高金额,单位为 USDC。
BACON_MAX_PER_SESSION1.00此服务进程最多可支出的金额。
BACON_MAX_PER_DAY5.00任意滚动 24 小时内的最高支出,涵盖所有进程和重启。
BACON_CONFIRMautoauto:宿主支持时,每次付款前询问;always:宿主不支持询问时拒绝付款;never:不询问(适用于无人值守的 Agent;仍会应用限额)。
BACON_NETWORKbasebase(真实 USDC,baconservices.com)或 base-sepolia(测试 USDC,Bacon 的测试副本)。
BACON_API_URL—仅用于 base-sepolia:测试副本的地址。
BACON_PAY_TO—仅用于 base-sepolia:测试副本的收款地址。
BACON_RPC_URLhttps://mainnet.base.org付款前用于检查 USDC 余额的 RPC。
BACON_LEDGER_DIR~/.baconservices-mcp支出账本的存放位置。
BACON_DISCLOSE_BALANCEfalse设置为 true 时,wallet_status 会显示确切余额和钱包地址。

如何保护你的资金

签署任何内容前,都会执行以下所有检查:

  • 价格由 Bacon 提供。 Bacon 会对每个请求返回一个注明价格的 x402 402 响应。 只有当该价格与 Bacon 当前目录中对应准确端点的价格一致,且付款使用 Base USDC 并发送至 Bacon 的收款地址(该地址已固定在软件包中)时,服务才会付款。若无法验证其中任何一项,就不会付款。
  • 你的限额。 服务会检查单次调用限额、调用中可选的 max_price_usdc、单次会话限额和 24 小时限额。24 小时总额会保存在本地账本文件中,供所有进程共享,因此重启 MCP 服务或同时运行两个实例都不会重新获得预算。如果无法读取账本,就不会付款。x402 库自身的单笔付款上限也会设为你的单次调用限额,作为第二道限制。
  • 资金。 服务会先读取你的 USDC 余额。如果余额不足或无法读取余额,会向你显示一条简单提示,且不会签署任何内容。
  • 尽可能征求你的批准。 如果 MCP 宿主支持,会询问你 “是否支付 0.2 USDC(Base),给 Bacon Services 执行 remove_background?” 并非所有宿主都支持询问,因此限额才是真正的界限。
  • 不重复付款。 每次购买只会为一个请求签署一笔付款。如果连接中断,服务会重新发送同一笔已签署的付款一次(Bacon 对重复请求会返回相同结果),绝不会签署新的付款。除非你传入 allow_repeat: true,否则在 10 分钟内再次请求相同内容会免费返回先前的结果。
  • 只运行已知服务。 Bacon 目录中的新服务会显示在 list_services 中。只有安装了能够理解其契约(输入、输出、版本)的本软件包版本后,这些服务才会成为可调用的工具。

如果 Bacon 在收款前拒绝付款,结果会显示 “你未被扣款”,该金额也会从你的限额中返还。如果结果未知(例如连接中断两次),结果会说明这一点并提供 Bacon 的请求 ID。该金额仍会计入你的限额。

测试资金

生产环境中的 Bacon 只接受真实 USDC。若要在不使用真实资金的情况下试用,请连接到在 Base Sepolia 上提供服务的 Bacon 本地副本或测试副本:

BACON_NETWORK=base-sepolia BACON_API_URL=http://127.0.0.1:8000 BACON_PAY_TO=0xYourTestPayTo npx -y baconservices-mcp

如果配置不匹配,软件包会拒绝并且不付款,例如:使用测试资金却连接到 baconservices.com、使用真实资金却连接到其他地址,或 Bacon 的目录位于不同网络。

开发

npm install
npm test

测试会连接到一个会真实检查每笔付款签名的模拟 Bacon。不会向任何网络发送内容。

托管服务

此 MCP 客户端基于 MIT License 开源。Bacon Services 的托管 API、Agent Commerce 服务、通过 x402 付费的功能、基础设施和后端实现均为独立服务,不受 MIT License 许可。使用 Bacon Services 的托管 API 和 x402 服务须遵守 Bacon Services 条款。

商标声明

MIT License 仅适用于本代码库中的源代码。“Bacon Services”及其名称、徽标和相关品牌标识不受 MIT License 许可。不得以暗示获得认可、赞助或关联的方式使用 Bacon Services 商标、徽标或品牌标识。请参阅 TRADEMARKS.md。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。