@forgemeshlabs/anomaly-mcp 0.2.0 → 0.3.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/dist/tools.d.ts CHANGED
@@ -9,6 +9,10 @@ export declare const tools: ({
9
9
  token?: undefined;
10
10
  hours?: undefined;
11
11
  address?: undefined;
12
+ protocol?: undefined;
13
+ region?: undefined;
14
+ days?: undefined;
15
+ repo?: undefined;
12
16
  };
13
17
  required?: undefined;
14
18
  };
@@ -31,6 +35,10 @@ export declare const tools: ({
31
35
  token?: undefined;
32
36
  hours?: undefined;
33
37
  address?: undefined;
38
+ protocol?: undefined;
39
+ region?: undefined;
40
+ days?: undefined;
41
+ repo?: undefined;
34
42
  };
35
43
  required?: undefined;
36
44
  };
@@ -56,6 +64,10 @@ export declare const tools: ({
56
64
  };
57
65
  hours?: undefined;
58
66
  address?: undefined;
67
+ protocol?: undefined;
68
+ region?: undefined;
69
+ days?: undefined;
70
+ repo?: undefined;
59
71
  };
60
72
  required: string[];
61
73
  };
@@ -77,6 +89,10 @@ export declare const tools: ({
77
89
  window?: undefined;
78
90
  token?: undefined;
79
91
  address?: undefined;
92
+ protocol?: undefined;
93
+ region?: undefined;
94
+ days?: undefined;
95
+ repo?: undefined;
80
96
  };
81
97
  required?: undefined;
82
98
  };
@@ -102,6 +118,104 @@ export declare const tools: ({
102
118
  };
103
119
  token?: undefined;
104
120
  hours?: undefined;
121
+ protocol?: undefined;
122
+ region?: undefined;
123
+ days?: undefined;
124
+ repo?: undefined;
125
+ };
126
+ required: string[];
127
+ };
128
+ } | {
129
+ name: string;
130
+ description: string;
131
+ inputSchema: {
132
+ type: "object";
133
+ properties: {
134
+ protocol: {
135
+ type: string;
136
+ description: string;
137
+ };
138
+ chain: {
139
+ type: string;
140
+ enum: string[];
141
+ description: string;
142
+ };
143
+ window: {
144
+ type: string;
145
+ enum: string[];
146
+ description: string;
147
+ };
148
+ token?: undefined;
149
+ hours?: undefined;
150
+ address?: undefined;
151
+ region?: undefined;
152
+ days?: undefined;
153
+ repo?: undefined;
154
+ };
155
+ required: string[];
156
+ };
157
+ } | {
158
+ name: string;
159
+ description: string;
160
+ inputSchema: {
161
+ type: "object";
162
+ properties: {
163
+ region: {
164
+ type: string;
165
+ enum: string[];
166
+ description: string;
167
+ };
168
+ chain?: undefined;
169
+ window?: undefined;
170
+ token?: undefined;
171
+ hours?: undefined;
172
+ address?: undefined;
173
+ protocol?: undefined;
174
+ days?: undefined;
175
+ repo?: undefined;
176
+ };
177
+ required?: undefined;
178
+ };
179
+ } | {
180
+ name: string;
181
+ description: string;
182
+ inputSchema: {
183
+ type: "object";
184
+ properties: {
185
+ days: {
186
+ type: string;
187
+ enum: string[];
188
+ description: string;
189
+ };
190
+ chain?: undefined;
191
+ window?: undefined;
192
+ token?: undefined;
193
+ hours?: undefined;
194
+ address?: undefined;
195
+ protocol?: undefined;
196
+ region?: undefined;
197
+ repo?: undefined;
198
+ };
199
+ required?: undefined;
200
+ };
201
+ } | {
202
+ name: string;
203
+ description: string;
204
+ inputSchema: {
205
+ type: "object";
206
+ properties: {
207
+ repo: {
208
+ type: string;
209
+ description: string;
210
+ };
211
+ chain?: undefined;
212
+ window?: undefined;
213
+ token?: undefined;
214
+ hours?: undefined;
215
+ address?: undefined;
216
+ protocol?: undefined;
217
+ region?: undefined;
218
+ days?: undefined;
105
219
  };
106
220
  required: string[];
107
221
  };
package/dist/tools.js CHANGED
@@ -97,6 +97,107 @@ export const tools = [
97
97
  type: "object",
98
98
  properties: {}
99
99
  }
100
+ },
101
+ // ── NFT & DeFi ────────────────────────────────────────────────────────────
102
+ {
103
+ name: "nft_scan",
104
+ description: "Anomaly scan for an NFT collection — detects sweep accumulation, wash trading patterns, and mint surges before they're obvious. Pass a contract address. Returns a story label (e.g. 'Sweep Accumulation', 'Wash Trading Detected') and anomaly score. Costs $0.03 USDC on Base mainnet.",
105
+ inputSchema: {
106
+ type: "object",
107
+ properties: {
108
+ token: {
109
+ type: "string",
110
+ description: "NFT contract address (ERC-721 or ERC-1155), e.g. 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"
111
+ },
112
+ chain: {
113
+ type: "string",
114
+ enum: ["ethereum", "base", "arbitrum"],
115
+ description: "Blockchain (default: ethereum)"
116
+ },
117
+ window: {
118
+ type: "string",
119
+ enum: ["1h", "4h", "24h", "168h"],
120
+ description: "Lookback window (default: 24h)"
121
+ }
122
+ },
123
+ required: ["token"]
124
+ }
125
+ },
126
+ {
127
+ name: "defi_scan",
128
+ description: "Anomaly scan for a DeFi protocol — detects unusual flows through major lending and DEX contracts (Uniswap, Aave, Curve, Compound). Pass a protocol name or contract address. Returns a story label and anomaly score. Costs $0.03 USDC on Base mainnet.",
129
+ inputSchema: {
130
+ type: "object",
131
+ properties: {
132
+ protocol: {
133
+ type: "string",
134
+ description: "Protocol name (uniswap_v3, uniswap_v3_r2, aave_v3, aave_v2, curve_3pool, compound_v3) or a 0x contract address"
135
+ },
136
+ chain: {
137
+ type: "string",
138
+ enum: ["ethereum", "base", "arbitrum"],
139
+ description: "Blockchain (default: ethereum)"
140
+ },
141
+ window: {
142
+ type: "string",
143
+ enum: ["1h", "4h", "24h", "168h"],
144
+ description: "Lookback window (default: 24h)"
145
+ }
146
+ },
147
+ required: ["protocol"]
148
+ }
149
+ },
150
+ // ── Aviation ──────────────────────────────────────────────────────────────
151
+ {
152
+ name: "squawk_alerts",
153
+ description: "Live global sweep of active aviation emergency squawk codes via OpenSky Network. Returns all aircraft currently squawking 7700 (general emergency), 7600 (radio failure), or 7500 (hijack) with position, altitude, and velocity. Costs $0.02 USDC on Base mainnet.",
154
+ inputSchema: {
155
+ type: "object",
156
+ properties: {}
157
+ }
158
+ },
159
+ {
160
+ name: "flight_scan",
161
+ description: "Sequence anomaly analysis for a named airspace region — detects unusual clustering of emergency squawks, rapid descents, or speed anomalies using the SequenceMiner engine. Costs $0.03 USDC on Base mainnet.",
162
+ inputSchema: {
163
+ type: "object",
164
+ properties: {
165
+ region: {
166
+ type: "string",
167
+ enum: ["north_atlantic", "europe", "north_america", "asia_pacific", "middle_east", "africa", "global"],
168
+ description: "Airspace region to analyze (default: global)"
169
+ }
170
+ }
171
+ }
172
+ },
173
+ // ── Creator signals ───────────────────────────────────────────────────────
174
+ {
175
+ name: "trending_signal",
176
+ description: "GitHub repos with anomalous star velocity right now — early signals before mainstream discovery. Detects repos going viral (200+ stars/day), overnight explosions, fork surges, and issue floods. Useful for trend hunting, VC scouting, developer tool discovery. Costs $0.02 USDC on Base mainnet.",
177
+ inputSchema: {
178
+ type: "object",
179
+ properties: {
180
+ days: {
181
+ type: "string",
182
+ enum: ["3", "7", "14", "30"],
183
+ description: "Search repos created in the last N days (default: 7)"
184
+ }
185
+ }
186
+ }
187
+ },
188
+ {
189
+ name: "repo_scan",
190
+ description: "Deep anomaly scan for a single GitHub repository — scores star velocity, fork ratio, overnight explosion signals, and issue flood patterns. Returns a story label (e.g. 'Breakout Signal', 'Viral Activity') and anomaly score. Costs $0.03 USDC on Base mainnet.",
191
+ inputSchema: {
192
+ type: "object",
193
+ properties: {
194
+ repo: {
195
+ type: "string",
196
+ description: "GitHub repo in owner/repo format, e.g. vercel/ai or microsoft/vscode"
197
+ }
198
+ },
199
+ required: ["repo"]
200
+ }
100
201
  }
101
202
  ];
102
203
  async function apiGet(path) {
@@ -170,6 +271,32 @@ export async function callTool(name, args) {
170
271
  });
171
272
  case "model_status":
172
273
  return apiGet("/api/sequence-anomaly/status");
274
+ case "nft_scan":
275
+ return apiPost("/api/nft-scan", {
276
+ token: args.token,
277
+ chain: args.chain || "ethereum",
278
+ window: args.window || "24h"
279
+ });
280
+ case "defi_scan":
281
+ return apiPost("/api/defi-scan", {
282
+ protocol: args.protocol,
283
+ chain: args.chain || "ethereum",
284
+ window: args.window || "24h"
285
+ });
286
+ case "squawk_alerts":
287
+ return apiGet("/api/squawk-alerts");
288
+ case "flight_scan":
289
+ return apiPost("/api/flight-scan", {
290
+ region: args.region || "global"
291
+ });
292
+ case "trending_signal": {
293
+ const days = args.days || "7";
294
+ return apiGet(`/api/trending-signal?days=${days}`);
295
+ }
296
+ case "repo_scan":
297
+ return apiPost("/api/repo-scan", {
298
+ repo: args.repo
299
+ });
173
300
  default:
174
301
  return { error: `Unknown tool: ${name}` };
175
302
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgemeshlabs/anomaly-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "mcpName": "io.github.forgemeshlabs/anomaly-mcp",
5
5
  "description": "Blockchain event sequence anomaly detection MCP server. Detects unusual financial event patterns via x402 micropayments.",
6
6
  "type": "module",