@ayazdata/trace-mcp 1.0.0 → 1.0.1
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 +89 -32
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @ayazdata/trace-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
MCP server for [Trace](https://trace.akpinar.dev) — AI-powered malware analysis platform.
|
|
4
|
+
Connects Claude Code, Codex CLI, and Gemini CLI directly to a Trace instance.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
> **Live instance:** `https://trace.akpinar.dev`
|
|
7
|
+
> **npm:** `@ayazdata/trace-mcp`
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-e TRACE_TOKEN=your_token_here \
|
|
11
|
-
-- npx -y trace-mcp
|
|
12
|
-
```
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Quick Install
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
### Claude Code
|
|
15
14
|
```bash
|
|
16
|
-
claude mcp add trace -e TRACE_URL=https://trace.akpinar.dev -- npx -y trace-mcp
|
|
15
|
+
claude mcp add trace -e TRACE_URL=https://trace.akpinar.dev -- npx -y @ayazdata/trace-mcp
|
|
17
16
|
```
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
### Codex CLI
|
|
21
19
|
Add to `~/.codex/config.toml`:
|
|
22
20
|
```toml
|
|
23
21
|
[mcp_servers.trace]
|
|
24
22
|
command = "npx"
|
|
25
|
-
args = ["-y", "trace-mcp"]
|
|
23
|
+
args = ["-y", "@ayazdata/trace-mcp"]
|
|
26
24
|
startup_timeout_sec = 15
|
|
27
25
|
|
|
28
26
|
[mcp_servers.trace.env]
|
|
@@ -30,15 +28,14 @@ TRACE_URL = "https://trace.akpinar.dev"
|
|
|
30
28
|
TRACE_TOKEN = ""
|
|
31
29
|
```
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
### Gemini CLI
|
|
35
32
|
Add to `~/.gemini/settings.json`:
|
|
36
33
|
```json
|
|
37
34
|
{
|
|
38
35
|
"mcpServers": {
|
|
39
36
|
"trace": {
|
|
40
37
|
"command": "npx",
|
|
41
|
-
"args": ["-y", "trace-mcp"],
|
|
38
|
+
"args": ["-y", "@ayazdata/trace-mcp"],
|
|
42
39
|
"env": {
|
|
43
40
|
"TRACE_URL": "https://trace.akpinar.dev",
|
|
44
41
|
"TRACE_TOKEN": ""
|
|
@@ -48,28 +45,88 @@ Add to `~/.gemini/settings.json`:
|
|
|
48
45
|
}
|
|
49
46
|
```
|
|
50
47
|
|
|
48
|
+
### Project-level (any tool that supports .mcp.json)
|
|
49
|
+
A `.mcp.json` is included at the repo root — tools that support project-level MCP config will pick it up automatically when you open the project.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
51
53
|
## Self-hosted
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
If you run your own Trace instance, replace the URL:
|
|
56
|
+
```bash
|
|
57
|
+
claude mcp add trace -e TRACE_URL=http://localhost:8090 -- npx -y @ayazdata/trace-mcp
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For authenticated endpoints, generate a JWT token from Trace settings and pass it:
|
|
61
|
+
```bash
|
|
62
|
+
claude mcp add trace \
|
|
63
|
+
-e TRACE_URL=https://your-instance.com \
|
|
64
|
+
-e TRACE_TOKEN=your_jwt_token \
|
|
65
|
+
-- npx -y @ayazdata/trace-mcp
|
|
66
|
+
```
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
---
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
## Available Tools
|
|
71
|
+
|
|
72
|
+
| Tool | What it does |
|
|
58
73
|
|------|-------------|
|
|
59
|
-
| `trace_upload_file` | Upload file for malware analysis |
|
|
60
|
-
| `trace_get_analysis` | Full analysis
|
|
61
|
-
| `trace_list_analyses` | List recent analyses |
|
|
62
|
-
| `trace_get_iocs` | Extract IOCs from analysis |
|
|
63
|
-
| `trace_get_sigma_matches` | Sigma
|
|
64
|
-
| `trace_get_ai_summary` | AI-generated threat
|
|
65
|
-
| `trace_lookup_hash` |
|
|
66
|
-
| `trace_dashboard_stats` |
|
|
67
|
-
| `trace_get_mitre` | Top MITRE ATT&CK techniques |
|
|
68
|
-
| `trace_get_process_tree` | Process execution tree |
|
|
74
|
+
| `trace_upload_file` | Upload a local file for malware analysis. Returns `analysis_id`. |
|
|
75
|
+
| `trace_get_analysis` | Full results for an analysis — risk score, YARA hits, MITRE techniques, IOCs, AI summary. |
|
|
76
|
+
| `trace_list_analyses` | List recent analyses. Filter by `risk_level` or `status`. |
|
|
77
|
+
| `trace_get_iocs` | Extract IOCs (IPs, domains, hashes, URLs, registry keys) from an analysis. |
|
|
78
|
+
| `trace_get_sigma_matches` | Sigma detection rules that triggered on a sample. |
|
|
79
|
+
| `trace_get_ai_summary` | AI-generated threat narrative for an analysis. |
|
|
80
|
+
| `trace_lookup_hash` | Threat intel lookup for a SHA256 hash (VirusTotal + internal DB). |
|
|
81
|
+
| `trace_dashboard_stats` | Platform-wide stats: total analyses, risk distribution, detection rates. |
|
|
82
|
+
| `trace_get_mitre` | Top MITRE ATT&CK techniques observed across all analyses. |
|
|
83
|
+
| `trace_get_process_tree` | Process execution tree from dynamic/sandbox analysis. |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Telegram Bot — @Ayaz_Trace_Bot
|
|
88
|
+
|
|
89
|
+
Trace also ships a Telegram bot for on-the-go analysis.
|
|
90
|
+
|
|
91
|
+
**Start:** Search `@Ayaz_Trace_Bot` on Telegram or open [t.me/Ayaz_Trace_Bot](https://t.me/Ayaz_Trace_Bot)
|
|
92
|
+
|
|
93
|
+
### Commands
|
|
94
|
+
|
|
95
|
+
| Command | Description |
|
|
96
|
+
|---------|-------------|
|
|
97
|
+
| `/start` | Welcome message and usage guide |
|
|
98
|
+
| `/help` | Same as /start |
|
|
99
|
+
| `/set_detail short` | Receive compact analysis reports |
|
|
100
|
+
| `/set_detail detailed` | Receive full analysis reports (default) |
|
|
101
|
+
|
|
102
|
+
### Usage
|
|
103
|
+
|
|
104
|
+
1. Send any file **as a Document** (not compressed) — the bot queues it for analysis.
|
|
105
|
+
2. When analysis completes, you get a notification with risk score, threat level, and detections.
|
|
106
|
+
3. High-risk files trigger a quarantine alert automatically.
|
|
107
|
+
|
|
108
|
+
> URL scanning is not yet supported. Send files directly.
|
|
109
|
+
|
|
110
|
+
### Self-hosting the bot
|
|
111
|
+
|
|
112
|
+
Set `TELEGRAM_BOT_TOKEN` in your `.env` before starting the stack:
|
|
113
|
+
```env
|
|
114
|
+
TELEGRAM_BOT_TOKEN=your_bot_token_here
|
|
115
|
+
```
|
|
116
|
+
The bot starts automatically with the backend on `docker compose up`.
|
|
117
|
+
|
|
118
|
+
---
|
|
69
119
|
|
|
70
120
|
## Environment Variables
|
|
71
121
|
|
|
72
122
|
| Variable | Default | Description |
|
|
73
123
|
|----------|---------|-------------|
|
|
74
|
-
| `TRACE_URL` | `http://localhost:8090` | Trace instance URL |
|
|
75
|
-
| `TRACE_TOKEN` |
|
|
124
|
+
| `TRACE_URL` | `http://localhost:8090` | Trace instance base URL |
|
|
125
|
+
| `TRACE_TOKEN` | *(empty)* | JWT token — required only for auth-protected endpoints |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Requirements
|
|
130
|
+
|
|
131
|
+
- Node.js 18+
|
|
132
|
+
- A running Trace instance (or use the live one at `trace.akpinar.dev`)
|