agentscore-mcp 1.0.4 → 1.0.5

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
@@ -26,6 +26,22 @@
26
26
 
27
27
  ---
28
28
 
29
+ > [!TIP]
30
+ > **Compatibility:** AgentScore works with any MCP client that supports local `stdio` servers, including Claude Code/Desktop, Cursor, Codex-compatible clients, and other MCP hosts.
31
+
32
+ ## Quick Navigation
33
+
34
+ | Start Here | Go To |
35
+ |:---|:---|
36
+ | Why + who this is for | [`Why This Exists`](#why-this-exists) · [`Goal, Audience, and Limits`](#goal-audience-and-limits) |
37
+ | Install and first run | [`Install in 10 Seconds`](#install-in-10-seconds) · [`Setup`](#setup) |
38
+ | Validate with real/controlled data | [`Production Proof`](#production-proof-2-minute-sanity-check) |
39
+ | Understand scoring model | [`Scoring System`](#scoring-system) |
40
+ | Adapter capabilities | [`Platform Adapters`](#platform-adapters) |
41
+ | Security and trust posture | [`Trust & Transparency`](#trust--transparency) |
42
+
43
+ ---
44
+
29
45
  ## Why This Exists
30
46
 
31
47
  You're about to give AI agents access to customer data, source code, and critical workflows.
@@ -50,6 +66,20 @@ Built in public from recurring conversations with AI governance teams asking one
50
66
  - Scores depend on available data quality; sparse data lowers certainty even if a score is produced.
51
67
  - Use it with human review, policy controls, and least-privilege access.
52
68
 
69
+ > [!WARNING]
70
+ > No README or open-source license can guarantee zero legal risk. AgentScore is provided as-is (MIT), without warranty, and is **not legal advice**.
71
+
72
+ ---
73
+
74
+ ## Pick Your Track
75
+
76
+ | Track | Best For | First Step |
77
+ |:---|:---|:---|
78
+ | `demo` | Fastest product demo with built-in agents | Run the install command and ask for `@NovaMind` |
79
+ | `github` | Live public profile/thread analysis | `export AGENTSCORE_ADAPTER=github` |
80
+ | `json` | Controlled internal evaluations from your own data | `export AGENTSCORE_ADAPTER=json` + set `AGENTSCORE_DATA_PATH` |
81
+ | `moltbook` | Live Moltbook agent analysis | `export AGENTSCORE_ADAPTER=moltbook` + set `MOLTBOOK_API_KEY` |
82
+
53
83
  ---
54
84
 
55
85
  ## Install in 10 Seconds
@@ -58,6 +88,12 @@ Built in public from recurring conversations with AI governance teams asking one
58
88
  claude mcp add agentscore -- npx -y agentscore-mcp
59
89
  ```
60
90
 
91
+ Optional policy-enforced startup:
92
+
93
+ ```bash
94
+ claude mcp add agentscore -- npx -y agentscore-mcp --enforce
95
+ ```
96
+
61
97
  Then ask Claude:
62
98
 
63
99
  > _"Investigate @NovaMind — can I trust this agent?"_
@@ -174,8 +210,64 @@ export AGENTSCORE_ADAPTER=json # or github / moltbook
174
210
 
175
211
  AgentScore is a standard MCP server over `stdio`. Any MCP client that can launch local `stdio` servers can use it (not only Cursor/Claude).
176
212
 
213
+ | Client Type | Supported |
214
+ |:---|:---:|
215
+ | Claude Code | Yes |
216
+ | Claude Desktop | Yes |
217
+ | Cursor | Yes |
218
+ | Codex-compatible MCP clients | Yes |
219
+ | Any MCP host with local `stdio` support | Yes |
220
+
177
221
  Public site note: [`ai-agent-score.vercel.app`](https://ai-agent-score.vercel.app) is currently a public trust index/leaderboard experience. MCP `reportUrl` links are handle-based and resolve when that handle exists in the site index.
178
222
 
223
+ ### Centralized Service Mode (Streamable HTTP)
224
+
225
+ Run one shared governance endpoint for multiple clients:
226
+
227
+ ```bash
228
+ export AGENTSCORE_TRANSPORT=http
229
+ export AGENTSCORE_ENABLED_TOOLS=agentscore,sweep
230
+ export AGENTSCORE_HTTP_HOST=127.0.0.1
231
+ export AGENTSCORE_HTTP_PORT=8787
232
+ export AGENTSCORE_HTTP_PATH=/mcp
233
+ export AGENTSCORE_ENFORCE=true
234
+ export AGENTSCORE_POLICY_MIN_SCORE=650
235
+ node dist/server.js
236
+ ```
237
+
238
+ Service endpoints:
239
+ - MCP: `http://127.0.0.1:8787/mcp`
240
+ - Health: `http://127.0.0.1:8787/healthz`
241
+ - Policy snapshot: `http://127.0.0.1:8787/agentscore/policy`
242
+ - Audit events: `http://127.0.0.1:8787/agentscore/audit`
243
+
244
+ Optionally protect the MCP endpoint itself:
245
+
246
+ ```bash
247
+ export AGENTSCORE_HTTP_AUTH_TOKEN=replace-with-strong-token
248
+ ```
249
+
250
+ Then send one of:
251
+ - `Authorization: Bearer <token>`
252
+ - `x-agentscore-mcp-token: <token>`
253
+ - `x-agentscore-token: <token>`
254
+
255
+ Optionally protect policy/audit endpoints:
256
+
257
+ ```bash
258
+ export AGENTSCORE_AUDIT_TOKEN=replace-with-strong-token
259
+ ```
260
+
261
+ Then call with either:
262
+ - `Authorization: Bearer <token>`
263
+ - `x-agentscore-audit-token: <token>`
264
+
265
+ If your MCP client does not support direct remote Streamable HTTP servers, use a local bridge:
266
+
267
+ ```bash
268
+ npx -y mcp-remote http://127.0.0.1:8787/mcp
269
+ ```
270
+
179
271
  ### Clean Onboarding (Recommended)
180
272
 
181
273
  Use a single setup command and verify once:
@@ -255,6 +347,24 @@ Team/project-scoped example: [`examples/mcp.project.json`](examples/mcp.project.
255
347
  - If project scope is required, create/update one config file deliberately (do not auto-generate multiple variants).
256
348
  - Do not commit `.mcp.json` unless your team explicitly wants repo-scoped MCP defaults.
257
349
 
350
+ ### Policy Gate Mode (Optional)
351
+
352
+ Enable hard blocking (instead of advisory-only scoring):
353
+
354
+ ```bash
355
+ export AGENTSCORE_ENFORCE=true
356
+ export AGENTSCORE_POLICY_MIN_SCORE=650
357
+ export AGENTSCORE_POLICY_TRUSTED_ADAPTERS=github,json
358
+ ```
359
+
360
+ Or pass `--enforce` at startup to set `AGENTSCORE_ENFORCE=true`.
361
+
362
+ When enforced, AgentScore can return blocked responses (`isError: true`) if policy conditions are violated. Every decision emits a structured audit event to stderr:
363
+
364
+ ```text
365
+ [agentscore][audit] {"type":"agentscore_policy_decision",...}
366
+ ```
367
+
258
368
  ---
259
369
 
260
370
  ## Scoring System
@@ -451,6 +561,8 @@ flowchart LR
451
561
  | Variable | Default | Description |
452
562
  |:---|:---:|:---|
453
563
  | `AGENTSCORE_ADAPTER` | `demo` | `demo` · `github` · `json` · `moltbook` |
564
+ | `AGENTSCORE_ENABLED_TOOLS` | `agentscore,sweep` | Comma-separated tool allow-list (`agentscore`, `sweep`) |
565
+ | `AGENTSCORE_TRANSPORT` | `stdio` | `stdio` or `http` (Streamable HTTP server mode) |
454
566
  | `AGENTSCORE_PUBLIC_MODE` | `false` | If `true`, requires explicit adapter and blocks `demo` |
455
567
  | `GITHUB_TOKEN` | — | GitHub PAT (optional, increases rate limit to 5,000/hr) |
456
568
  | `MOLTBOOK_API_KEY` | — | Required for Moltbook adapter |
@@ -458,6 +570,20 @@ flowchart LR
458
570
  | `AGENTSCORE_CACHE_TTL` | `86400` | Score cache TTL in seconds |
459
571
  | `AGENTSCORE_RATE_LIMIT_MS` | `200` | Moltbook adapter request delay (ms) |
460
572
  | `AGENTSCORE_SITE_URL` | `https://ai-agent-score.vercel.app` | Base URL for report links in MCP output |
573
+ | `AGENTSCORE_HTTP_HOST` | `127.0.0.1` | Bind host for HTTP transport |
574
+ | `AGENTSCORE_HTTP_PORT` | `8787` | Bind port for HTTP transport |
575
+ | `AGENTSCORE_HTTP_PATH` | `/mcp` | MCP endpoint path for HTTP transport |
576
+ | `AGENTSCORE_HTTP_AUTH_TOKEN` | — | Optional bearer token required for `/mcp` HTTP endpoint |
577
+ | `AGENTSCORE_AUDIT_TOKEN` | — | Optional bearer token required for policy/audit endpoints |
578
+ | `AGENTSCORE_AUDIT_MAX_ENTRIES` | `500` | In-memory cap for retained policy audit events |
579
+ | `AGENTSCORE_ENFORCE` | `false` | If `true`, policy gate can block risky results |
580
+ | `AGENTSCORE_POLICY_MIN_SCORE` | `550` | Minimum allowed score when policy is enforced |
581
+ | `AGENTSCORE_POLICY_BLOCK_RECOMMENDATIONS` | `AVOID` | Comma-separated blocked recommendations (`TRUST`, `CAUTION`, `AVOID`) |
582
+ | `AGENTSCORE_POLICY_BLOCK_THREAT_LEVELS` | `COMPROMISED` | Comma-separated blocked sweep levels (`SUSPICIOUS`, `COMPROMISED`) |
583
+ | `AGENTSCORE_POLICY_BLOCK_FLAGS` | `prompt injection,manipulation keyword,account not claimed` | Comma-separated flag substrings that trigger blocking |
584
+ | `AGENTSCORE_POLICY_TRUSTED_ADAPTERS` | `github,json,moltbook` *(when enforced)* | Comma-separated adapters allowed in enforced mode |
585
+ | `AGENTSCORE_POLICY_FAIL_ON_ERRORS` | `false` | If `true`, any per-handle scoring errors trigger blocking |
586
+ | `AGENTSCORE_AUDIT_LOG` | `auto` (`true` when enforced) | Set `false` to suppress structured policy audit events |
461
587
 
462
588
  Invalid numeric values fall back to defaults. Trailing slashes on URLs are trimmed automatically. `AGENTSCORE_SITE_URL` must be a valid `https://` URL.
463
589
 
@@ -9,7 +9,7 @@
9
9
  import type { AgentPlatformAdapter, AgentProfile, AgentContent } from "../types.js";
10
10
  export declare class DemoAdapter implements AgentPlatformAdapter {
11
11
  readonly name = "demo";
12
- readonly version = "1.0.4";
12
+ readonly version = "1.0.5";
13
13
  fetchProfile(handle: string): Promise<AgentProfile | null>;
14
14
  fetchContent(handle: string, limit?: number): Promise<AgentContent[]>;
15
15
  fetchInteractions(handle: string, limit?: number): Promise<AgentContent[]>;
@@ -2,7 +2,7 @@ import type { AgentPlatformAdapter, AgentProfile, AgentContent } from "../types.
2
2
  /** GitHub platform adapter — scores any public GitHub account. */
3
3
  export declare class GitHubAdapter implements AgentPlatformAdapter {
4
4
  readonly name = "github";
5
- readonly version = "1.0.4";
5
+ readonly version = "1.0.5";
6
6
  private client;
7
7
  constructor();
8
8
  fetchProfile(handle: string): Promise<AgentProfile | null>;
@@ -23,7 +23,7 @@ import type { AgentPlatformAdapter, AgentProfile, AgentContent } from "../types.
23
23
  */
24
24
  export declare class JSONAdapter implements AgentPlatformAdapter {
25
25
  readonly name = "json";
26
- readonly version = "1.0.4";
26
+ readonly version = "1.0.5";
27
27
  private data;
28
28
  private loadData;
29
29
  fetchProfile(handle: string): Promise<AgentProfile | null>;
@@ -2,7 +2,7 @@ import type { AgentPlatformAdapter, AgentProfile, AgentContent } from "../types.
2
2
  /** Moltbook platform adapter — the default adapter. */
3
3
  export declare class MoltbookAdapter implements AgentPlatformAdapter {
4
4
  readonly name = "moltbook";
5
- readonly version = "1.0.4";
5
+ readonly version = "1.0.5";
6
6
  private client;
7
7
  constructor();
8
8
  fetchProfile(handle: string): Promise<AgentProfile | null>;
package/dist/config.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export interface Config {
2
2
  adapter: "demo" | "moltbook" | "json" | "github";
3
+ transport: "stdio" | "http";
4
+ enabledTools: Array<"agentscore" | "sweep">;
3
5
  moltbookApiKey: string;
4
6
  githubToken: string;
5
7
  dataPath: string;
@@ -7,6 +9,12 @@ export interface Config {
7
9
  rateLimitMs: number;
8
10
  siteUrl: string;
9
11
  publicMode: boolean;
12
+ httpHost: string;
13
+ httpPort: number;
14
+ httpPath: string;
15
+ httpAuthToken: string;
16
+ auditToken: string;
17
+ auditMaxEntries: number;
10
18
  }
11
19
  /** Load and validate configuration from environment variables. */
12
20
  export declare function loadConfig(): Config;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB;AAKD,kEAAkE;AAClE,wBAAgB,UAAU,IAAI,MAAM,CAiFnC;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,IAAI,MAAM,CAKlC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjD,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAOD,kEAAkE;AAClE,wBAAgB,UAAU,IAAI,MAAM,CA0HnC;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,IAAI,MAAM,CAKlC"}
package/dist/config.js CHANGED
@@ -1,9 +1,17 @@
1
1
  import path from "node:path";
2
2
  let _config = null;
3
3
  const ADAPTERS = ["demo", "moltbook", "json", "github"];
4
+ const TRANSPORTS = ["stdio", "http"];
5
+ const TOOLS = ["agentscore", "sweep"];
4
6
  /** Load and validate configuration from environment variables. */
5
7
  export function loadConfig() {
6
8
  const publicMode = (process.env.AGENTSCORE_PUBLIC_MODE || "").trim().toLowerCase() === "true";
9
+ const rawTransport = (process.env.AGENTSCORE_TRANSPORT || "").trim();
10
+ const resolvedTransport = rawTransport || "stdio";
11
+ if (!TRANSPORTS.includes(resolvedTransport)) {
12
+ throw new Error(`AGENTSCORE_TRANSPORT must be one of: ${TRANSPORTS.join(", ")}. Received: "${resolvedTransport || "<empty>"}".`);
13
+ }
14
+ const transport = resolvedTransport;
7
15
  const rawAdapter = (process.env.AGENTSCORE_ADAPTER || "").trim();
8
16
  const resolvedAdapter = rawAdapter || "demo";
9
17
  if (publicMode && !rawAdapter) {
@@ -50,8 +58,33 @@ export function loadConfig() {
50
58
  }
51
59
  const cacheTtl = parseInt(process.env.AGENTSCORE_CACHE_TTL || "86400", 10);
52
60
  const rateLimitMs = parseInt(process.env.AGENTSCORE_RATE_LIMIT_MS || "200", 10);
61
+ const httpHost = (process.env.AGENTSCORE_HTTP_HOST || "127.0.0.1").trim() || "127.0.0.1";
62
+ const parsedHttpPort = parseInt(process.env.AGENTSCORE_HTTP_PORT || "8787", 10);
63
+ const httpPort = Number.isNaN(parsedHttpPort) ? 8787 : Math.max(1, Math.min(parsedHttpPort, 65535));
64
+ const rawHttpPath = (process.env.AGENTSCORE_HTTP_PATH || "/mcp").trim() || "/mcp";
65
+ const httpPath = rawHttpPath.startsWith("/") ? rawHttpPath : `/${rawHttpPath}`;
66
+ const parsedAuditMaxEntries = parseInt(process.env.AGENTSCORE_AUDIT_MAX_ENTRIES || "500", 10);
67
+ const auditMaxEntries = Number.isNaN(parsedAuditMaxEntries)
68
+ ? 500
69
+ : Math.max(10, Math.min(parsedAuditMaxEntries, 10_000));
70
+ const rawEnabledTools = (process.env.AGENTSCORE_ENABLED_TOOLS || "").trim().toLowerCase();
71
+ let enabledTools = [...TOOLS];
72
+ if (rawEnabledTools) {
73
+ const requestedTools = [...new Set(rawEnabledTools.split(",").map((item) => item.trim()).filter(Boolean))];
74
+ const invalidTools = requestedTools.filter((tool) => !TOOLS.includes(tool));
75
+ if (invalidTools.length > 0) {
76
+ throw new Error(`AGENTSCORE_ENABLED_TOOLS contains invalid tools: ${invalidTools.join(", ")}. ` +
77
+ `Allowed values: ${TOOLS.join(", ")}.`);
78
+ }
79
+ enabledTools = TOOLS.filter((tool) => requestedTools.includes(tool));
80
+ if (enabledTools.length === 0) {
81
+ throw new Error(`AGENTSCORE_ENABLED_TOOLS must include at least one tool: ${TOOLS.join(", ")}.`);
82
+ }
83
+ }
53
84
  _config = {
54
85
  adapter,
86
+ transport,
87
+ enabledTools,
55
88
  moltbookApiKey: process.env.MOLTBOOK_API_KEY || "",
56
89
  githubToken: process.env.GITHUB_TOKEN || "",
57
90
  dataPath,
@@ -59,6 +92,12 @@ export function loadConfig() {
59
92
  rateLimitMs: Number.isNaN(rateLimitMs) ? 200 : rateLimitMs,
60
93
  siteUrl,
61
94
  publicMode,
95
+ httpHost,
96
+ httpPort,
97
+ httpPath,
98
+ httpAuthToken: process.env.AGENTSCORE_HTTP_AUTH_TOKEN || "",
99
+ auditToken: process.env.AGENTSCORE_AUDIT_TOKEN || "",
100
+ auditMaxEntries,
62
101
  };
63
102
  return _config;
64
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export interface PolicyAuditEvent {
2
+ ts: string;
3
+ type: "agentscore_policy_decision";
4
+ tool: "agentscore" | "sweep";
5
+ enforced: boolean;
6
+ blocked: boolean;
7
+ reasons: string[];
8
+ policy: {
9
+ minScore: number;
10
+ blockedRecommendations: Array<"TRUST" | "CAUTION" | "AVOID">;
11
+ blockedThreatLevels: Array<"SUSPICIOUS" | "COMPROMISED">;
12
+ blockedFlagPatterns: string[];
13
+ trustedAdapters: string[];
14
+ failOnErrors: boolean;
15
+ };
16
+ metadata: Record<string, unknown>;
17
+ }
18
+ export declare function setAuditStoreMaxEntries(value: number): void;
19
+ export declare function appendPolicyAuditEvent(event: PolicyAuditEvent): void;
20
+ export declare function listPolicyAuditEvents(options?: {
21
+ limit?: number;
22
+ tool?: "agentscore" | "sweep";
23
+ blocked?: boolean;
24
+ }): PolicyAuditEvent[];
25
+ export declare function getPolicyAuditStats(): {
26
+ total: number;
27
+ blocked: number;
28
+ allowed: number;
29
+ byTool: {
30
+ agentscore: number;
31
+ sweep: number;
32
+ };
33
+ };
34
+ //# sourceMappingURL=audit-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-store.d.ts","sourceRoot":"","sources":["../../src/security/audit-store.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,4BAA4B,CAAC;IACnC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;QAC7D,mBAAmB,EAAE,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC;QACzD,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM3D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAKpE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,gBAAgB,EAAE,CAQrB;AAED,wBAAgB,mBAAmB,IAAI;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAkBA"}
@@ -0,0 +1,50 @@
1
+ const events = [];
2
+ let maxEntries = 500;
3
+ export function setAuditStoreMaxEntries(value) {
4
+ if (!Number.isFinite(value))
5
+ return;
6
+ maxEntries = Math.max(10, Math.min(10_000, Math.trunc(value)));
7
+ if (events.length > maxEntries) {
8
+ events.splice(0, events.length - maxEntries);
9
+ }
10
+ }
11
+ export function appendPolicyAuditEvent(event) {
12
+ events.push(event);
13
+ if (events.length > maxEntries) {
14
+ events.splice(0, events.length - maxEntries);
15
+ }
16
+ }
17
+ export function listPolicyAuditEvents(options) {
18
+ const limit = options?.limit ? Math.max(1, Math.min(options.limit, 1000)) : 100;
19
+ const filtered = events.filter((event) => {
20
+ if (options?.tool && event.tool !== options.tool)
21
+ return false;
22
+ if (options?.blocked !== undefined && event.blocked !== options.blocked)
23
+ return false;
24
+ return true;
25
+ });
26
+ return filtered.slice(Math.max(0, filtered.length - limit));
27
+ }
28
+ export function getPolicyAuditStats() {
29
+ let blocked = 0;
30
+ let agentscore = 0;
31
+ let sweep = 0;
32
+ for (const event of events) {
33
+ if (event.blocked)
34
+ blocked++;
35
+ if (event.tool === "agentscore")
36
+ agentscore++;
37
+ else
38
+ sweep++;
39
+ }
40
+ return {
41
+ total: events.length,
42
+ blocked,
43
+ allowed: events.length - blocked,
44
+ byTool: {
45
+ agentscore,
46
+ sweep,
47
+ },
48
+ };
49
+ }
50
+ //# sourceMappingURL=audit-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-store.js","sourceRoot":"","sources":["../../src/security/audit-store.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,GAAuB,EAAE,CAAC;AACtC,IAAI,UAAU,GAAG,GAAG,CAAC;AAErB,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IACpC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAuB;IAC5D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAIrC;IACC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,IAAI,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/D,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,mBAAmB;IASjC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,UAAU,EAAE,CAAC;;YACzC,KAAK,EAAE,CAAC;IACf,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO;QAChC,MAAM,EAAE;YACN,UAAU;YACV,KAAK;SACN;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { AgentScoreResult, Recommendation } from "../scoring/types.js";
2
+ export interface PolicyConfig {
3
+ enforce: boolean;
4
+ minScore: number;
5
+ blockedRecommendations: Recommendation[];
6
+ blockedThreatLevels: Array<"SUSPICIOUS" | "COMPROMISED">;
7
+ blockedFlagPatterns: string[];
8
+ trustedAdapters: string[];
9
+ failOnErrors: boolean;
10
+ auditLog: boolean;
11
+ }
12
+ export interface PolicyGateResult {
13
+ enforced: boolean;
14
+ blocked: boolean;
15
+ reasons: string[];
16
+ policy: {
17
+ minScore: number;
18
+ blockedRecommendations: Recommendation[];
19
+ blockedThreatLevels: Array<"SUSPICIOUS" | "COMPROMISED">;
20
+ blockedFlagPatterns: string[];
21
+ trustedAdapters: string[];
22
+ failOnErrors: boolean;
23
+ };
24
+ }
25
+ interface AgentPolicyInput {
26
+ adapter: string;
27
+ results: AgentScoreResult[];
28
+ errorsCount: number;
29
+ }
30
+ interface SweepPolicyInput {
31
+ adapter: string;
32
+ threatLevel: "CLEAN" | "SUSPICIOUS" | "COMPROMISED";
33
+ participants: Array<{
34
+ handle: string;
35
+ score: number;
36
+ }>;
37
+ patterns: string[];
38
+ notes?: string[];
39
+ }
40
+ export declare function readPolicyConfigFromEnv(env?: NodeJS.ProcessEnv): PolicyConfig;
41
+ export declare function evaluateAgentPolicy(input: AgentPolicyInput, config: PolicyConfig): PolicyGateResult;
42
+ export declare function evaluateSweepPolicy(input: SweepPolicyInput, config: PolicyConfig): PolicyGateResult;
43
+ export declare function emitPolicyAudit(tool: "agentscore" | "sweep", gate: PolicyGateResult, metadata: Record<string, unknown>, config: PolicyConfig): void;
44
+ export {};
45
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,cAAc,EAAE,CAAC;IACzC,mBAAmB,EAAE,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,sBAAsB,EAAE,cAAc,EAAE,CAAC;QACzC,mBAAmB,EAAE,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC;QACzD,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;IACpD,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAoCD,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,CAsC1F;AAkBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,GAAG,gBAAgB,CA+BnG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,GAAG,gBAAgB,CA6BnG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAcnJ"}
@@ -0,0 +1,144 @@
1
+ import { appendPolicyAuditEvent } from "./audit-store.js";
2
+ function parseBool(value, fallback) {
3
+ if (value === undefined)
4
+ return fallback;
5
+ const normalized = value.trim().toLowerCase();
6
+ if (["1", "true", "yes", "on"].includes(normalized))
7
+ return true;
8
+ if (["0", "false", "no", "off"].includes(normalized))
9
+ return false;
10
+ return fallback;
11
+ }
12
+ function parseList(value) {
13
+ if (!value)
14
+ return [];
15
+ return value
16
+ .split(",")
17
+ .map((item) => item.trim())
18
+ .filter((item) => item.length > 0);
19
+ }
20
+ function parseThreatLevels(raw) {
21
+ const allowed = new Set(["SUSPICIOUS", "COMPROMISED"]);
22
+ const out = [];
23
+ for (const item of raw) {
24
+ const upper = item.toUpperCase();
25
+ if (allowed.has(upper)) {
26
+ out.push(upper);
27
+ }
28
+ }
29
+ return out;
30
+ }
31
+ function normalizeScore(raw, fallback) {
32
+ const parsed = parseInt(raw || "", 10);
33
+ if (Number.isNaN(parsed))
34
+ return fallback;
35
+ return Math.max(300, Math.min(850, parsed));
36
+ }
37
+ export function readPolicyConfigFromEnv(env = process.env) {
38
+ const enforce = parseBool(env.AGENTSCORE_ENFORCE, false);
39
+ const minScore = normalizeScore(env.AGENTSCORE_POLICY_MIN_SCORE, 550);
40
+ const blockedRecommendations = parseList(env.AGENTSCORE_POLICY_BLOCK_RECOMMENDATIONS)
41
+ .map((value) => value.toUpperCase())
42
+ .filter((value) => ["TRUST", "CAUTION", "AVOID"].includes(value));
43
+ const effectiveBlockedRecommendations = blockedRecommendations.length > 0 ? blockedRecommendations : ["AVOID"];
44
+ const blockedThreatLevels = parseThreatLevels(parseList(env.AGENTSCORE_POLICY_BLOCK_THREAT_LEVELS));
45
+ const effectiveBlockedThreatLevels = blockedThreatLevels.length > 0 ? blockedThreatLevels : ["COMPROMISED"];
46
+ const blockedFlagPatterns = parseList(env.AGENTSCORE_POLICY_BLOCK_FLAGS).map((value) => value.toLowerCase());
47
+ const effectiveBlockedFlagPatterns = blockedFlagPatterns.length > 0
48
+ ? blockedFlagPatterns
49
+ : ["prompt injection", "manipulation keyword", "account not claimed"];
50
+ const trustedAdapters = parseList(env.AGENTSCORE_POLICY_TRUSTED_ADAPTERS).map((value) => value.toLowerCase());
51
+ const effectiveTrustedAdapters = trustedAdapters.length > 0 ? trustedAdapters : enforce ? ["github", "json", "moltbook"] : [];
52
+ return {
53
+ enforce,
54
+ minScore,
55
+ blockedRecommendations: effectiveBlockedRecommendations,
56
+ blockedThreatLevels: effectiveBlockedThreatLevels,
57
+ blockedFlagPatterns: effectiveBlockedFlagPatterns,
58
+ trustedAdapters: effectiveTrustedAdapters,
59
+ failOnErrors: parseBool(env.AGENTSCORE_POLICY_FAIL_ON_ERRORS, false),
60
+ auditLog: parseBool(env.AGENTSCORE_AUDIT_LOG, enforce),
61
+ };
62
+ }
63
+ function buildPolicyGate(config, reasons) {
64
+ return {
65
+ enforced: config.enforce,
66
+ blocked: config.enforce && reasons.length > 0,
67
+ reasons: [...new Set(reasons)],
68
+ policy: {
69
+ minScore: config.minScore,
70
+ blockedRecommendations: config.blockedRecommendations,
71
+ blockedThreatLevels: config.blockedThreatLevels,
72
+ blockedFlagPatterns: config.blockedFlagPatterns,
73
+ trustedAdapters: config.trustedAdapters,
74
+ failOnErrors: config.failOnErrors,
75
+ },
76
+ };
77
+ }
78
+ export function evaluateAgentPolicy(input, config) {
79
+ const reasons = [];
80
+ if (!config.enforce)
81
+ return buildPolicyGate(config, reasons);
82
+ if (config.trustedAdapters.length > 0 && !config.trustedAdapters.includes(input.adapter.toLowerCase())) {
83
+ reasons.push(`Adapter '${input.adapter}' is not in trusted adapters list.`);
84
+ }
85
+ for (const result of input.results) {
86
+ if (result.score < config.minScore) {
87
+ reasons.push(`@${result.handle} scored ${result.score}, below minimum policy score ${config.minScore}.`);
88
+ }
89
+ if (config.blockedRecommendations.includes(result.recommendation)) {
90
+ reasons.push(`@${result.handle} recommendation is ${result.recommendation}, which is blocked by policy.`);
91
+ }
92
+ const loweredFlags = result.flags.map((flag) => flag.toLowerCase());
93
+ for (const pattern of config.blockedFlagPatterns) {
94
+ if (loweredFlags.some((flag) => flag.includes(pattern))) {
95
+ reasons.push(`@${result.handle} matched blocked flag pattern '${pattern}'.`);
96
+ }
97
+ }
98
+ }
99
+ if (config.failOnErrors && input.errorsCount > 0) {
100
+ reasons.push(`Policy configured to fail on scoring errors; observed ${input.errorsCount} error(s).`);
101
+ }
102
+ return buildPolicyGate(config, reasons);
103
+ }
104
+ export function evaluateSweepPolicy(input, config) {
105
+ const reasons = [];
106
+ if (!config.enforce)
107
+ return buildPolicyGate(config, reasons);
108
+ if (config.trustedAdapters.length > 0 && !config.trustedAdapters.includes(input.adapter.toLowerCase())) {
109
+ reasons.push(`Adapter '${input.adapter}' is not in trusted adapters list.`);
110
+ }
111
+ if (config.blockedThreatLevels.includes(input.threatLevel)) {
112
+ reasons.push(`Threat level ${input.threatLevel} is blocked by policy.`);
113
+ }
114
+ if (input.participants.length > 0) {
115
+ const avgScore = input.participants.reduce((sum, participant) => sum + participant.score, 0) / input.participants.length;
116
+ if (avgScore < config.minScore) {
117
+ reasons.push(`Participant average score ${Math.round(avgScore)} is below minimum ${config.minScore}.`);
118
+ }
119
+ }
120
+ const matchedFlags = [...input.patterns, ...(input.notes || [])].map((value) => value.toLowerCase());
121
+ for (const pattern of config.blockedFlagPatterns) {
122
+ if (matchedFlags.some((item) => item.includes(pattern))) {
123
+ reasons.push(`Sweep matched blocked pattern '${pattern}'.`);
124
+ }
125
+ }
126
+ return buildPolicyGate(config, reasons);
127
+ }
128
+ export function emitPolicyAudit(tool, gate, metadata, config) {
129
+ if (!config.auditLog)
130
+ return;
131
+ const event = {
132
+ ts: new Date().toISOString(),
133
+ type: "agentscore_policy_decision",
134
+ tool,
135
+ enforced: gate.enforced,
136
+ blocked: gate.blocked,
137
+ reasons: gate.reasons,
138
+ policy: gate.policy,
139
+ metadata,
140
+ };
141
+ appendPolicyAuditEvent(event);
142
+ console.error(`[agentscore][audit] ${JSON.stringify(event)}`);
143
+ }
144
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,6 +1,10 @@
1
1
  #!/usr/bin/env node
2
+ import { randomUUID } from "node:crypto";
2
3
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
6
+ import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
7
+ import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
4
8
  import { DemoAdapter } from "./adapters/demo/adapter.js";
5
9
  import { MoltbookAdapter } from "./adapters/moltbook/adapter.js";
6
10
  import { JSONAdapter } from "./adapters/json/adapter.js";
@@ -9,10 +13,10 @@ import { ScoreCache } from "./cache/score-cache.js";
9
13
  import { loadConfig } from "./config.js";
10
14
  import { registerAgentScoreTool } from "./tools/agentscore.js";
11
15
  import { registerSweepTool } from "./tools/sweep.js";
16
+ import { getPolicyAuditStats, listPolicyAuditEvents, setAuditStoreMaxEntries } from "./security/audit-store.js";
17
+ import { readPolicyConfigFromEnv } from "./security/policy.js";
12
18
  import { AGENTSCORE_VERSION } from "./version.js";
13
- async function main() {
14
- const config = loadConfig();
15
- // Initialize adapter
19
+ function buildAdapterResolver(config) {
16
20
  const adapters = {};
17
21
  if (config.adapter === "demo") {
18
22
  adapters.demo = new DemoAdapter();
@@ -33,7 +37,7 @@ async function main() {
33
37
  adapters.moltbook = new MoltbookAdapter();
34
38
  console.error("[agentscore] Using Moltbook adapter");
35
39
  }
36
- function getAdapter(platform) {
40
+ return function getAdapter(platform) {
37
41
  const name = platform || config.adapter;
38
42
  const adapter = adapters[name];
39
43
  if (!adapter) {
@@ -57,25 +61,224 @@ async function main() {
57
61
  throw new Error(`Unknown adapter '${name}'. Available: demo, json, moltbook, github`);
58
62
  }
59
63
  return adapter;
60
- }
61
- // Initialize cache
62
- const cache = new ScoreCache(config.cacheTtl);
63
- // Create MCP server
64
+ };
65
+ }
66
+ function buildMcpServer(getAdapter, cache, enabledTools) {
64
67
  const server = new McpServer({
65
68
  name: "agentscore-mcp-server",
66
69
  version: AGENTSCORE_VERSION,
67
70
  });
68
- // Register tools
69
- registerAgentScoreTool(server, getAdapter, cache);
70
- registerSweepTool(server, getAdapter, cache);
71
- // Connect via stdio
71
+ if (enabledTools.includes("agentscore")) {
72
+ registerAgentScoreTool(server, getAdapter, cache);
73
+ }
74
+ if (enabledTools.includes("sweep")) {
75
+ registerSweepTool(server, getAdapter, cache);
76
+ }
77
+ return server;
78
+ }
79
+ function isTokenAuthorized(req, expectedToken, alternateHeaders = []) {
80
+ if (!expectedToken)
81
+ return true;
82
+ const auth = req.headers.authorization;
83
+ if (typeof auth === "string" && auth.startsWith("Bearer ")) {
84
+ return auth.slice("Bearer ".length) === expectedToken;
85
+ }
86
+ return alternateHeaders.some((headerName) => {
87
+ const customHeader = req.headers[headerName];
88
+ return typeof customHeader === "string" && customHeader === expectedToken;
89
+ });
90
+ }
91
+ function writeUnauthorizedMcpResponse(res) {
92
+ res.status(401).json({
93
+ jsonrpc: "2.0",
94
+ error: { code: -32001, message: "Unauthorized" },
95
+ id: null,
96
+ });
97
+ }
98
+ async function startStdioServer(config, getAdapter, cache) {
99
+ const server = buildMcpServer(getAdapter, cache, config.enabledTools);
72
100
  const transport = new StdioServerTransport();
73
101
  await server.connect(transport);
74
- console.error("[agentscore] Server started — 2 tools registered (agentscore, sweep)");
102
+ console.error(`[agentscore] Server started — ${config.enabledTools.length} tool(s) registered (${config.enabledTools.join(", ")})`);
103
+ console.error("[agentscore] Transport: stdio");
75
104
  console.error("[agentscore] Adapter:", config.adapter);
76
105
  console.error("[agentscore] Public mode:", config.publicMode ? "enabled" : "disabled");
77
106
  console.error("[agentscore] Cache TTL:", config.cacheTtl, "seconds");
78
107
  }
108
+ async function startHttpServer(config, getAdapter, cache) {
109
+ const app = createMcpExpressApp({ host: config.httpHost });
110
+ const sessions = {};
111
+ app.get("/healthz", (_req, res) => {
112
+ res.json({
113
+ ok: true,
114
+ service: "agentscore-mcp-server",
115
+ version: AGENTSCORE_VERSION,
116
+ transport: "http",
117
+ adapter: config.adapter,
118
+ publicMode: config.publicMode,
119
+ });
120
+ });
121
+ app.get("/agentscore/policy", (req, res) => {
122
+ if (!isTokenAuthorized(req, config.auditToken, ["x-agentscore-audit-token"])) {
123
+ res.status(401).json({ error: "Unauthorized" });
124
+ return;
125
+ }
126
+ const policy = readPolicyConfigFromEnv();
127
+ res.json({
128
+ enforce: policy.enforce,
129
+ minScore: policy.minScore,
130
+ blockedRecommendations: policy.blockedRecommendations,
131
+ blockedThreatLevels: policy.blockedThreatLevels,
132
+ blockedFlagPatterns: policy.blockedFlagPatterns,
133
+ trustedAdapters: policy.trustedAdapters,
134
+ failOnErrors: policy.failOnErrors,
135
+ auditLog: policy.auditLog,
136
+ });
137
+ });
138
+ app.get("/agentscore/audit", (req, res) => {
139
+ if (!isTokenAuthorized(req, config.auditToken, ["x-agentscore-audit-token"])) {
140
+ res.status(401).json({ error: "Unauthorized" });
141
+ return;
142
+ }
143
+ const limitRaw = typeof req.query.limit === "string" ? parseInt(req.query.limit, 10) : undefined;
144
+ const limit = Number.isNaN(limitRaw) ? undefined : limitRaw;
145
+ const toolParam = typeof req.query.tool === "string" ? req.query.tool : undefined;
146
+ const blockedParam = typeof req.query.blocked === "string" ? req.query.blocked.toLowerCase() : undefined;
147
+ const blocked = blockedParam === "true" ? true : blockedParam === "false" ? false : undefined;
148
+ const events = listPolicyAuditEvents({
149
+ limit,
150
+ tool: toolParam === "agentscore" || toolParam === "sweep" ? toolParam : undefined,
151
+ blocked,
152
+ });
153
+ res.json({
154
+ stats: getPolicyAuditStats(),
155
+ count: events.length,
156
+ events,
157
+ });
158
+ });
159
+ app.post(config.httpPath, async (req, res) => {
160
+ if (!isTokenAuthorized(req, config.httpAuthToken, ["x-agentscore-mcp-token", "x-agentscore-token"])) {
161
+ writeUnauthorizedMcpResponse(res);
162
+ return;
163
+ }
164
+ try {
165
+ const sessionId = req.headers["mcp-session-id"];
166
+ let session = typeof sessionId === "string" ? sessions[sessionId] : undefined;
167
+ if (!session) {
168
+ if (sessionId && !session) {
169
+ res.status(404).json({
170
+ jsonrpc: "2.0",
171
+ error: { code: -32001, message: "Session not found." },
172
+ id: null,
173
+ });
174
+ return;
175
+ }
176
+ if (!isInitializeRequest(req.body)) {
177
+ res.status(400).json({
178
+ jsonrpc: "2.0",
179
+ error: { code: -32000, message: "No valid session ID provided and request is not initialize." },
180
+ id: null,
181
+ });
182
+ return;
183
+ }
184
+ const server = buildMcpServer(getAdapter, cache, config.enabledTools);
185
+ const transport = new StreamableHTTPServerTransport({
186
+ sessionIdGenerator: () => randomUUID(),
187
+ onsessioninitialized: (newSessionId) => {
188
+ sessions[newSessionId] = { server, transport };
189
+ },
190
+ });
191
+ await server.connect(transport);
192
+ await transport.handleRequest(req, res, req.body);
193
+ return;
194
+ }
195
+ await session.transport.handleRequest(req, res, req.body);
196
+ }
197
+ catch (error) {
198
+ console.error("[agentscore] HTTP MCP POST error:", error);
199
+ if (!res.headersSent) {
200
+ res.status(500).json({
201
+ jsonrpc: "2.0",
202
+ error: { code: -32603, message: "Internal server error" },
203
+ id: null,
204
+ });
205
+ }
206
+ }
207
+ });
208
+ app.get(config.httpPath, async (req, res) => {
209
+ if (!isTokenAuthorized(req, config.httpAuthToken, ["x-agentscore-mcp-token", "x-agentscore-token"])) {
210
+ writeUnauthorizedMcpResponse(res);
211
+ return;
212
+ }
213
+ const sessionId = req.headers["mcp-session-id"];
214
+ if (typeof sessionId !== "string" || !sessions[sessionId]) {
215
+ res.status(400).json({
216
+ jsonrpc: "2.0",
217
+ error: { code: -32000, message: "Bad Request: missing or invalid mcp-session-id" },
218
+ id: null,
219
+ });
220
+ return;
221
+ }
222
+ await sessions[sessionId].transport.handleRequest(req, res);
223
+ });
224
+ app.delete(config.httpPath, async (req, res) => {
225
+ if (!isTokenAuthorized(req, config.httpAuthToken, ["x-agentscore-mcp-token", "x-agentscore-token"])) {
226
+ writeUnauthorizedMcpResponse(res);
227
+ return;
228
+ }
229
+ const sessionId = req.headers["mcp-session-id"];
230
+ if (typeof sessionId !== "string" || !sessions[sessionId]) {
231
+ res.status(400).json({
232
+ jsonrpc: "2.0",
233
+ error: { code: -32000, message: "Bad Request: missing or invalid mcp-session-id" },
234
+ id: null,
235
+ });
236
+ return;
237
+ }
238
+ const session = sessions[sessionId];
239
+ await session.transport.handleRequest(req, res);
240
+ await session.transport.close();
241
+ await session.server.close();
242
+ delete sessions[sessionId];
243
+ });
244
+ const listener = app.listen(config.httpPort, config.httpHost, () => {
245
+ console.error(`[agentscore] Server started — ${config.enabledTools.length} tool(s) registered (${config.enabledTools.join(", ")})`);
246
+ console.error("[agentscore] Transport: streamable-http");
247
+ console.error("[agentscore] MCP endpoint:", `http://${config.httpHost}:${config.httpPort}${config.httpPath}`);
248
+ console.error("[agentscore] Audit endpoint:", `http://${config.httpHost}:${config.httpPort}/agentscore/audit`);
249
+ console.error("[agentscore] Policy endpoint:", `http://${config.httpHost}:${config.httpPort}/agentscore/policy`);
250
+ console.error("[agentscore] MCP endpoint auth:", config.httpAuthToken ? "enabled" : "disabled");
251
+ console.error("[agentscore] Adapter:", config.adapter);
252
+ console.error("[agentscore] Public mode:", config.publicMode ? "enabled" : "disabled");
253
+ console.error("[agentscore] Cache TTL:", config.cacheTtl, "seconds");
254
+ });
255
+ const shutdown = async () => {
256
+ for (const [sessionId, session] of Object.entries(sessions)) {
257
+ await session.transport.close().catch(() => undefined);
258
+ await session.server.close().catch(() => undefined);
259
+ delete sessions[sessionId];
260
+ }
261
+ listener.close(() => process.exit(0));
262
+ setTimeout(() => process.exit(0), 2_000).unref();
263
+ };
264
+ process.on("SIGINT", shutdown);
265
+ process.on("SIGTERM", shutdown);
266
+ }
267
+ async function main() {
268
+ if (process.argv.includes("--enforce") && !process.env.AGENTSCORE_ENFORCE) {
269
+ process.env.AGENTSCORE_ENFORCE = "true";
270
+ }
271
+ const config = loadConfig();
272
+ setAuditStoreMaxEntries(config.auditMaxEntries);
273
+ const getAdapter = buildAdapterResolver(config);
274
+ // Initialize cache
275
+ const cache = new ScoreCache(config.cacheTtl);
276
+ if (config.transport === "http") {
277
+ await startHttpServer(config, getAdapter, cache);
278
+ return;
279
+ }
280
+ await startStdioServer(config, getAdapter, cache);
281
+ }
79
282
  main().catch((error) => {
80
283
  console.error("[agentscore] Fatal error:", error);
81
284
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,qBAAqB;IACrB,MAAM,QAAQ,GAAyC,EAAE,CAAC;IAE1D,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACxF,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,6BAA6B,CAAC;QACjG,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAI,GAAG,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,UAAU,CAAC,QAAiB;QACnC,MAAM,IAAI,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,6CAA6C;YAC7C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;gBAClC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;gBAClC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;gBAC1C,OAAO,QAAQ,CAAC,QAAQ,CAAC;YAC3B,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,QAAQ,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,4CAA4C,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9C,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAC;IAEH,iBAAiB;IACjB,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE7C,oBAAoB;IACpB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvF,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agentscore.d.ts","sourceRoot":"","sources":["../../src/tools/agentscore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAmDrD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,oBAAoB,EACvD,KAAK,EAAE,UAAU,GAChB,IAAI,CAkIN"}
1
+ {"version":3,"file":"agentscore.d.ts","sourceRoot":"","sources":["../../src/tools/agentscore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAiErD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,oBAAoB,EACvD,KAAK,EAAE,UAAU,GAChB,IAAI,CA4KN"}
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { scoreAgent, compareAgents } from "../scoring/engine.js";
3
3
  import { RateLimiter } from "../security/rate-limiter.js";
4
4
  import { resolveClientKey } from "../security/client-key.js";
5
+ import { emitPolicyAudit, evaluateAgentPolicy, readPolicyConfigFromEnv } from "../security/policy.js";
5
6
  const inputSchema = {
6
7
  handles: z
7
8
  .array(z.string().regex(/^[\w-]{1,50}$/, "Handle must be 1-50 alphanumeric/dash/underscore characters"))
@@ -105,6 +106,21 @@ export function registerAgentScoreTool(server, getAdapter, cache) {
105
106
  if (errors.length > 0) {
106
107
  output.errors = errors;
107
108
  }
109
+ const policy = readPolicyConfigFromEnv();
110
+ const gate = evaluateAgentPolicy({
111
+ adapter: adapter.name,
112
+ results,
113
+ errorsCount: errors.length,
114
+ }, policy);
115
+ if (policy.enforce) {
116
+ output.policyGate = gate;
117
+ }
118
+ emitPolicyAudit("agentscore", gate, {
119
+ adapter: adapter.name,
120
+ requestedHandles: handles.length,
121
+ scoredHandles: results.length,
122
+ errorsCount: errors.length,
123
+ }, policy);
108
124
  // Build text summary
109
125
  const textParts = [];
110
126
  for (const r of results) {
@@ -129,6 +145,22 @@ export function registerAgentScoreTool(server, getAdapter, cache) {
129
145
  if (output.comparison?.verdict) {
130
146
  textParts.push(`\n## Comparison Verdict\n\n${output.comparison.verdict}`);
131
147
  }
148
+ if (gate.blocked) {
149
+ return {
150
+ content: [
151
+ {
152
+ type: "text",
153
+ text: `Policy gate blocked this request.\n` +
154
+ `Adapter: ${adapter.name}\n` +
155
+ `Reasons:\n` +
156
+ gate.reasons.map((reason) => `- ${reason}`).join("\n"),
157
+ },
158
+ { type: "text", text: textParts.join("\n\n---\n\n") || "No agents scored." },
159
+ { type: "text", text: "\n\n```json\n" + JSON.stringify(output, null, 2) + "\n```" },
160
+ ],
161
+ isError: true,
162
+ };
163
+ }
132
164
  if (results.length === 0) {
133
165
  return {
134
166
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"agentscore.js","sourceRoot":"","sources":["../../src/tools/agentscore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentscore.js","sourceRoot":"","sources":["../../src/tools/agentscore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../../src/tools/sweep.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AA2DrD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,oBAAoB,EACvD,KAAK,EAAE,UAAU,GAChB,IAAI,CA2PN"}
1
+ {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../../src/tools/sweep.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAyErD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,oBAAoB,EACvD,KAAK,EAAE,UAAU,GAChB,IAAI,CAwSN"}
@@ -3,6 +3,7 @@ import { scoreAgent } from "../scoring/engine.js";
3
3
  import { trigramSimilarity } from "../scoring/utils.js";
4
4
  import { RateLimiter } from "../security/rate-limiter.js";
5
5
  import { resolveClientKey } from "../security/client-key.js";
6
+ import { emitPolicyAudit, evaluateSweepPolicy, readPolicyConfigFromEnv } from "../security/policy.js";
6
7
  const inputSchema = {
7
8
  threadId: z
8
9
  .string()
@@ -214,6 +215,24 @@ export function registerSweepTool(server, getAdapter, cache) {
214
215
  ...(notes.length > 0 ? { notes } : {}),
215
216
  briefing,
216
217
  };
218
+ const policy = readPolicyConfigFromEnv();
219
+ const gate = evaluateSweepPolicy({
220
+ adapter: adapter.name,
221
+ threatLevel,
222
+ participants,
223
+ patterns,
224
+ notes,
225
+ }, policy);
226
+ if (policy.enforce) {
227
+ output.policyGate = gate;
228
+ }
229
+ emitPolicyAudit("sweep", gate, {
230
+ adapter: adapter.name,
231
+ threadId,
232
+ participantCount: participants.length,
233
+ threatLevel,
234
+ patternCount: patterns.length,
235
+ }, policy);
217
236
  const text = `## Thread Sweep: ${threadId}\n\n` +
218
237
  `**Threat Level:** ${threatLevel}\n` +
219
238
  `**Participants:** ${participants.length}\n\n` +
@@ -230,6 +249,22 @@ export function registerSweepTool(server, getAdapter, cache) {
230
249
  .map((p) => `- @${p.handle}: ${p.score}/850 (${p.tier}) [${p.role}]`)
231
250
  .join("\n")
232
251
  : "- No participant scores available");
252
+ if (gate.blocked) {
253
+ return {
254
+ content: [
255
+ {
256
+ type: "text",
257
+ text: `Policy gate blocked this thread sweep.\n` +
258
+ `Adapter: ${adapter.name}\n` +
259
+ `Reasons:\n` +
260
+ gate.reasons.map((reason) => `- ${reason}`).join("\n"),
261
+ },
262
+ { type: "text", text },
263
+ { type: "text", text: "\n\n```json\n" + JSON.stringify(output, null, 2) + "\n```" },
264
+ ],
265
+ isError: true,
266
+ };
267
+ }
233
268
  return {
234
269
  content: [
235
270
  { type: "text", text },
@@ -1 +1 @@
1
- {"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../src/tools/sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sweep.js","sourceRoot":"","sources":["../../src/tools/sweep.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const AGENTSCORE_VERSION = "1.0.4";
1
+ export declare const AGENTSCORE_VERSION = "1.0.5";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const AGENTSCORE_VERSION = "1.0.4";
1
+ export const AGENTSCORE_VERSION = "1.0.5";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentscore-mcp",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Trust scoring for AI agents. Investigate, verify, and compare agent trustworthiness through MCP.",
5
5
  "author": "Tripti Mishra",
6
6
  "license": "MIT",
@@ -34,6 +34,7 @@
34
34
  "scripts": {
35
35
  "build": "tsc",
36
36
  "start": "node dist/server.js",
37
+ "start:http": "AGENTSCORE_TRANSPORT=http node dist/server.js",
37
38
  "dev": "tsx src/server.ts",
38
39
  "test:suite": "node test/public-ready.test.mjs && node test/demo-adapter.test.mjs && node test/code-quality.test.mjs && node test/adapter-contract.test.mjs && node test/public-contract.test.mjs",
39
40
  "test": "npm run build && npm run test:suite",