内容
# mcp-server-insumer
[](https://www.npmjs.com/package/mcp-server-insumer) [](https://glama.ai/mcp/servers/@douglasborthwick-crypto/mcp-server-insumer) [](https://opensource.org/licenses/MIT)
MCP 服务器,用于 [InsumerAPI](https://insumermodel.com/developers/) — 基于条件的访问基础设施。发送钱包和条件,获取 37 条链上的签名布尔值。无需暴露余额,无需身份验证,无需信任 API 提供商。
已在生产环境中使用:[AsterPay](https://github.com/AsterPay/erc8183-kya-hook) — 一个受监管的支付栈 — 在 InsumerAPI 上运行实时 ERC-8183 代理商商业信任评分。 [案例研究](https://insumermodel.com/blog/asterpay-kya-erc8183-attestation-integration.html)。
也适用于: [LangChain](https://pypi.org/project/langchain-insumer/) (26 个工具,PyPI)| [langchain-community](https://github.com/langchain-ai/langchain/pull/549) (26 个工具,PR #549)| [ElizaOS](https://www.npmjs.com/package/eliza-plugin-insumer) (10 个操作,npm)| [OpenAI GPT](https://chatgpt.com/g/g-699c5e43ce2481918b3f1e7f144c8a49-insumerapi-verify) (GPT 商店)| [insumer-verify](https://www.npmjs.com/package/insumer-verify) (客户端验证,npm)
**[完整 AI 代理验证 API 指南](https://insumermodel.com/ai-agent-verification-api/)** — 涵盖所有 37 条链、信任配置文件、商业协议和签名验证。
## 快速开始
### Claude Desktop
将以下内容添加到您的 `claude_desktop_config.json` 文件中:
```json
{
"mcpServers": {
"insumer": {
"command": "npx",
"args": ["-y", "mcp-server-insumer"],
"env": {
"INSUMER_API_KEY": "insr_live_..."
}
}
}
}
```
### Cursor / Windsurf
将以下内容添加到您的 MCP 设置中:
```json
{
"insumer": {
"command": "npx",
"args": ["-y", "mcp-server-insumer"],
"env": {
"INSUMER_API_KEY": "insr_live_..."
}
}
}
```
### 获取密钥 — 无需注册,无需仪表盘,无需密码
三种方式均可为您提供一个可用的 `insr_live_...` 密钥,限 100 次读取/天 和 10 次验证积分。每个邮箱仅限一个免费密钥。
**选项 A — 让您的代理执行:** 在没有密钥的情况下启动服务器。您的 AI 代理可以调用 `insumer_setup` 工具,使用您的邮箱生成一个免费密钥。将其添加到您的配置中并重启。
**选项 B — 终端:**
```bash
curl -s -X POST https://api.insumermodel.com/v1/keys/create \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "appName": "MCP Server", "tier": "free"}'
```
**选项 C — 浏览器:** 在 [insumermodel.com](https://insumermodel.com/?utm_source=npm-mcp-server-insumer) 上输入您的邮箱 — 密钥将直接显示。
将其设置为 `INSUMER_API_KEY` 在您的配置中。
**已有密钥?** 在 [insumermodel.com/developers/account/](https://insumermodel.com/developers/account/?utm_source=npm-mcp-server-insumer) 上管理使用情况、充值或升级。
## 您将获得的结果
当您的代理调用 `insumer_attest` 时,您将获得 ECDSA 签名的认证:
```json
{
"ok": true,
"data": {
"attestation": {
"id": "ATST-A7C3E1B2D4F56789",
"pass": true,
"results": [
{
"condition": 0,
"met": true,
"label": "USDC >= 1000 on Ethereum",
"type": "token_balance",
"chainId": 1,
"evaluatedCondition": {
"chainId": 1,
"contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"decimals": 6,
"operator": "gte",
"threshold": 1000,
"type": "token_balance"
},
"conditionHash": "0x554251734232c8b43062f1cf2bb51b76650d13268104d74c645f4893e67ef69c",
"blockNumber": "0x1799043",
"blockTimestamp": "2026-03-26T20:04:23.000Z"
}
],
"passCount": 1,
"failCount": 0,
"attestedAt": "2026-02-28T12:34:57.000Z",
"expiresAt": "2026-02-28T13:04:57.000Z"
},
"sig": "dmNJKqnGZ9f47qpWax9gxgw1DhUKHKHrbLspTop8NWzYhv2fNpVAt1gAuhUfU4xPsgXTCdrmTXI4vEE50dcfEA==",
"kid": "insumer-attest-v1"
},
"meta": {
"version": "1.0",
"timestamp": "2026-02-28T12:34:57.000Z",
"creditsRemaining": 99,
"creditsCharged": 1
}
}
```
`sig` 是 `{id, pass, results, attestedAt}` 的 ECDSA P-256 签名。`kid` 标识了哪个密钥对其进行了签名。`conditionHash` 是已评估的条件逻辑的 SHA-256 哈希。
无余额。无金额。仅限加密签名 true/false。
对于 XRPL 条件,结果包括 `ledgerIndex`、`ledgerHash`(已验证的账本哈希)和 `trustLineState: { frozen: boolean }`,而不是 `blockNumber`/`blockTimestamp`。原生 XRP 条件包括 `ledgerIndex` 和 `ledgerHash` 但不包括 `trustLineState`。冻结的信任线会导致 `met: false`。
### 钱包身份验证(JWT)
在 `insumer_attest` 工具参数中添加 `format: "jwt"`,以接收认证为标准 JWT 持有者令牌:
```json
{
"wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"conditions": [ ... ],
"format": "jwt"
}
```
响应中包含一个额外的 `jwt` 字段,其中包含 ES256 签名的 JWT。此令牌可通过 `GET /v1/jwks` 处的 JWKS 端点验证,使其与 Kong、Nginx、Cloudflare Access、AWS API Gateway 等支持 JWT 持有者令牌的中间件兼容。
## 验证响应
您的代理获得认证。您的应用程序应该验证它。安装 [insumer-verify](https://www.npmjs.com/package/insumer-verify):
```bash
npm install insumer-verify
```
```typescript
import { verifyAttestation } from "insumer-verify";
// attestationResponse = 完整的 API 信封 {ok, data: {attestation, sig, kid}, meta}
// 不要传递 attestationResponse.data — 该函数期望外部信封
const result = await verifyAttestation(attestationResponse, {
jwksUrl: "https://insumermodel.com/.well-known/jwks.json",
maxAge: 120, // 拒绝如果区块数据旧于 2 分钟
});
if (result.valid) {
// 签名已验证,条件哈希匹配,未过期
const pass = attestationResponse.data.attestation.pass;
console.log(`认证 ${pass ? "通过" : "失败"}` 所有条件);
} else {
console.log("验证失败:", result.checks);
}
```
此操作运行 4 个独立检查:ECDSA 签名、条件哈希完整性、区块新鲜度和认证过期。零运行时依赖项,使用 Web Crypto API。
## 工具(27)
### 设置(免费,无身份验证)
| 工具 | 描述 |
|------|-------------|
| `insumer_setup` | 即时生成一个免费的 API 密钥。接受邮箱,返回一个 `insr_live_...` 密钥,包含 10 个积分。无需信用卡。 |
### 密钥发现(免费)
| 工具 | 描述 |
|------|-------------|
| `insumer_jwks` | 获取包含 InsumerAPI 的 ECDSA P-256 公共签名密钥的 JWKS。使用认证响应中的 `kid` 匹配正确的密钥。 |
### 链上验证(成本积分)
> **`token_balance` 阈值是十进制字符串。** 将 `threshold` 传递为 `"100"`,而不是 `100`。从 2026-06-10 创建的密钥使用 `kid: insumer-attest-v2` 签名,它保留了完整的精度,并拒绝 JSON 数字出现 400 错误。`insumer_attest` 工具接受数字或字符串,并强制转换为规范字符串;较旧的 `insumer-attest-v1` 密钥接受两者。
| 工具 | 描述 |
|------|-------------|
| `insumer_attest` | 验证链上条件(代币余额、NFT 所有权、EAS 认证、Farcaster 身份,以及 `ratio_to_amount` 用于自适应代理支出限制,`ratio_to_supply` 用于份额供应规则 — 仅限 RPC EVM)。返回 ECDSA 签名的布尔值,包含 `kid`、`evaluatedCondition`、`conditionHash`(SHA-256)和 `blockNumber`/`blockTimestamp`。1 个积分。可选 `proof: "merkle"` 用于 EIP-1186 Merkle 存储证明(2 个积分)。 |
| `insumer_compliance_templates` | 列出可用的 EAS 合规模板(Base 上的 Coinbase 验证、Optimism 上的 Gitcoin Passport)。免费。 |
| `insumer_wallet_trust` | 生成 ECDSA 签名的钱包信任事实配置文件。44 个基础检查跨 25 条链的 5 个维度(稳定币、治理、NFT、质押、机构稳定币 — EURCV/USDCV/USDC/BENJI 跨 Ethereum、Solana、XRPL、Stellar、Sui),最高可达 49 个检查跨 27 条链的 9 个维度,支持 Solana、XRPL、Bitcoin 和 Tron 钱包。3 个积分(6 个积分带 merkle)。 |
| `insumer_batch_wallet_trust` | 批量处理最多 10 个钱包的信任配置文件。每个钱包对象支持可选的 `solanaWallet`、`xrplWallet`、`bitcoinWallet`、`tronWallet`、`stellarWallet` 和 `suiWallet`。共享区块获取,速度快 5-8 倍。支持部分成功。3 个积分/钱包(6 个积分带 merkle)。 |
| `insumer_verify` | 为钱包在商家处创建签名折扣代码(INSR-XXXXX,30 分钟过期)。1 个商家积分。 |
### 发现(免费)
| 工具 | 描述 |
|------|-------------|
| `insumer_list_merchants` | 浏览商家目录。按代币、验证状态筛选。 |
| `insumer_get_merchant` | 获取完整的公开商家资料。 |
| `insumer_list_tokens` | 列出所有已注册的代币和 NFT。按链、符号、类型筛选。 |
| `insumer_check_discount` | 计算钱包在商家的折扣。 |
### 积分和密钥
| 工具 | 描述 |
|------|-------------|
| `insumer_buy_key` | 使用 USDC、USDT、BTC 或 USDT-TRC20 购买新的 API 密钥(无需身份验证)。代理友好:无需邮箱,发送者钱包成为密钥的身份。一个钱包对应一个密钥。批量折扣:$0.04–$0.02/call。支持的链:Ethereum、Base、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche、Solana、Bitcoin、Tron。不可退款。 |
| `insumer_credits` | 检查信用余额和层级。 |
| `insumer_buy_credits` | 使用 USDC、USDT、BTC 或 USDT-TRC20 购买验证积分。批量折扣:$0.04–$0.02/call。支持的链:Ethereum、Base、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche、Solana、Bitcoin、Tron。不可退款。第一个购买注册发送者钱包;后续购买必须匹配或包含 `updateWallet: true`。 |
| `insumer_confirm_payment` | 确认用于折扣代码的 USDC 支付。 |
### 商家 onboarding(仅限所有者)
| 工具 | 描述 |
|------|-------------|
| `insumer_create_merchant` | 创建新的商家。接收 100 个免费积分。 |
| `insumer_merchant_status` | 获取完整的私人商家详细信息。 |
| `insumer_configure_tokens` | 设置代币折扣层级。 |
| `insumer_configure_nfts` | 设置 NFT 收藏折扣。 |
| `insumer_configure_settings` | 设置折扣模式、封顶、USDC 支付。 |
| `insumer_publish_directory` | 将商家发布到公共目录。 |
| `insumer_buy_merchant_credits` | 使用 USDC、USDT、BTC 或 USDT-TRC20 购买商家验证积分。批量折扣:$0.04–$0.02/call。仅限所有者。不可退款。第一个购买注册发送者钱包;后续购买必须匹配或包含 `updateWallet: true`。 |
### 域名验证(仅限所有者)
| 工具 | 描述 |
|------|-------------|
| `insumer_request_domain_verification` | 请求商家的域名验证令牌。返回令牌和 3 种方法(DNS TXT、元标签、文件上传)。 |
| `insumer_verify_domain` | 完成域名验证后放置令牌。已验证的商家获得信任徽章。 |
### 商务协议集成
| 工具 | 描述 |
|------|-------------|
| `insumer_acp_discount` | 检查 OpenAI/Stripe ACP 格式的折扣资格。返回优惠券对象和每个项目的分配。1 个商家积分。 |
| `insumer_ucp_discount` | 检查 Google UCP 格式的折扣资格。返回标题、扩展字段和应用数组。1 个商家积分。 |
| `insumer_validate_code` | 验证 INSR-XXXXX 折扣代码。返回有效性、折扣百分比、过期时间。免费,无身份验证。 |
## 定价
**层级:** 免费(100 次读取/天,10 个积分)| 专业版 $29/mo(1000 积分/mo,10,000 次/天)| 企业版 $99/mo(5000 积分/mo,100,000 次/天)
**批量折扣:** $5–$99 = $0.04/call(25 积分/$1)· $100–$499 = $0.03(33/$1,25% 折扣)· $500+ = $0.02(50/$1,50% 折扣)
**平台钱包:**
- **EVM(USDC/USDT):** `0xAd982CB19aCCa2923Df8F687C0614a7700255a23`
- **Solana(USDC/USDT):** `6a1mLjefhvSJX1sEX8PTnionbE9DqoYjU6F6bNkT4Ydr`
- **Bitcoin:** `bc1qg7qnerdhlmdn899zemtez5tcx2a2snc0dt9dt0`
- **Tron(USDT-TRC20):** `TC5yvwkAMakkXtUxYiu2Yn1xbBcwYuD6cn`
**支持的支付链:** Ethereum、Base、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche、Solana、Bitcoin、Tron。发送不支持的链上的代币无法恢复。所有购买均为最终且不可退款。 [完整定价 →](https://insumermodel.com/pricing/)
## 处理 `rpc_failure` 错误
如果 API 无法在重试后访问一个或多个区块链数据源,生成签名认证的端点(`insumer_attest`、`insumer_wallet_trust`、`insumer_batch_wallet_trust`)返回 `ok: false`,错误代码 `rpc_failure`。无签名,无 JWT,无积分扣除。这是重试错误 — MCP 客户端应在短延迟后重试。
**重要:** `rpc_failure` 不是验证失败。不要将其视为 `pass: false`。这意味着数据源暂时不可用,API 拒绝签署未经验证的结果。
## 支持的链(37)
31 个 EVM 链 + Solana + XRP Ledger + Bitcoin + Tron + Stellar + Sui。包括 Ethereum、Base、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche、XDC 和 23 个 EVM。 [完整列表 →](https://insumermodel.com/developers/api-reference/)
## 也可用作
- **Claude 代码技能:`smithery skill add douglasborthwick/insumer-skill`(https://smithery.ai/skills/douglasborthwick/insumer-skill)** — 用于 *编写* 钱包身份验证到您自己的项目从内到 Claude Code。 这个 MCP 服务器提供代理运行时访问 API;insumer-skill 帮助开发人员在构建时编写集成代码。 不同的界面,相同的原生功能。
- **ElizaOS 插件:** `@insumermodel/plugin-eliza` ([npm](https://www.npmjs.com/package/@insumermodel/plugin-eliza))
- **LangChain(Python):** `pip install langchain-insumer` ([PyPI](https://pypi.org/project/langchain-insumer/))
- **OpenAI GPT:** [GPT 商店](https://chatgpt.com/g/g-67bf98eb32dc8191a4051de54f7e2c6e-insumer-api-assistant)
- **验证器(离线 JWKS):** `npm install insumer-verify` ([npm](https://www.npmjs.com/package/insumer-verify))
## 开发
```bash
npm install
npm run build
# 使用 MCP 检验器测试
npx @modelcontextprotocol/inspector node build/index.js
```
## 许可
MIT
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器