关于 M2M Sentinel
M2M Sentinel 为在 Base 上运行的自主应用提供 EVM 字节码能力观察和代理解析,并包含 SDK、MCP 服务及 Coinbase AgentKit ActionProvider。它返回证据与限制,不替调用方制定交易策略。
主要功能
- 01观察 EVM 字节码能力
- 02解析常见代理合约
- 03提供 JavaScript、TypeScript 和 Python 客户端
- 04提供 Coinbase AgentKit ActionProvider
- 05支持 Base Account 调用预检
适用场景
- 01在交易前检查合约能力证据
- 02在应用中查询代理目标地址
- 03通过 MCP 客户端访问 Base 合约分析
MCP 相关
MCP 服务可通过本地 stdio 或远程 Streamable HTTP 连接 Claude Desktop、Cursor、Windsurf 等 MCP 客户端,并提供 M2M Sentinel 分析能力。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.m2msentinel.com/mcpclaude mcp add --transport http m2m-sentinel-m2m-sentinel-sdk https://api.m2msentinel.com/mcp{"mcpServers":{"m2m-sentinel-m2m-sentinel-sdk":{"type":"http","url":"https://api.m2msentinel.com/mcp"}}}在 Cursor 中打开{"servers":{"m2m-sentinel-m2m-sentinel-sdk":{"type":"http","url":"https://api.m2msentinel.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"m2m-sentinel-m2m-sentinel-sdk":{"type":"http","url":"https://api.m2msentinel.com/mcp"}}}{"mcpServers":{"m2m-sentinel-m2m-sentinel-sdk":{"serverUrl":"https://api.m2msentinel.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.m2msentinel.com/mcp需要授权https://api.m2msentinel.com/sse需要授权工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| address | string | 是 |
详细介绍
M2M Sentinel SDK 与 MCP 服务
适用于 M2M Sentinel 的官方多语言客户端库、Model Context Protocol(MCP)服务和 Coinbase AgentKit ActionProvider——为在 Base 上运行的自主应用提供确定性的 EVM 字节码能力观测和常见代理解析。调用方负责交易策略。
此导出将 npm 1.2.8 标记为本地候选发布版,而非已验证的已发布制品。此候选版本并不能证明已发布到注册表或可安装。以下安装命令使用最后验证过的 npm 版本 1.2.7。
无需钱包或 API 密钥,试用 Base USDC
此快速入门使用 Base USDC,这是已发布的许可列表示例,
地址为 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913。响应包含事实性的
能力证据和限制,而非安全保证或交易建议。实时演示可能受到速率限制(HTTP 429,带有
Retry-After),也可能在上游证据源故障时无法使用(HTTP 503)。
curl --fail-with-body https://api.m2msentinel.com/v1/demo/audit/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
npm install [email protected]
const { M2MSentinelClient } = require('m2m-sentinel-sdk');
(async () => {
const client = new M2MSentinelClient();
const result = await client.demoAudit('0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913');
console.log(JSON.stringify(result, null, 2));
})().catch((error) => { console.error(error.message); process.exitCode = 1; });
pip install m2m-sentinel==1.2.7
from m2m_sentinel import M2MSentinelClient
client = M2MSentinelClient()
result = client.demo_audit("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
print(result)
其他地址只能获得公开预览。完整的 /v1/audit/:address
分析仍需要 API 密钥或明确授权的 x402
付款;演示不会在未告知的情况下付款。演示出错后,客户端不会自动重试,也不会回退到受保护的路由。源 SDK 导出包含一个
可运行的免凭据 JavaScript 示例 examples/try_public_demo.js;
该示例未包含在最后验证过的 npm 1.2.7 制品中。
⚡ 1. Model Context Protocol(MCP)服务
将 M2M Sentinel 直接连接到 Claude Desktop、Cursor、Windsurf 或任何兼容 MCP 的大模型 Agent。
选项 A:通过 Smithery 一键安装
npx -y @smithery/cli mcp add M2M-Sentinel/m2m-sentinel-sdk --client claude
选项 B:本地 Stdio(claude_desktop_config.json)
{
"mcpServers": {
"m2m-sentinel": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"M2M_SENTINEL_API_KEY": ""
}
}
}
}
选项 C:远程 Streamable HTTP
- 当前 MCP 端点:
https://api.m2msentinel.com/mcp - 旧版 HTTP+SSE 兼容端点:
https://api.m2msentinel.com/sse,消息地址为https://api.m2msentinel.com/messages
🤖 2. Coinbase AgentKit 集成
import { AgentKit } from "@coinbase/agentkit";
import { m2mSentinelActionProvider } from "m2m-sentinel-sdk";
const agentKit = await AgentKit.from({
walletProvider,
actionProviders: [
m2mSentinelActionProvider({
apiKey: process.env.M2M_SENTINEL_API_KEY
})
]
});
📦 3. JavaScript / TypeScript 客户端
已认证 SDK 快速入门
npm install [email protected]
const { M2MSentinelClient } = require('m2m-sentinel-sdk');
const client = new M2MSentinelClient({ apiKey: process.env.M2M_SENTINEL_API_KEY });
async function main() {
const audit = await client.auditContract('0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913');
console.log('Proxy Detected:', audit.audit.proxyResolution.isProxy);
console.log('Proxy Target:', audit.audit.proxyResolution.targetAddress);
console.log('Capabilities:', audit.audit.verdict.executableCapabilities);
console.log('Evidence:', audit.audit.dissection.capabilities);
}
main().catch(console.error);
🛡️ Base Account wallet_sendCalls 防护
公共 SDK 提供 guardWalletSendCalls,作为 Base Account / EIP-5792 批次的客户端执行身份边界。它会预检锚点调用,并在安排任何其余调用之前评估调用方策略,然后将其余调用固定到第一个可信区块身份,并分批执行,每批最多四个。每个已完成的批次都会按请求索引升序进行验证和策略检查,然后才会开始后续批次;失败或拒绝会阻止后续调用的安排。只有通过所有检查后,才会转发原始的分离请求。它不会签名、广播、托管资金、推断内部 UserOperation 语义,也不会作出安全声明。免网络测试用例参见 examples/base_account_paymaster_guard.js。
🐍 4. Python 客户端
pip install m2m-sentinel==1.2.7
from m2m_sentinel import M2MSentinelClient
client = M2MSentinelClient()
result = client.demo_audit("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
print(result)
针对交易的预检示例
公开仓库包含一个独立的、仅使用模拟数据的交易边界示例,位于 examples/transaction_preflight.js。
在此仓库根目录中,运行:
node examples/transaction_preflight.js
该示例会观察一笔由调用方提供的 Base 交易,将观察结果传递给调用方拥有的策略,并且只会到达模拟签名/发送回调。若证据未经验证、执行尚未解决、观察结果不匹配,或缺少 Diamond 选择器映射,它会拒绝继续。它绝不会签名或发送交易;可选的实时模式仅使用调用方提供的 API 密钥标头,相关责任仍由调用方承担。
💳 5. 自主 x402 微支付(无头 M2M)
import { x402SignerClient } from "m2m-sentinel-sdk";
const client = new x402SignerClient({
walletSigner: myAgentWallet,
baseUrl: "https://api.m2msentinel.com"
});
const result = await client.request("/v1/audit/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913");
📜 许可证
MIT License。版权所有 (c) 2026 M2M Sentinel。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。