agent-security-lens 0.1.4 → 0.1.6
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/.dockerignore +11 -0
- package/.mcp/server.json +2 -2
- package/CHANGELOG.md +11 -0
- package/Dockerfile +11 -0
- package/README.md +15 -0
- package/RELEASE-MANIFEST.json +34 -14
- package/apps/mcp-server/agent-security-lens-mcp.mjs +5 -0
- package/bin/agent-security-lens-review.mjs +194 -0
- package/glama.json +45 -0
- package/llms.txt +3 -0
- package/package.json +5 -2
- package/server.json +2 -2
package/.dockerignore
ADDED
package/.mcp/server.json
CHANGED
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"url": "https://github.com/professor2k8/agent-security-lens",
|
|
9
9
|
"source": "github"
|
|
10
10
|
},
|
|
11
|
-
"version": "0.1.
|
|
11
|
+
"version": "0.1.6",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "agent-security-lens",
|
|
16
|
-
"version": "0.1.
|
|
16
|
+
"version": "0.1.6",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.6
|
|
4
|
+
|
|
5
|
+
- Route `agent-security-lens review ...` to the quick pre-install decision CLI while preserving MCP stdio mode for normal agent configuration.
|
|
6
|
+
- Prefer the package main command in quick-start docs so agents can call the same package they install as an MCP.
|
|
7
|
+
|
|
8
|
+
## 0.1.5
|
|
9
|
+
|
|
10
|
+
- Add `asl-review` and `agent-security-lens-review` quick decision commands for pre-install checks without configuring an MCP client first.
|
|
11
|
+
- Add first-screen quick review instructions for agents and developers.
|
|
12
|
+
- Record quick-review usage events so npm installs can convert into measurable ASL decision calls.
|
|
13
|
+
|
|
3
14
|
## 0.1.4
|
|
4
15
|
|
|
5
16
|
- Add copy-ready MCP install snippets for Claude Desktop, Cursor, VS Code, Codex-style clients and generic MCP clients.
|
package/Dockerfile
ADDED
package/README.md
CHANGED
|
@@ -8,6 +8,21 @@ ASL is not a malware verdict tool. It returns observable risk signals, required
|
|
|
8
8
|
|
|
9
9
|
## Agent Quick Install
|
|
10
10
|
|
|
11
|
+
Try one pre-install decision first:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx -y agent-security-lens review filesystem \
|
|
15
|
+
--type mcp \
|
|
16
|
+
--source-url https://github.com/modelcontextprotocol/servers \
|
|
17
|
+
--install-command "npx -y @modelcontextprotocol/server-filesystem ." \
|
|
18
|
+
--permission filesystem-read \
|
|
19
|
+
--permission filesystem-write
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The command returns an agent-readable decision, trust score, risk signals, safe install plan, and whether automatic installation is allowed.
|
|
23
|
+
|
|
24
|
+
If your shell does not expose npm temporary binaries correctly, use `npm install -g agent-security-lens` once, then run the same command without `npx -y`.
|
|
25
|
+
|
|
11
26
|
Add ASL as a pre-install trust check MCP:
|
|
12
27
|
|
|
13
28
|
```json
|
package/RELEASE-MANIFEST.json
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": "0.1.0",
|
|
3
3
|
"package": "agent-security-lens",
|
|
4
|
-
"version": "0.1.
|
|
5
|
-
"generated_at": "2026-06-
|
|
4
|
+
"version": "0.1.6",
|
|
5
|
+
"generated_at": "2026-06-24T12:17:11.165Z",
|
|
6
6
|
"source": "ASL verified public release exporter",
|
|
7
7
|
"files": [
|
|
8
|
+
{
|
|
9
|
+
"path": ".dockerignore",
|
|
10
|
+
"bytes": 159,
|
|
11
|
+
"sha256": "78fb3128cefbfdc369a213140894c3ffb189cefe519569a0a6f06add6f4e160d"
|
|
12
|
+
},
|
|
8
13
|
{
|
|
9
14
|
"path": ".env.example",
|
|
10
15
|
"bytes": 322,
|
|
@@ -43,7 +48,7 @@
|
|
|
43
48
|
{
|
|
44
49
|
"path": ".mcp/server.json",
|
|
45
50
|
"bytes": 1316,
|
|
46
|
-
"sha256": "
|
|
51
|
+
"sha256": "ccd53b1ecd798c344991cb136945a256b21e6b9929a594df08be8d4da4f9fcb3"
|
|
47
52
|
},
|
|
48
53
|
{
|
|
49
54
|
"path": ".npmignore",
|
|
@@ -52,8 +57,8 @@
|
|
|
52
57
|
},
|
|
53
58
|
{
|
|
54
59
|
"path": "CHANGELOG.md",
|
|
55
|
-
"bytes":
|
|
56
|
-
"sha256": "
|
|
60
|
+
"bytes": 2641,
|
|
61
|
+
"sha256": "2ed80a454a044e14aaf185d0b8498bc3d9abaec6ae78159416ceacec9b68227c"
|
|
57
62
|
},
|
|
58
63
|
{
|
|
59
64
|
"path": "CODE_OF_CONDUCT.md",
|
|
@@ -65,6 +70,11 @@
|
|
|
65
70
|
"bytes": 620,
|
|
66
71
|
"sha256": "b74ec3539a56b9af93cb25e59cdcb75ef1c9125611552d4bd6f7764d283e8736"
|
|
67
72
|
},
|
|
73
|
+
{
|
|
74
|
+
"path": "Dockerfile",
|
|
75
|
+
"bytes": 179,
|
|
76
|
+
"sha256": "b00c41e62cdc82eb1a40d9a9fd25024a482f6b6a36c54e05c33ce41353b08e9a"
|
|
77
|
+
},
|
|
68
78
|
{
|
|
69
79
|
"path": "LICENSE",
|
|
70
80
|
"bytes": 645,
|
|
@@ -77,8 +87,8 @@
|
|
|
77
87
|
},
|
|
78
88
|
{
|
|
79
89
|
"path": "README.md",
|
|
80
|
-
"bytes":
|
|
81
|
-
"sha256": "
|
|
90
|
+
"bytes": 7239,
|
|
91
|
+
"sha256": "23bfccd78e24d3bcd671d8eb1ea3228d38577145580aa9c8239e26634908bc89"
|
|
82
92
|
},
|
|
83
93
|
{
|
|
84
94
|
"path": "SECURITY.md",
|
|
@@ -87,8 +97,13 @@
|
|
|
87
97
|
},
|
|
88
98
|
{
|
|
89
99
|
"path": "apps/mcp-server/agent-security-lens-mcp.mjs",
|
|
90
|
-
"bytes":
|
|
91
|
-
"sha256": "
|
|
100
|
+
"bytes": 15475,
|
|
101
|
+
"sha256": "b52fd8db2d26868d5403664420b631f08e7e1616b787b61644d79b647c1884e7"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"path": "bin/agent-security-lens-review.mjs",
|
|
105
|
+
"bytes": 7016,
|
|
106
|
+
"sha256": "a11cfd8a70882c7d4ba4aa3af58f184db1acbfa4aa1a68e08f77ca4c232278f3"
|
|
92
107
|
},
|
|
93
108
|
{
|
|
94
109
|
"path": "bin/agent-security-lens.mjs",
|
|
@@ -255,15 +270,20 @@
|
|
|
255
270
|
"bytes": 224,
|
|
256
271
|
"sha256": "003dd29edfdb95a22e2dee21b889c53f388c7188b4eb2b0e785d1fb7031a58f5"
|
|
257
272
|
},
|
|
273
|
+
{
|
|
274
|
+
"path": "glama.json",
|
|
275
|
+
"bytes": 1109,
|
|
276
|
+
"sha256": "4f9f78280c53f256e2020d114afaef357f0ee899f87443d63bccd2e01e3ef950"
|
|
277
|
+
},
|
|
258
278
|
{
|
|
259
279
|
"path": "llms.txt",
|
|
260
|
-
"bytes":
|
|
261
|
-
"sha256": "
|
|
280
|
+
"bytes": 2137,
|
|
281
|
+
"sha256": "b54be6efb874b5972956313a3c436edcb1f236de1e700ce7557cee6d940d43f6"
|
|
262
282
|
},
|
|
263
283
|
{
|
|
264
284
|
"path": "package.json",
|
|
265
|
-
"bytes":
|
|
266
|
-
"sha256": "
|
|
285
|
+
"bytes": 2568,
|
|
286
|
+
"sha256": "a56f3b0f99b1ebb8fc1e36524dc250ba79632c290ad2471adc197c41277f8e44"
|
|
267
287
|
},
|
|
268
288
|
{
|
|
269
289
|
"path": "profiles/generic-agent/profile.json",
|
|
@@ -393,7 +413,7 @@
|
|
|
393
413
|
{
|
|
394
414
|
"path": "server.json",
|
|
395
415
|
"bytes": 1316,
|
|
396
|
-
"sha256": "
|
|
416
|
+
"sha256": "ccd53b1ecd798c344991cb136945a256b21e6b9929a594df08be8d4da4f9fcb3"
|
|
397
417
|
},
|
|
398
418
|
{
|
|
399
419
|
"path": "src/assessment/assess.mjs",
|
|
@@ -17,6 +17,11 @@ const serverInfo = {
|
|
|
17
17
|
version: "0.1.0"
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
if (process.argv[2] === "review" || process.argv[2] === "quick-review" || process.argv[2] === "--help" || process.argv[2] === "-h") {
|
|
21
|
+
await import("../../bin/agent-security-lens-review.mjs");
|
|
22
|
+
process.exit(process.exitCode || 0);
|
|
23
|
+
}
|
|
24
|
+
|
|
20
25
|
const tools = [
|
|
21
26
|
{
|
|
22
27
|
name: "get_install_policy",
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { recordUsageEvent, reviewBeforeInstall, submitUnknownComponent } from "../src/intelligence/component-intelligence.mjs";
|
|
4
|
+
|
|
5
|
+
function printHelp() {
|
|
6
|
+
console.log(`AgentSecurityLens quick review
|
|
7
|
+
|
|
8
|
+
Ask ASL for a pre-install decision without configuring an MCP client first.
|
|
9
|
+
|
|
10
|
+
Usage:
|
|
11
|
+
asl-review <component-name> [--type <mcp|skill|tool|agent-framework|unknown>] [--source-url <url>]
|
|
12
|
+
[--install-command <command>] [--permission <id>] [--planned-use <text>]
|
|
13
|
+
[--submit-if-unknown] [--format console|json]
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
asl-review filesystem --type mcp --source-url https://github.com/modelcontextprotocol/servers \\
|
|
17
|
+
--install-command "npx -y @modelcontextprotocol/server-filesystem ." \\
|
|
18
|
+
--permission filesystem-read --permission filesystem-write
|
|
19
|
+
|
|
20
|
+
asl-review @modelcontextprotocol/server-filesystem --type mcp --format json
|
|
21
|
+
`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function readValue(argv, index, flag) {
|
|
25
|
+
const value = argv[index + 1];
|
|
26
|
+
if (!value || value.startsWith("--")) {
|
|
27
|
+
throw new Error(`Missing value for ${flag}`);
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function parseArgs(argv) {
|
|
33
|
+
const args = {
|
|
34
|
+
component_name: null,
|
|
35
|
+
component_type: "unknown",
|
|
36
|
+
source_url: null,
|
|
37
|
+
install_command: null,
|
|
38
|
+
planned_use: null,
|
|
39
|
+
requested_permissions: [],
|
|
40
|
+
submit_if_unknown: false,
|
|
41
|
+
format: "console"
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const rest = argv.slice(2);
|
|
45
|
+
if (rest[0] === "review" || rest[0] === "quick-review") rest.shift();
|
|
46
|
+
if (!rest.length || rest.includes("--help") || rest.includes("-h")) return { help: true };
|
|
47
|
+
|
|
48
|
+
args.component_name = rest[0];
|
|
49
|
+
for (let i = 1; i < rest.length; i += 1) {
|
|
50
|
+
const arg = rest[i];
|
|
51
|
+
if (arg === "--type") {
|
|
52
|
+
args.component_type = readValue(rest, i, arg);
|
|
53
|
+
i += 1;
|
|
54
|
+
} else if (arg === "--source-url") {
|
|
55
|
+
args.source_url = readValue(rest, i, arg);
|
|
56
|
+
i += 1;
|
|
57
|
+
} else if (arg === "--install-command") {
|
|
58
|
+
args.install_command = readValue(rest, i, arg);
|
|
59
|
+
i += 1;
|
|
60
|
+
} else if (arg === "--planned-use") {
|
|
61
|
+
args.planned_use = readValue(rest, i, arg);
|
|
62
|
+
i += 1;
|
|
63
|
+
} else if (arg === "--permission") {
|
|
64
|
+
args.requested_permissions.push(readValue(rest, i, arg));
|
|
65
|
+
i += 1;
|
|
66
|
+
} else if (arg === "--permissions") {
|
|
67
|
+
args.requested_permissions.push(
|
|
68
|
+
...readValue(rest, i, arg)
|
|
69
|
+
.split(",")
|
|
70
|
+
.map((item) => item.trim())
|
|
71
|
+
.filter(Boolean)
|
|
72
|
+
);
|
|
73
|
+
i += 1;
|
|
74
|
+
} else if (arg === "--submit-if-unknown") {
|
|
75
|
+
args.submit_if_unknown = true;
|
|
76
|
+
} else if (arg === "--format") {
|
|
77
|
+
args.format = readValue(rest, i, arg);
|
|
78
|
+
i += 1;
|
|
79
|
+
} else {
|
|
80
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (!args.component_name) throw new Error("Missing component name.");
|
|
85
|
+
if (!["console", "json"].includes(args.format)) throw new Error("Unsupported format. Use console or json.");
|
|
86
|
+
return args;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function compactList(items, max = 5) {
|
|
90
|
+
if (!Array.isArray(items) || !items.length) return "none";
|
|
91
|
+
const shown = items.slice(0, max);
|
|
92
|
+
const suffix = items.length > max ? `, +${items.length - max} more` : "";
|
|
93
|
+
return `${shown.join(", ")}${suffix}`;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function renderConsole({ review, submission, usage }) {
|
|
97
|
+
const component = review.component || {};
|
|
98
|
+
const contract = review.agent_decision_contract || {};
|
|
99
|
+
const oneStep = review.one_step_action || {};
|
|
100
|
+
const lines = [
|
|
101
|
+
"AgentSecurityLens pre-install decision",
|
|
102
|
+
"",
|
|
103
|
+
`Component: ${component.name || component.full_name || "unknown"} (${component.type || "unknown"})`,
|
|
104
|
+
`Coverage: ${review.intelligence_coverage?.state || component.intelligence_state || "unknown"} / ${
|
|
105
|
+
review.intelligence_coverage?.confidence || "unknown"
|
|
106
|
+
} confidence`,
|
|
107
|
+
`Decision: ${review.decision || "unknown"}`,
|
|
108
|
+
`Trust score: ${review.trust_score ?? "unknown"} / 100`,
|
|
109
|
+
`Risk level: ${review.risk_level || "unknown"}`,
|
|
110
|
+
`Risk signals: ${compactList(review.risk_signals)}`,
|
|
111
|
+
"",
|
|
112
|
+
`Automatic install allowed: ${contract.automatic_install_allowed === true ? "yes" : "no"}`,
|
|
113
|
+
`User confirmation required: ${contract.user_confirmation_required === false ? "no" : "yes"}`,
|
|
114
|
+
`One-step action: ${oneStep.action_type || review.next_action || "follow_agent_decision_contract"}`
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
if (Array.isArray(review.safe_install_plan) && review.safe_install_plan.length) {
|
|
118
|
+
lines.push("", "Safe install plan:");
|
|
119
|
+
review.safe_install_plan.slice(0, 5).forEach((step, index) => lines.push(` ${index + 1}. ${step}`));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const alternatives = review.recommended_alternatives || review.alternatives || [];
|
|
123
|
+
if (alternatives.length) {
|
|
124
|
+
lines.push("", "Recommended alternatives:");
|
|
125
|
+
alternatives.slice(0, 5).forEach((item, index) => {
|
|
126
|
+
const name = item.name || item.component_name || item.id || "unknown";
|
|
127
|
+
const reason = item.reason || item.rationale || item.summary || "";
|
|
128
|
+
lines.push(` ${index + 1}. ${name}${reason ? ` - ${reason}` : ""}`);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (submission) {
|
|
133
|
+
lines.push("", `Unknown submission: ${submission.status || "queued"} (${submission.id || "no id"})`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
lines.push("", `Usage telemetry: ${usage?.source || "local"} / ${usage?.status || (usage?.recorded ? "recorded" : "queued")}`);
|
|
137
|
+
lines.push("", review.agent_instruction || "Follow the returned decision before installing this component.");
|
|
138
|
+
return lines.join("\n");
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
async function main() {
|
|
142
|
+
const args = parseArgs(process.argv);
|
|
143
|
+
if (args.help) {
|
|
144
|
+
printHelp();
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const startedAt = Date.now();
|
|
149
|
+
const input = {
|
|
150
|
+
component_name: args.component_name,
|
|
151
|
+
component_type: args.component_type,
|
|
152
|
+
source_url: args.source_url,
|
|
153
|
+
install_command: args.install_command,
|
|
154
|
+
planned_use: args.planned_use,
|
|
155
|
+
requested_permissions: args.requested_permissions.length ? args.requested_permissions : undefined,
|
|
156
|
+
submit_if_unknown: args.submit_if_unknown
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
const review = await reviewBeforeInstall(input);
|
|
160
|
+
let submission = null;
|
|
161
|
+
if (
|
|
162
|
+
args.submit_if_unknown &&
|
|
163
|
+
(review.unknown_component?.should_submit || (review.component?.cataloged && !review.component?.reviewed))
|
|
164
|
+
) {
|
|
165
|
+
submission = await submitUnknownComponent(input);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const usage = await recordUsageEvent({
|
|
169
|
+
event_type: "review_before_install",
|
|
170
|
+
source: "asl-review-cli",
|
|
171
|
+
recorded_at: new Date().toISOString(),
|
|
172
|
+
duration_ms: Date.now() - startedAt,
|
|
173
|
+
component_name: input.component_name,
|
|
174
|
+
component_type: input.component_type,
|
|
175
|
+
source_url: input.source_url,
|
|
176
|
+
install_command: input.install_command,
|
|
177
|
+
decision: review.decision || "unknown",
|
|
178
|
+
trust_score: review.trust_score ?? null,
|
|
179
|
+
risk_level: review.risk_level || null,
|
|
180
|
+
intelligence_state: review.intelligence_coverage?.state || review.component?.intelligence_state || "unknown"
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
const output = { review, submission, usage };
|
|
184
|
+
if (args.format === "json") {
|
|
185
|
+
console.log(JSON.stringify(output, null, 2));
|
|
186
|
+
} else {
|
|
187
|
+
console.log(renderConsole(output));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
await main().catch((error) => {
|
|
192
|
+
console.error(error?.stack || String(error));
|
|
193
|
+
process.exitCode = 1;
|
|
194
|
+
});
|
package/glama.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://glama.ai/mcp/schemas/server.json",
|
|
3
|
+
"maintainers": [
|
|
4
|
+
"professor2k8"
|
|
5
|
+
],
|
|
6
|
+
"name": "agent-security-lens",
|
|
7
|
+
"description": "Safe-install and trust-check MCP for autonomous agents before they install MCPs, Skills or tools.",
|
|
8
|
+
"type": "mcp_server",
|
|
9
|
+
"status": "active",
|
|
10
|
+
"framework": "Model Context Protocol",
|
|
11
|
+
"tools": 10,
|
|
12
|
+
"transport": [
|
|
13
|
+
"stdio"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"agent-security",
|
|
17
|
+
"mcp-security",
|
|
18
|
+
"safe-install",
|
|
19
|
+
"trust-check",
|
|
20
|
+
"skill-security",
|
|
21
|
+
"tool-safety",
|
|
22
|
+
"security-audit",
|
|
23
|
+
"autonomous-agents"
|
|
24
|
+
],
|
|
25
|
+
"features": {
|
|
26
|
+
"pre_install_review": {
|
|
27
|
+
"enabled": true,
|
|
28
|
+
"description": "Agents call review_before_install before installing MCPs, Skills or tools."
|
|
29
|
+
},
|
|
30
|
+
"decision_contract": {
|
|
31
|
+
"enabled": true,
|
|
32
|
+
"decisions": [
|
|
33
|
+
"allow",
|
|
34
|
+
"allow_with_restrictions",
|
|
35
|
+
"ask_user",
|
|
36
|
+
"avoid"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"unknown_component_research": {
|
|
40
|
+
"enabled": true,
|
|
41
|
+
"description": "Unknown public components can be submitted for ASL research without sending private data."
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
package/llms.txt
CHANGED
|
@@ -5,6 +5,9 @@ AgentSecurityLens (ASL) is an agent-facing security intelligence service.
|
|
|
5
5
|
Primary use:
|
|
6
6
|
Before installing or enabling any MCP, Skill, tool, prompt bundle or workflow, call the AgentSecurityLens MCP tool `review_before_install`.
|
|
7
7
|
|
|
8
|
+
Quick pre-install review command:
|
|
9
|
+
`npx -y agent-security-lens review <component-name> --type mcp --source-url <url> --install-command <command>`
|
|
10
|
+
|
|
8
11
|
Public intelligence files:
|
|
9
12
|
- docs/agent-install.md
|
|
10
13
|
- docs/install-snippets/README.md
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-security-lens",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"mcpName": "io.github.professor2k8/agent-security-lens",
|
|
6
6
|
"description": "Safe-install and trust-check MCP for autonomous agents before they install MCPs, Skills or tools.",
|
|
@@ -41,12 +41,15 @@
|
|
|
41
41
|
"agent-security-lens-mcp": "./apps/mcp-server/agent-security-lens-mcp.mjs",
|
|
42
42
|
"asl-mcp": "./apps/mcp-server/agent-security-lens-mcp.mjs",
|
|
43
43
|
"asl-scan": "./bin/agent-security-lens.mjs",
|
|
44
|
-
"agent-security-lens-scan": "./bin/agent-security-lens.mjs"
|
|
44
|
+
"agent-security-lens-scan": "./bin/agent-security-lens.mjs",
|
|
45
|
+
"asl-review": "./bin/agent-security-lens-review.mjs",
|
|
46
|
+
"agent-security-lens-review": "./bin/agent-security-lens-review.mjs"
|
|
45
47
|
},
|
|
46
48
|
"scripts": {
|
|
47
49
|
"assess:example": "node ./bin/agent-security-lens.mjs assess ./examples/openclaw-like --profile openclaw-like",
|
|
48
50
|
"assess:json": "node ./bin/agent-security-lens.mjs assess ./examples/openclaw-like --profile openclaw-like --format json",
|
|
49
51
|
"assess:markdown": "node ./bin/agent-security-lens.mjs assess ./examples/openclaw-like --profile openclaw-like --format markdown",
|
|
52
|
+
"review:example": "node ./bin/agent-security-lens-review.mjs filesystem --type mcp --source-url https://github.com/modelcontextprotocol/servers --install-command \"npx -y @modelcontextprotocol/server-filesystem .\" --permission filesystem-read --permission filesystem-write",
|
|
50
53
|
"mcp:start": "node ./apps/mcp-server/agent-security-lens-mcp.mjs",
|
|
51
54
|
"mcp:smoke": "node ./scripts/verify-mcp-server.mjs",
|
|
52
55
|
"verify:registry": "node ./scripts/verify-registry.mjs",
|
package/server.json
CHANGED
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"url": "https://github.com/professor2k8/agent-security-lens",
|
|
9
9
|
"source": "github"
|
|
10
10
|
},
|
|
11
|
-
"version": "0.1.
|
|
11
|
+
"version": "0.1.6",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "agent-security-lens",
|
|
16
|
-
"version": "0.1.
|
|
16
|
+
"version": "0.1.6",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
},
|