@kaditang/402sentinel-mcp 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,6 +16,7 @@ Tools — vet the **seller**:
16
16
  Tools — vet the **payment itself** (buyer-side):
17
17
  - `firewall` ($0.002) — should YOUR agent make THIS payment now? Catches fraudulent routing (payTo swapped vs the address you usually pay), drain velocity, overcharge, and injection-sourced instructions. Pass your payer wallet as `agent_id`.
18
18
  - `firewall_record` (free) — seed your agent's payment history so the firewall has a behavioural baseline.
19
+ - `firewall_outcome` (free) — after a verdict, report what actually happened (fraud / legit / …) so the firewall learns which signals are predictive and downweights noisy ones (safety signals stay deterministic).
19
20
 
20
21
  It's a thin client for the hosted service at **https://402sentinel.com** — the
21
22
  scoring model and facilitator-identification logic live server-side (closed); this
package/dist/index.js CHANGED
@@ -177,6 +177,20 @@ const TOOLS = [
177
177
  endpoint: "/api/firewall/record",
178
178
  paid: false,
179
179
  },
180
+ {
181
+ name: "firewall_outcome",
182
+ description: "FREE. After a firewall verdict, report what actually happened so 402Sentinel learns which signals are predictive and downweights noisy ones (hard-block safety signals stay deterministic). Pass the assessment_id (fw_…) from a prior firewall call.",
183
+ inputSchema: {
184
+ type: "object",
185
+ required: ["assessment_id", "outcome"],
186
+ properties: {
187
+ assessment_id: { type: "string", description: "the fw_… id from a prior firewall call" },
188
+ outcome: { type: "string", enum: ["fraud", "confirmed_fraud", "not_delivered", "overcharged", "drained", "scam", "delivered", "legit", "fine"], description: "bad: fraud/confirmed_fraud/not_delivered/overcharged/drained/scam · good: delivered/legit/fine" },
189
+ },
190
+ },
191
+ endpoint: "/api/firewall/outcome",
192
+ paid: false,
193
+ },
180
194
  ];
181
195
  function clientOrNull() {
182
196
  if (!RAW_PK || RAW_PK.startsWith("0xYour"))
@@ -185,7 +199,7 @@ function clientOrNull() {
185
199
  return new GatewayClient({ chain: "base", privateKey: pk });
186
200
  }
187
201
  async function main() {
188
- const server = new Server({ name: "402sentinel", version: "0.4.0" }, { capabilities: { tools: {} } });
202
+ const server = new Server({ name: "402sentinel", version: "0.5.0" }, { capabilities: { tools: {} } });
189
203
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
190
204
  tools: TOOLS.map(({ name, description, inputSchema }) => ({ name, description, inputSchema })),
191
205
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaditang/402sentinel-mcp",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "MCP tools for x402 payment safety — vet the counterparty (risk score, allow/review/block, spending policy) AND vet the payment itself (buyer-side firewall: routing/drain/injection). Thin client for 402sentinel.com.",
5
5
  "type": "module",
6
6
  "bin": { "402sentinel-mcp": "./dist/index.js" },