tracepass-mcp-server 1.2.0 → 1.4.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/README.md CHANGED
@@ -20,12 +20,49 @@ The same server core ships two ways:
20
20
  2. **Local (npm)** — run `tracepass-mcp-server` via `npx`. The MCP
21
21
  client launches it as a subprocess and speaks MCP over stdio.
22
22
 
23
- Both need a TracePass API key — mint one in the dashboard under
24
- **Developer → API Keys** (a `tp_…` key).
25
-
26
- ## Configuration
27
-
28
- ### Hosted
23
+ ## Authentication
24
+
25
+ The server accepts **either** of TracePass's two v1 auth methods on the
26
+ same `Authorization: Bearer …` header — it forwards whatever you send to
27
+ the API, which decides. Pick the one that fits how you're connecting:
28
+
29
+ | | **API key** | **OAuth 2.0** |
30
+ |---|---|---|
31
+ | Best for | A single user, scripts, server-to-server | AI assistants / apps acting **on a user's behalf** |
32
+ | What you send | A static `tp_…` key as a Bearer token | A scoped access token obtained via the OAuth flow |
33
+ | Setup | Mint at **Developer → API Keys** | The user clicks **Connect** and approves scopes |
34
+ | Scope | All-or-nothing (the whole workspace) | Exactly the scopes the user granted; revocable |
35
+ | Works with | Hosted **and** local (npx) | Hosted endpoint only (needs a browser consent step) |
36
+
37
+ **Which should an AI assistant use?** If your MCP client supports OAuth
38
+ (Claude.ai, ChatGPT, and others), prefer **OAuth** — the user authorizes
39
+ the connection once on a TracePass consent screen, you never handle a
40
+ secret, and access is least-privilege and revocable. If your client only
41
+ takes a header/token, use an **API key**.
42
+
43
+ ### OAuth 2.0 (recommended for hosted clients)
44
+
45
+ No config beyond pointing your client at the hosted endpoint — discovery
46
+ is automatic. On the first unauthenticated request the server returns a
47
+ `401` whose `WWW-Authenticate` header carries a `resource_metadata` URL
48
+ (RFC 9728) pointing at `/.well-known/oauth-protected-resource`, which
49
+ names the TracePass authorization server. The client runs the standard
50
+ **authorization-code flow with PKCE** (`/api/oauth/authorize` →
51
+ `/api/oauth/token`), the user approves scopes, and the client stores +
52
+ refreshes the token. If you distribute your own client, register an app
53
+ under **Developer → OAuth Apps** to get a `client_id`; many hosted
54
+ clients self-register via Dynamic Client Registration automatically.
55
+
56
+ Request only the scopes you need, e.g. `passports:read passports:write
57
+ offline_access`. Users manage connected apps (and revoke) under
58
+ **Developer → OAuth Apps → Connected Apps**.
59
+
60
+ ### API key
61
+
62
+ Mint a `tp_…` key under **Developer → API Keys** and send it as a Bearer
63
+ token.
64
+
65
+ **Hosted:**
29
66
 
30
67
  ```json
31
68
  {
@@ -38,7 +75,8 @@ Both need a TracePass API key — mint one in the dashboard under
38
75
  }
39
76
  ```
40
77
 
41
- ### Local (npx / stdio)
78
+ **Local (npx / stdio)** — the local subprocess can't do an interactive
79
+ OAuth consent step, so it's API-key only, via the `TRACEPASS_API_KEY` env:
42
80
 
43
81
  ```json
44
82
  {
@@ -66,12 +104,19 @@ each taking an `action` plus action-specific `args`:
66
104
  | Tool | Actions |
67
105
  |------|---------|
68
106
  | `tracepass_products` | `list`, `get`, `create`, `update` |
69
- | `tracepass_passports` | `list`, `get`, `get_by_serial`, `compliance`, `create`, `suspend`, `archive`, `get_qr` |
70
- | `tracepass_passport_fields` | `update` |
107
+ | `tracepass_passports` | `list`, `get`, `get_by_serial`, `compliance`, `create`, `suspend`, `suspend_by_serial`, `archive`, `archive_by_serial`, `get_qr` |
108
+ | `tracepass_passport_fields` | `update`, `update_by_serial` |
71
109
  | `tracepass_passport_parties` | `set`, `remove` |
72
- | `tracepass_epcis` | `export`, `capture`, `capture_job`, `query` |
110
+ | `tracepass_epcis` | `export`, `export_by_serial`, `capture`, `capture_job`, `query` |
73
111
  | `tracepass_templates` | `list`, `get` |
74
112
 
113
+ The **`*_by_serial`** actions address a passport by the customer's own serial
114
+ number instead of its TracePass id. A serial is unique only *within a GTIN*, so
115
+ if the same serial exists under two GTINs in your account a serial-only call
116
+ returns **409 `ambiguous_serial`** — pass the optional `gtin` arg to disambiguate
117
+ (or use the by-id action). The same `gtin` disambiguator applies to every
118
+ `*_by_serial` action.
119
+
75
120
  The **`tracepass_passports` `compliance`** action returns a three-tier
76
121
  compliance verdict (`compliant` / `compliant_with_warnings` /
77
122
  `incomplete`) with regulation-cited findings — missing required fields,
package/dist/http.d.ts CHANGED
@@ -3,12 +3,20 @@
3
3
  *
4
4
  * Runs as a standalone Node service (deployed to Hetzner, served at
5
5
  * https://ai.tracepass.eu/mcp). An MCP client connects over
6
- * Streamable HTTP; the customer's TracePass API key travels in the
7
- * `Authorization: Bearer tp_...` header of every request.
6
+ * Streamable HTTP; the caller's TracePass credential travels in the
7
+ * `Authorization: Bearer <token>` header of every request.
8
+ *
9
+ * BOTH v1 auth methods work here, transparently — we forward the
10
+ * Bearer token to the v1 API unchanged and the platform's unified gate
11
+ * decides: a `tp_…` API key (service account) OR an OAuth 2.0 access
12
+ * token (user-authorized, scoped). The server neither parses nor cares
13
+ * which; it's a pass-through. OAuth-capable MCP clients (Claude.ai,
14
+ * ChatGPT) discover the flow via the 401 `resource_metadata` param and
15
+ * the server card; simpler clients paste a tp_ key.
8
16
  *
9
17
  * Stateless by design: each MCP request is self-contained, so we
10
18
  * build a fresh server + transport per request, bound to that
11
- * request's API key. No server-side session state — which means the
19
+ * request's token. No server-side session state — which means the
12
20
  * service scales horizontally and a restart drops nothing.
13
21
  *
14
22
  * This is the SAME server core (`createMcpServer`) the stdio
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
package/dist/http.js CHANGED
@@ -3,12 +3,20 @@
3
3
  *
4
4
  * Runs as a standalone Node service (deployed to Hetzner, served at
5
5
  * https://ai.tracepass.eu/mcp). An MCP client connects over
6
- * Streamable HTTP; the customer's TracePass API key travels in the
7
- * `Authorization: Bearer tp_...` header of every request.
6
+ * Streamable HTTP; the caller's TracePass credential travels in the
7
+ * `Authorization: Bearer <token>` header of every request.
8
+ *
9
+ * BOTH v1 auth methods work here, transparently — we forward the
10
+ * Bearer token to the v1 API unchanged and the platform's unified gate
11
+ * decides: a `tp_…` API key (service account) OR an OAuth 2.0 access
12
+ * token (user-authorized, scoped). The server neither parses nor cares
13
+ * which; it's a pass-through. OAuth-capable MCP clients (Claude.ai,
14
+ * ChatGPT) discover the flow via the 401 `resource_metadata` param and
15
+ * the server card; simpler clients paste a tp_ key.
8
16
  *
9
17
  * Stateless by design: each MCP request is self-contained, so we
10
18
  * build a fresh server + transport per request, bound to that
11
- * request's API key. No server-side session state — which means the
19
+ * request's token. No server-side session state — which means the
12
20
  * service scales horizontally and a restart drops nothing.
13
21
  *
14
22
  * This is the SAME server core (`createMcpServer`) the stdio
@@ -29,6 +37,16 @@ const BASE_URL = process.env.TRACEPASS_BASE_URL?.trim() || DEFAULT_BASE_URL;
29
37
  const MCP_PATH = "/mcp";
30
38
  /** The MCP server card discovery path (SEP-1649). */
31
39
  const SERVER_CARD_PATH = "/.well-known/mcp/server-card.json";
40
+ /**
41
+ * RFC 9728 Protected Resource Metadata path. The MCP authorization spec has a
42
+ * client fetch this (pointed to by the `resource_metadata` param on our 401
43
+ * `WWW-Authenticate` challenge) to discover which authorization server protects
44
+ * this resource. TracePass now runs a real OAuth2 authorization server on the
45
+ * platform origin (BASE_URL, app.tracepass.eu), so we name it here. This is the
46
+ * resource server (ai.tracepass.eu); the authorization server is a different
47
+ * origin — RFC 9728 is exactly the indirection for that split.
48
+ */
49
+ const PROTECTED_RESOURCE_METADATA_PATH = "/.well-known/oauth-protected-resource";
32
50
  /**
33
51
  * Glama connector ownership-claim path. Glama probes the CONNECTOR's
34
52
  * own host (ai.tracepass.eu) for this file to verify we maintain the
@@ -50,14 +68,15 @@ const GLAMA_CLAIM = {
50
68
  * because discovery precedes auth.
51
69
  *
52
70
  * Every value here mirrors the real server: `serverInfo` matches
53
- * `SERVER_INFO` in server.ts (tracepass / 1.1.1); the capability lists are
71
+ * `MCP_SERVER_INFO` in server.ts (tracepass / 1.4.0); the capability lists are
54
72
  * the exact tool names from tools.ts, resource URIs/templates from
55
73
  * resources.ts, and prompt names from prompts.ts. Keep this in sync when
56
74
  * capabilities change — a card that over-claims is worse than no card.
57
75
  *
58
- * `authentication` is declared honestly: a static API-key Bearer scheme,
59
- * NOT OAuth. No `authorization_servers` / OAuth metadata is advertised
60
- * because none exists (see the WWW-Authenticate note on the 401 path).
76
+ * `authentication` declares BOTH supported methods: a static API-key Bearer
77
+ * scheme AND OAuth2 (the platform now runs a real authorization server). The
78
+ * `resourceMetadata` URL points at our RFC 9728 protected-resource document
79
+ * (see the WWW-Authenticate note on the 401 path).
61
80
  *
62
81
  * MIRROR: a byte-equivalent copy of this card is also served as a static
63
82
  * file from the marketing site at
@@ -69,24 +88,29 @@ const GLAMA_CLAIM = {
69
88
  */
70
89
  const SERVER_CARD = {
71
90
  name: "tracepass",
72
- version: "1.1.1",
91
+ version: "1.4.0",
73
92
  description: "Model Context Protocol server for TracePass — the EU Digital Product Passport platform. Manage products, Digital Product Passports, economic-operator parties, and GS1 EPCIS 2.0 supply-chain events.",
74
- serverInfo: { name: "tracepass", version: "1.1.1" },
93
+ serverInfo: { name: "tracepass", version: "1.4.0" },
75
94
  transport: {
76
95
  type: "streamable-http",
77
96
  endpoint: `https://ai.tracepass.eu${MCP_PATH}`,
78
97
  },
79
98
  authentication: {
80
- // SEP-1649 fields (required + schemes) so card readers (e.g. Smithery's
81
- // URL publisher) detect static Bearer auth and DON'T default to OAuth.
82
- // schemes intentionally lists only "bearer" NOT "oauth2" because we
83
- // don't run an OAuth authorization server. The type/scheme/description
84
- // fields are kept for human + non-SEP-1649 readers.
99
+ // SEP-1649 fields. TracePass now supports BOTH auth methods, so schemes
100
+ // lists both: "bearer" (a static tp_ API key simplest, server-to-server)
101
+ // and "oauth2" (user-authorized, via the platform's authorization server
102
+ // discovery at the resource-metadata URL below). A client that can do the
103
+ // OAuth flow gets a "Connect" experience; one that can't falls back to a
104
+ // pasted API key. The type/scheme fields describe the Bearer default for
105
+ // human + non-SEP-1649 readers.
85
106
  required: true,
86
- schemes: ["bearer"],
107
+ schemes: ["bearer", "oauth2"],
87
108
  type: "http",
88
109
  scheme: "bearer",
89
- description: "TracePass API key (tp_ prefix). Mint one in the dashboard under Developer -> API Keys, then send Authorization: Bearer <tp_ key>.",
110
+ // RFC 9728 resource-metadata URL where an OAuth-capable client learns
111
+ // which authorization server protects this resource.
112
+ resourceMetadata: `https://ai.tracepass.eu${PROTECTED_RESOURCE_METADATA_PATH}`,
113
+ description: "Two ways to authenticate, pick one. (1) OAuth 2.0 (recommended for AI assistants acting for a user): if your client supports OAuth, Connect the server and the user approves scopes on a TracePass consent screen — no secret to handle, access is scoped and revocable. Discovery is automatic via this card's resourceMetadata and the 401 WWW-Authenticate challenge (authorization-code + PKCE). (2) API key (simplest for a single user / scripts): the user mints a tp_ key at Developer -> API Keys and you send it as Authorization: Bearer <tp_ key>. The server forwards whichever you send; both reach the same v1 API.",
90
114
  },
91
115
  capabilities: {
92
116
  tools: [
@@ -115,8 +139,35 @@ const SERVER_CARD = {
115
139
  },
116
140
  documentation: "https://www.tracepass.eu/docs/mcp",
117
141
  };
118
- /** Extract the tp_ API key from the Authorization header. */
119
- function extractApiKey(req) {
142
+ /**
143
+ * RFC 9728 Protected Resource Metadata. Declares that this resource
144
+ * (ai.tracepass.eu/mcp) is protected by the TracePass authorization server on
145
+ * the platform origin (BASE_URL). An OAuth-capable MCP client fetches this after
146
+ * a 401, then drives the authorization-code flow against the named auth server.
147
+ * `scopes_supported` mirrors the platform's OAuth scopes so a client can request
148
+ * least-privilege.
149
+ */
150
+ const PROTECTED_RESOURCE_METADATA = {
151
+ resource: `https://ai.tracepass.eu${MCP_PATH}`,
152
+ authorization_servers: [BASE_URL],
153
+ scopes_supported: [
154
+ "passports:read",
155
+ "passports:write",
156
+ "documents:read",
157
+ "documents:write",
158
+ "suppliers:read",
159
+ "suppliers:write",
160
+ "offline_access",
161
+ ],
162
+ bearer_methods_supported: ["header"],
163
+ };
164
+ /**
165
+ * Extract the Bearer credential from the Authorization header. This is EITHER a
166
+ * `tp_…` API key OR an OAuth 2.0 access token — we don't distinguish here. The
167
+ * token is forwarded verbatim to the v1 API, whose unified auth gate branches on
168
+ * the token shape (`tp_` prefix → API key, else → OAuth). Both are valid.
169
+ */
170
+ function extractBearerToken(req) {
120
171
  const auth = req.headers["authorization"];
121
172
  if (typeof auth !== "string")
122
173
  return null;
@@ -176,6 +227,15 @@ const httpServer = createServer((req, res) => {
176
227
  sendJson(res, 200, SERVER_CARD);
177
228
  return;
178
229
  }
230
+ // RFC 9728 Protected Resource Metadata. Public + unauthenticated —
231
+ // an OAuth-capable client fetches this (pointed here by the 401
232
+ // WWW-Authenticate `resource_metadata` param) to discover the
233
+ // authorization server. NB: the edge catch-all redirect must EXCLUDE
234
+ // this path too (same as the card / glama paths).
235
+ if (url.split("?")[0] === PROTECTED_RESOURCE_METADATA_PATH) {
236
+ sendJson(res, 200, PROTECTED_RESOURCE_METADATA);
237
+ return;
238
+ }
179
239
  // Glama connector ownership claim. Public + unauthenticated. NB:
180
240
  // the edge (Caddy) catch-all redirect for ai.tracepass.eu must
181
241
  // EXCLUDE this path, or the claim file never reaches this handler
@@ -192,36 +252,36 @@ const httpServer = createServer((req, res) => {
192
252
  });
193
253
  return;
194
254
  }
195
- // API key required — no anonymous MCP access.
196
- const apiKey = extractApiKey(req);
197
- if (!apiKey) {
198
- // RFC 6750 Bearer challenge. MCP clients that do spec-compliant
199
- // auth discovery read WWW-Authenticate to learn the scheme;
200
- // without it they can only fall back to the human-readable JSON
201
- // below. TracePass auth is static dashboard-minted API keys, NOT
202
- // OAuth so this is the honest subset: advertise the Bearer
203
- // scheme + realm + where to get a key, and deliberately DO NOT
204
- // emit an OAuth `resource_metadata` / `authorization_uri` param
205
- // pointing at /.well-known/oauth-protected-resource, because no
206
- // OAuth authorization server exists. (Adding one would be a
207
- // false discovery claim — same reason www skips the auth.md
208
- // check.) If TracePass ever ships real OAuth client registration,
209
- // add the resource_metadata param then.
255
+ // A credential is required — no anonymous MCP access. Accepts either a
256
+ // tp_ API key or an OAuth access token (forwarded verbatim to the v1 API).
257
+ const bearerToken = extractBearerToken(req);
258
+ if (!bearerToken) {
259
+ // RFC 6750 Bearer challenge + RFC 9728 resource_metadata. MCP clients
260
+ // that do spec-compliant auth discovery read WWW-Authenticate to learn
261
+ // the scheme + (now) where to find the OAuth protected-resource
262
+ // metadata, which names the authorization server they can run the
263
+ // authorization-code flow against. TracePass now supports BOTH a static
264
+ // tp_ API key AND OAuth, so we advertise the resource_metadata param
265
+ // a Connect-capable client uses OAuth; a simpler client falls back to a
266
+ // pasted key per the human-readable JSON below.
210
267
  // NB: HTTP header values are Latin-1 only — no non-ASCII (the
211
268
  // "->" stays ASCII; the UTF-8 arrow used in the JSON body below
212
269
  // would make Node throw "Invalid character in header content").
213
270
  res.setHeader("WWW-Authenticate", 'Bearer realm="TracePass MCP", error="invalid_token", ' +
214
- 'error_description="Missing API key. Mint one in the TracePass dashboard (Developer -> API Keys), then send Authorization: Bearer <tp_ key>."');
271
+ `resource_metadata="https://ai.tracepass.eu${PROTECTED_RESOURCE_METADATA_PATH}", ` +
272
+ 'error_description="Authenticate with a TracePass API key (Developer -> API Keys, send Authorization: Bearer <tp_ key>) or via OAuth (see resource_metadata)."');
215
273
  sendJson(res, 401, {
216
274
  error: "unauthorized",
217
275
  message: "Missing API key. Send Authorization: Bearer <tp_ key>. Mint a key in the TracePass dashboard → Developer → API Keys.",
218
276
  });
219
277
  return;
220
278
  }
221
- // Fresh, stateless server + transport per request, bound to
222
- // this request's key. The transport's handleRequest takes a
223
- // Web Request and returns a Web Response.
224
- const server = createMcpServer({ apiKey, baseUrl: BASE_URL });
279
+ // Fresh, stateless server + transport per request, bound to this
280
+ // request's credential. The `apiKey` config field carries whatever Bearer
281
+ // token arrived (tp_ key OR OAuth access token) — it's forwarded verbatim;
282
+ // the v1 API's unified gate validates it. The transport's handleRequest
283
+ // takes a Web Request and returns a Web Response.
284
+ const server = createMcpServer({ apiKey: bearerToken, baseUrl: BASE_URL });
225
285
  const transport = new WebStandardStreamableHTTPServerTransport({
226
286
  sessionIdGenerator: undefined, // stateless
227
287
  });
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -16,7 +16,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
16
16
  * meaningful tool-surface change. */
17
17
  export declare const MCP_SERVER_INFO: {
18
18
  readonly name: "tracepass";
19
- readonly version: "1.1.4";
19
+ readonly version: "1.4.0";
20
20
  };
21
21
  export interface CreateMcpServerConfig {
22
22
  /** Base URL of the TracePass app — e.g. "https://app.tracepass.eu".
package/dist/server.js CHANGED
@@ -21,7 +21,7 @@ import { errorResult } from "./result.js";
21
21
  * meaningful tool-surface change. */
22
22
  export const MCP_SERVER_INFO = {
23
23
  name: "tracepass",
24
- version: "1.1.4",
24
+ version: "1.4.0",
25
25
  };
26
26
  /**
27
27
  * Build a fully-wired TracePass `McpServer`. The caller is
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC3B,WAAW,EAAE;QACX,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACjE;AAsID;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,EAAE,CAuSvE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC3B,WAAW,EAAE;QACX,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACjE;AAwJD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,EAAE,CA+UvE"}
package/dist/tools.js CHANGED
@@ -115,6 +115,14 @@ const SCHEMAS = {
115
115
  confirmOverage: z.boolean().optional(),
116
116
  }),
117
117
  passportId: z.object({ id: z.string().min(1) }),
118
+ // By-serial addressing. `gtin` is the optional disambiguator: a serial is
119
+ // unique only WITHIN a GTIN, so if the same serial exists under two GTINs in
120
+ // the account, a serial-only call returns 409 ambiguous_serial — pass `gtin`
121
+ // (or use the by-id action) to resolve exactly.
122
+ passportSerial: z.object({
123
+ serial: z.string().min(1),
124
+ gtin: z.string().optional(),
125
+ }),
118
126
  passportQr: z.object({
119
127
  id: z.string().min(1),
120
128
  format: z.enum(["svg", "png"]).optional(),
@@ -124,6 +132,12 @@ const SCHEMAS = {
124
132
  fieldKey: z.string().min(1),
125
133
  value: z.unknown(),
126
134
  }),
135
+ fieldUpdateBySerial: z.object({
136
+ serial: z.string().min(1),
137
+ fieldKey: z.string().min(1),
138
+ value: z.unknown(),
139
+ gtin: z.string().optional(),
140
+ }),
127
141
  partySet: z.object({
128
142
  id: z.string().min(1),
129
143
  role: partyRoleEnum,
@@ -134,6 +148,10 @@ const SCHEMAS = {
134
148
  }),
135
149
  partyRemove: z.object({ id: z.string().min(1), role: partyRoleEnum }),
136
150
  epcisExport: z.object({ id: z.string().min(1) }),
151
+ epcisExportBySerial: z.object({
152
+ serial: z.string().min(1),
153
+ gtin: z.string().optional(),
154
+ }),
137
155
  epcisCapture: z.object({ events: z.unknown() }),
138
156
  epcisCaptureJob: z.object({ jobId: z.string().min(1) }),
139
157
  epcisQuery: z.object({ params: z.record(z.string(), z.string()).optional() }),
@@ -201,11 +219,13 @@ export function buildTools(client) {
201
219
  "Actions (pass via `action`, with `args`):\n" +
202
220
  "- list — args: { page?, limit? (≤100), productId?, status?, search? }. status ∈ draft|in_review|approved|published|suspended|expired|archived. Read-only.\n" +
203
221
  "- get — args: { id, format? (summary|full), lang? }. Read-only.\n" +
204
- "- get_by_serial — args: { serial, format?, lang? }. Read-only.\n" +
222
+ "- get_by_serial — args: { serial, format?, lang?, gtin? }. Read-only. Addresses the passport by your own serial. A serial is unique only WITHIN a GTIN — if the same serial exists under two GTINs in your account the call returns 409 ambiguous_serial; pass `gtin` (or use the by-id action) to resolve exactly.\n" +
205
223
  "- compliance — args: { id }. Read-only. Returns a three-tier compliance verdict (compliant | compliant_with_warnings | incomplete) with regulation-cited findings — use to gap-check a passport against the rules for its category, fix the cited fields/parties, then re-check.\n" +
206
224
  "- create — args: { productId, gtin, serialNumber, confirmOverage? }. BILLABLE.\n" +
207
225
  "- suspend — args: { id }. Reversible — public QR shows 'suspended'.\n" +
226
+ "- suspend_by_serial — args: { serial, gtin? }. Same as suspend, addressed by your serial. 409 ambiguous_serial if the serial isn't unique in your account — pass `gtin`.\n" +
208
227
  "- archive — args: { id }. IRREVERSIBLE — confirm with the user first.\n" +
228
+ "- archive_by_serial — args: { serial, gtin? }. IRREVERSIBLE, addressed by your serial — confirm first. 409 ambiguous_serial if the serial isn't unique — pass `gtin`.\n" +
209
229
  "- get_qr — args: { id, format? (svg|png) }. Read-only.",
210
230
  inputSchema: {
211
231
  action: z.enum([
@@ -215,7 +235,9 @@ export function buildTools(client) {
215
235
  "compliance",
216
236
  "create",
217
237
  "suspend",
238
+ "suspend_by_serial",
218
239
  "archive",
240
+ "archive_by_serial",
219
241
  "get_qr",
220
242
  ]),
221
243
  args: z.record(z.string(), z.unknown()).optional()
@@ -265,12 +287,24 @@ export function buildTools(client) {
265
287
  return p;
266
288
  return apiResult(await client.post(`/api/v1/passports/${seg(p.id)}/suspend`));
267
289
  }
290
+ case "suspend_by_serial": {
291
+ const p = parseArgs(SCHEMAS.passportSerial, a.args, "tracepass_passports", action);
292
+ if (isErr(p))
293
+ return p;
294
+ return apiResult(await client.post(`/api/v1/passports/by-serial/${seg(p.serial)}/suspend${qs({ gtin: p.gtin })}`));
295
+ }
268
296
  case "archive": {
269
297
  const p = parseArgs(SCHEMAS.passportId, a.args, "tracepass_passports", action);
270
298
  if (isErr(p))
271
299
  return p;
272
300
  return apiResult(await client.post(`/api/v1/passports/${seg(p.id)}/archive`));
273
301
  }
302
+ case "archive_by_serial": {
303
+ const p = parseArgs(SCHEMAS.passportSerial, a.args, "tracepass_passports", action);
304
+ if (isErr(p))
305
+ return p;
306
+ return apiResult(await client.post(`/api/v1/passports/by-serial/${seg(p.serial)}/archive${qs({ gtin: p.gtin })}`));
307
+ }
274
308
  case "get_qr": {
275
309
  const p = parseArgs(SCHEMAS.passportQr, a.args, "tracepass_passports", action);
276
310
  if (isErr(p))
@@ -288,24 +322,34 @@ export function buildTools(client) {
288
322
  title: "TracePass passport fields",
289
323
  description: "Update field values on a Digital Product Passport. Every change is recorded in the passport's audit trail, tagged as an API-key update.\n\n" +
290
324
  "Actions (pass via `action`, with `args`):\n" +
291
- "- update — args: { id, fieldKey, value }. `value` type matches the field's dataType (string, number, boolean, array, object).",
325
+ "- update — args: { id, fieldKey, value }. `value` type matches the field's dataType (string, number, boolean, array, object).\n" +
326
+ "- update_by_serial — args: { serial, fieldKey, value, gtin? }. Same as update, addressed by your own serial. A serial is unique only WITHIN a GTIN — if it isn't unique in your account the call returns 409 ambiguous_serial; pass `gtin` (or use update by id) to resolve exactly.",
292
327
  inputSchema: {
293
- action: z.enum(["update"]),
328
+ action: z.enum(["update", "update_by_serial"]),
294
329
  args: z.record(z.string(), z.unknown()).optional()
295
330
  .describe("Action-specific arguments — see the description."),
296
331
  },
297
332
  annotations: { idempotentHint: true },
298
333
  handler: async (a) => {
299
334
  const action = String(a.action);
300
- if (action !== "update") {
301
- return errorResult(`Unknown action "${action}" for tracepass_passport_fields.`);
335
+ switch (action) {
336
+ case "update": {
337
+ const p = parseArgs(SCHEMAS.fieldUpdate, a.args, "tracepass_passport_fields", action);
338
+ if (isErr(p))
339
+ return p;
340
+ return apiResult(await client.patch(`/api/v1/passports/${seg(p.id)}/fields/${seg(p.fieldKey)}`, {
341
+ value: p.value,
342
+ }));
343
+ }
344
+ case "update_by_serial": {
345
+ const p = parseArgs(SCHEMAS.fieldUpdateBySerial, a.args, "tracepass_passport_fields", action);
346
+ if (isErr(p))
347
+ return p;
348
+ return apiResult(await client.patch(`/api/v1/passports/by-serial/${seg(p.serial)}/fields/${seg(p.fieldKey)}${qs({ gtin: p.gtin })}`, { value: p.value }));
349
+ }
350
+ default:
351
+ return errorResult(`Unknown action "${action}" for tracepass_passport_fields.`);
302
352
  }
303
- const p = parseArgs(SCHEMAS.fieldUpdate, a.args, "tracepass_passport_fields", action);
304
- if (isErr(p))
305
- return p;
306
- return apiResult(await client.patch(`/api/v1/passports/${seg(p.id)}/fields/${seg(p.fieldKey)}`, {
307
- value: p.value,
308
- }));
309
353
  },
310
354
  };
311
355
  // ─────────────────────── passport parties ────────────────────
@@ -350,11 +394,12 @@ export function buildTools(client) {
350
394
  description: "GS1 EPCIS 2.0 supply-chain events. `export` is included on Starter plans and up; `capture`, `capture_job`, and `query` require the paid EPCIS add-on (those actions return a 403-style message without it).\n\n" +
351
395
  "Actions (pass via `action`, with `args`):\n" +
352
396
  "- export — args: { id }. Export a passport's events as an EPCIS 2.0 JSON-LD document. Read-only.\n" +
397
+ "- export_by_serial — args: { serial, gtin? }. Same as export, addressed by your own serial. A serial is unique only WITHIN a GTIN — if it isn't unique in your account the call returns 409 ambiguous_serial; pass `gtin` (or use export by id). Read-only.\n" +
353
398
  "- capture — args: { events }. `events` is an EPCISDocument, a single event, or an array of events (JSON-LD). Returns a 202 with a captureJobId.\n" +
354
399
  "- capture_job — args: { jobId }. Poll an async capture job. Read-only.\n" +
355
400
  "- query — args: { params? }. `params` is a key/value map of standard EPCIS query parameters (EQ_bizStep, GE_eventTime, MATCH_epc, …). Read-only.",
356
401
  inputSchema: {
357
- action: z.enum(["export", "capture", "capture_job", "query"]),
402
+ action: z.enum(["export", "export_by_serial", "capture", "capture_job", "query"]),
358
403
  args: z.record(z.string(), z.unknown()).optional()
359
404
  .describe("Action-specific arguments — see the description."),
360
405
  },
@@ -368,6 +413,12 @@ export function buildTools(client) {
368
413
  return p;
369
414
  return apiResult(await client.get(`/api/v1/passports/${seg(p.id)}/epcis`));
370
415
  }
416
+ case "export_by_serial": {
417
+ const p = parseArgs(SCHEMAS.epcisExportBySerial, a.args, "tracepass_epcis", action);
418
+ if (isErr(p))
419
+ return p;
420
+ return apiResult(await client.get(`/api/v1/passports/by-serial/${seg(p.serial)}/epcis${qs({ gtin: p.gtin })}`));
421
+ }
371
422
  case "capture": {
372
423
  const p = parseArgs(SCHEMAS.epcisCapture, a.args, "tracepass_epcis", action);
373
424
  if (isErr(p))
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "tracepass-mcp-server",
3
3
  "mcpName": "eu.tracepass/tracepass",
4
- "version": "1.2.0",
5
- "description": "Model Context Protocol server for TracePass the EU Digital Product Passport platform. Lets AI assistants manage products, passports, and EPCIS supply-chain events.",
4
+ "version": "1.4.0",
5
+ "description": "Model Context Protocol server for TracePass \u2014 the EU Digital Product Passport platform. Lets AI assistants manage products, passports, and EPCIS supply-chain events.",
6
6
  "license": "MIT",
7
7
  "type": "module",
8
8
  "keywords": [