@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 +114 -0
- package/dist/tools.js +127 -0
- package/package.json +1 -1
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.
|
|
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",
|