@cyanheads/openfoodfacts-mcp-server 0.1.2 → 0.1.4

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/AGENTS.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** openfoodfacts-mcp-server
4
- **Version:** 0.1.2
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.21`
4
+ **Version:** 0.1.4
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.6`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
package/CLAUDE.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** openfoodfacts-mcp-server
4
- **Version:** 0.1.2
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.21`
4
+ **Version:** 0.1.4
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.6`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
package/Dockerfile CHANGED
@@ -36,11 +36,15 @@ WORKDIR /usr/src/app
36
36
  # production dependencies are installed.
37
37
  ENV NODE_ENV=production
38
38
 
39
+ # Build arg for OCI version label — passed via --build-arg APP_VERSION=<version> at release time
40
+ ARG APP_VERSION
41
+
39
42
  # OCI image metadata (https://github.com/opencontainers/image-spec/blob/main/annotations.md)
40
43
  LABEL org.opencontainers.image.title="openfoodfacts-mcp-server"
41
44
  LABEL org.opencontainers.image.description="Look up food products by barcode, search by ingredient or nutrition filter, compare products side-by-side, and browse the canonical tag vocabulary via MCP. STDIO or Streamable HTTP."
42
45
  LABEL org.opencontainers.image.licenses="Apache-2.0"
43
46
  LABEL org.opencontainers.image.source="https://github.com/cyanheads/openfoodfacts-mcp-server"
47
+ LABEL org.opencontainers.image.version="${APP_VERSION}"
44
48
 
45
49
  # Copy dependency manifests
46
50
  COPY package.json bun.lock ./
@@ -95,5 +99,9 @@ ENV MCP_FORCE_CONSOLE_LOGGING="true"
95
99
  # Expose the port the server listens on
96
100
  EXPOSE ${MCP_HTTP_PORT}
97
101
 
102
+ # Health check — polls /healthz every 30s; no curl/wget dependency
103
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \
104
+ CMD bun -e "fetch('http://localhost:' + (process.env.MCP_HTTP_PORT || '3010') + '/healthz').then(r => r.ok ? process.exit(0) : process.exit(1)).catch(() => process.exit(1))"
105
+
98
106
  # The command to start the server
99
107
  CMD ["bun", "run", "dist/index.js"]
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.1.2-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/openfoodfacts-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/openfoodfacts-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openfoodfacts-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^5.9.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.1.4-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/openfoodfacts-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/openfoodfacts-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openfoodfacts-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -0,0 +1,12 @@
1
+ ---
2
+ summary: "off_search_products: add sort_by parameter and ecoscore_grade (Green-Score) to search result rows."
3
+ breaking: false
4
+ ---
5
+
6
+ # 0.1.3 — 2026-06-04
7
+
8
+ ## Added
9
+
10
+ - **`off_search_products` `sort_by` parameter** — optional enum (`last_modified_t`, `unique_scans_n`, `created_t`, `popularity_key`) passed through to the upstream `/api/v2/search` `sort_by` query param on the tag-filter path. Ignored on text-query searches (search.openfoodfacts.org does not support server-side sort). ([#2](https://github.com/cyanheads/openfoodfacts-mcp-server/issues/2))
11
+ - **`ecoscore_grade`** added to `SEARCH_FIELDS`, `SearchParams`, `RawTextSearchHit`, the output schema, the text-search normalizer, and `format()` (`Green-Score: <grade>` alongside Nutri-Score / NOVA). ([#2](https://github.com/cyanheads/openfoodfacts-mcp-server/issues/2))
12
+ - **21 new tests** covering `sort_by` pass-through (tag-filter URL), `sort_by` absent from text-search URL, `ecoscore_grade` in result rows (present and absent), service-layer URL and text-search normalization, and `format()` rendering.
@@ -0,0 +1,29 @@
1
+ ---
2
+ summary: "Adopt @cyanheads/mcp-ts-core ^0.10.6: truncation disclosure on search and taxonomy, explicit server identity, MCPB bundle hardening, and Docker healthcheck."
3
+ breaking: false
4
+ ---
5
+
6
+ # 0.1.4 — 2026-06-12
7
+
8
+ ## Added
9
+
10
+ - **Truncation disclosure** — `off_search_products` and `off_browse_taxonomy` now emit `ctx.enrich.truncated(...)` with `truncated` / `shown` / `cap` output fields when the response is paginated or capped. Search includes a `guidance` string naming the current page and total page count (`Page N of M. Use page parameter to fetch subsequent pages.`).
11
+ - **Explicit server identity** — `createApp()` sets `name` and `title` to `openfoodfacts-mcp-server` so the display identity is the unscoped repo name across all client surfaces, rather than falling back to the scoped package name.
12
+ - **`scripts/clean-mcpb.ts`** — post-pack bundle cleaner wired into the `bundle` script: runs `mcpb clean` (dev-dependency prune + manifest validation), then strips dependency-shipped agent-doc entries (`skills/`, `.claude/`, `.agents/`, `SKILL.md`) nested under `node_modules/` that root-anchored `.mcpbignore` patterns cannot reach, and asserts zero remain.
13
+ - **Docker `HEALTHCHECK`** — polls `/healthz` every 30s via `bun -e fetch` (no curl/wget dependency); OCI `org.opencontainers.image.version` label populated from a new `APP_VERSION` build arg.
14
+ - **`techniques` skill** — catalog of reusable response/data-shaping patterns (overflow handling, payload shaping), seeded with the outline-on-overflow reference.
15
+
16
+ ## Changed
17
+
18
+ - **`off_search_products` `no_filters` error** — code changed from `InvalidParams` to `ValidationError`.
19
+ - **`.mcpbignore`** — root dev-dir patterns anchored (`skills/` → `/skills/`, `.claude/` → `/.claude/`, `.agents/` → `/.agents/`) so they no longer also strip nested runtime paths like `node_modules/<pkg>/skills/`.
20
+ - **`scripts/lint-packaging.ts`** — adds bundle-content guards (unanchored root dev-dir patterns, stripped critical runtime paths, post-bundle `node_modules/**` agent-doc entries) and an identity check that `createApp()` `name`/`title` and manifest `display_name` equal the unscoped package name.
21
+ - **`scripts/check-framework-antipatterns.ts`** — new `coerce-boolean-env-flag` rule flags `z.coerce.boolean()` on env flags (`Boolean("false")` is `true` — use `z.stringbool()`); comment lines are skipped so documenting the pattern doesn't trip the scan.
22
+ - **Vendored skills** re-synced to the installed framework version under `skills/`, `.claude/skills/`, and `.agents/skills/`.
23
+
24
+ ### Dependencies
25
+
26
+ - `@cyanheads/mcp-ts-core` ^0.9.21 → ^0.10.6
27
+ - `@biomejs/biome` ^2.4.16 → ^2.5.0
28
+ - `@types/node` ^25.9.1 → ^25.9.3
29
+ - `typescript` ^5.9.3 → ^6.0.3
package/dist/index.js CHANGED
@@ -8,6 +8,8 @@ import { allToolDefinitions } from './mcp-server/tools/definitions/index.js';
8
8
  import { initOpenFoodFactsService } from './services/openfoodfacts/openfoodfacts-service.js';
9
9
  import { initTaxonomyService } from './services/taxonomy/taxonomy-service.js';
10
10
  await createApp({
11
+ name: 'openfoodfacts-mcp-server',
12
+ title: 'openfoodfacts-mcp-server',
11
13
  tools: allToolDefinitions,
12
14
  instructions: 'Use the off_* tools to query Open Food Facts — a free, crowd-sourced global food product database covering 3M+ products. ' +
13
15
  'Primary workflow: off_get_product for barcode lookup (EAN-13/UPC), off_search_products to find products by text or tags, ' +
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,MAAM,SAAS,CAAC;IACd,KAAK,EAAE,kBAAkB;IACzB,YAAY,EACV,2HAA2H;QAC3H,2HAA2H;QAC3H,+HAA+H;QAC/H,mGAAmG;QACnG,2EAA2E;QAC3E,oFAAoF;IACtF,KAAK;QACH,wBAAwB,EAAE,CAAC;QAC3B,mBAAmB,EAAE,CAAC;IACxB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,0BAA0B;IACjC,KAAK,EAAE,kBAAkB;IACzB,YAAY,EACV,2HAA2H;QAC3H,2HAA2H;QAC3H,+HAA+H;QAC/H,mGAAmG;QACnG,2EAA2E;QAC3E,oFAAoF;IACtF,KAAK;QACH,wBAAwB,EAAE,CAAC;QAC3B,mBAAmB,EAAE,CAAC;IACxB,CAAC;CACF,CAAC,CAAC"}
@@ -23,5 +23,9 @@ export declare const offBrowseTaxonomyTool: import("@cyanheads/mcp-ts-core").Too
23
23
  products: z.ZodOptional<z.ZodNumber>;
24
24
  }, z.core.$strip>>;
25
25
  total_in_facet: z.ZodOptional<z.ZodNumber>;
26
- }, z.core.$strip>, undefined, undefined>;
26
+ }, z.core.$strip>, undefined, {
27
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
28
+ readonly shown: z.ZodOptional<z.ZodNumber>;
29
+ readonly cap: z.ZodOptional<z.ZodNumber>;
30
+ }>;
27
31
  //# sourceMappingURL=browse-taxonomy.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browse-taxonomy.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-taxonomy.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;wCAiHhC,CAAC"}
1
+ {"version":3,"file":"browse-taxonomy.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-taxonomy.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAGjD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EA4HhC,CAAC"}
@@ -57,6 +57,11 @@ export const offBrowseTaxonomyTool = tool('off_browse_taxonomy', {
57
57
  .optional()
58
58
  .describe('Total entries in this facet before search filtering. Large for categories.'),
59
59
  }),
60
+ enrichment: {
61
+ truncated: z.boolean().optional().describe('True when more tags exist beyond the limit.'),
62
+ shown: z.number().optional().describe('Number of tags returned.'),
63
+ cap: z.number().optional().describe('The limit that was applied.'),
64
+ },
60
65
  handler(input, ctx) {
61
66
  const svc = getTaxonomyService();
62
67
  const result = svc.search(input.facet, input.search && input.search.trim().length > 0 ? input.search.trim() : undefined, input.limit);
@@ -66,6 +71,10 @@ export const offBrowseTaxonomyTool = tool('off_browse_taxonomy', {
66
71
  returned: result.tags.length,
67
72
  total: result.total_in_facet,
68
73
  });
74
+ // Disclose truncation when the result was capped by limit
75
+ if (result.total_in_facet !== undefined && result.tags.length < result.total_in_facet) {
76
+ ctx.enrich.truncated({ shown: result.tags.length, cap: input.limit });
77
+ }
69
78
  return {
70
79
  facet: result.facet,
71
80
  tags: result.tags,
@@ -1 +1 @@
1
- {"version":3,"file":"browse-taxonomy.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-taxonomy.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browse-taxonomy.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/browse-taxonomy.tool.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,11 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
22
22
  products: import("zod").ZodOptional<import("zod").ZodNumber>;
23
23
  }, import("zod/v4/core").$strip>>;
24
24
  total_in_facet: import("zod").ZodOptional<import("zod").ZodNumber>;
25
- }, import("zod/v4/core").$strip>, undefined, undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
25
+ }, import("zod/v4/core").$strip>, undefined, {
26
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
27
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
28
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
29
+ }> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
26
30
  barcodes: import("zod").ZodArray<import("zod").ZodString>;
27
31
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
28
32
  products: import("zod").ZodArray<import("zod").ZodObject<{
@@ -144,6 +148,12 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
144
148
  4: "4";
145
149
  }>>;
146
150
  countries_tag: import("zod").ZodOptional<import("zod").ZodString>;
151
+ sort_by: import("zod").ZodOptional<import("zod").ZodEnum<{
152
+ last_modified_t: "last_modified_t";
153
+ unique_scans_n: "unique_scans_n";
154
+ created_t: "created_t";
155
+ popularity_key: "popularity_key";
156
+ }>>;
147
157
  page: import("zod").ZodDefault<import("zod").ZodNumber>;
148
158
  page_size: import("zod").ZodDefault<import("zod").ZodNumber>;
149
159
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -156,11 +166,12 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
156
166
  brands: import("zod").ZodOptional<import("zod").ZodString>;
157
167
  nutriscore_grade: import("zod").ZodOptional<import("zod").ZodString>;
158
168
  nova_group: import("zod").ZodOptional<import("zod").ZodNumber>;
169
+ ecoscore_grade: import("zod").ZodOptional<import("zod").ZodString>;
159
170
  categories_tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
160
171
  }, import("zod/v4/core").$strip>>;
161
172
  }, import("zod/v4/core").$strip>, readonly [{
162
173
  readonly reason: "no_filters";
163
- readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.InvalidParams;
174
+ readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
164
175
  readonly when: "No search query or filter was provided";
165
176
  readonly recovery: "Provide at least one of: query, categories_tag, brands_tag, labels_tag, nutrition_grade, nova_group, or countries_tag.";
166
177
  }, {
@@ -171,5 +182,8 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
171
182
  readonly recovery: "Retry after a brief pause. The Open Food Facts service may be rate-limiting or experiencing high load.";
172
183
  }], {
173
184
  readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
185
+ readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
186
+ readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
187
+ readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
174
188
  }>)[];
175
189
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAK9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAK9B,CAAC"}
@@ -23,6 +23,12 @@ export declare const offSearchProductsTool: import("@cyanheads/mcp-ts-core").Too
23
23
  4: "4";
24
24
  }>>;
25
25
  countries_tag: z.ZodOptional<z.ZodString>;
26
+ sort_by: z.ZodOptional<z.ZodEnum<{
27
+ last_modified_t: "last_modified_t";
28
+ unique_scans_n: "unique_scans_n";
29
+ created_t: "created_t";
30
+ popularity_key: "popularity_key";
31
+ }>>;
26
32
  page: z.ZodDefault<z.ZodNumber>;
27
33
  page_size: z.ZodDefault<z.ZodNumber>;
28
34
  }, z.core.$strip>, z.ZodObject<{
@@ -35,11 +41,12 @@ export declare const offSearchProductsTool: import("@cyanheads/mcp-ts-core").Too
35
41
  brands: z.ZodOptional<z.ZodString>;
36
42
  nutriscore_grade: z.ZodOptional<z.ZodString>;
37
43
  nova_group: z.ZodOptional<z.ZodNumber>;
44
+ ecoscore_grade: z.ZodOptional<z.ZodString>;
38
45
  categories_tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
39
46
  }, z.core.$strip>>;
40
47
  }, z.core.$strip>, readonly [{
41
48
  readonly reason: "no_filters";
42
- readonly code: JsonRpcErrorCode.InvalidParams;
49
+ readonly code: JsonRpcErrorCode.ValidationError;
43
50
  readonly when: "No search query or filter was provided";
44
51
  readonly recovery: "Provide at least one of: query, categories_tag, brands_tag, labels_tag, nutrition_grade, nova_group, or countries_tag.";
45
52
  }, {
@@ -50,5 +57,8 @@ export declare const offSearchProductsTool: import("@cyanheads/mcp-ts-core").Too
50
57
  readonly recovery: "Retry after a brief pause. The Open Food Facts service may be rate-limiting or experiencing high load.";
51
58
  }], {
52
59
  readonly notice: z.ZodOptional<z.ZodString>;
60
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
61
+ readonly shown: z.ZodOptional<z.ZodNumber>;
62
+ readonly cap: z.ZodOptional<z.ZodNumber>;
53
63
  }>;
54
64
  //# sourceMappingURL=search-products.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-products.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-products.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+OhC,CAAC"}
1
+ {"version":3,"file":"search-products.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-products.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwQhC,CAAC"}
@@ -38,6 +38,10 @@ export const offSearchProductsTool = tool('off_search_products', {
38
38
  .string()
39
39
  .optional()
40
40
  .describe('Canonical country tag ID. Example: "en:france", "en:united-states". Filters to products sold in that country.'),
41
+ sort_by: z
42
+ .enum(['last_modified_t', 'unique_scans_n', 'created_t', 'popularity_key'])
43
+ .optional()
44
+ .describe('Sort order for tag-filter results. "unique_scans_n" surfaces the most-scanned products. Ignored on text-query searches (search.openfoodfacts.org does not support server-side sort). Omitting returns results in default database order.'),
41
45
  page: z
42
46
  .number()
43
47
  .int()
@@ -80,6 +84,10 @@ export const offSearchProductsTool = tool('off_search_products', {
80
84
  .number()
81
85
  .optional()
82
86
  .describe('NOVA processing class (1–4). Absent when not assigned.'),
87
+ ecoscore_grade: z
88
+ .string()
89
+ .optional()
90
+ .describe('Green-Score letter (a–e). Environmental impact indicator. Absent when not computed.'),
83
91
  categories_tags: z
84
92
  .array(z.string().describe('Canonical category tag ID (e.g. "en:cheeses").'))
85
93
  .optional()
@@ -93,11 +101,14 @@ export const offSearchProductsTool = tool('off_search_products', {
93
101
  .string()
94
102
  .optional()
95
103
  .describe('Guidance when results are empty — echoes filters and suggests how to broaden.'),
104
+ truncated: z.boolean().optional().describe('True when more results exist beyond this page.'),
105
+ shown: z.number().optional().describe('Number of products returned on this page.'),
106
+ cap: z.number().optional().describe('The page_size that was applied.'),
96
107
  },
97
108
  errors: [
98
109
  {
99
110
  reason: 'no_filters',
100
- code: JsonRpcErrorCode.InvalidParams,
111
+ code: JsonRpcErrorCode.ValidationError,
101
112
  when: 'No search query or filter was provided',
102
113
  recovery: 'Provide at least one of: query, categories_tag, brands_tag, labels_tag, nutrition_grade, nova_group, or countries_tag.',
103
114
  },
@@ -141,6 +152,8 @@ export const offSearchProductsTool = tool('off_search_products', {
141
152
  searchParams.nova_group = input.nova_group;
142
153
  if (input.countries_tag?.trim())
143
154
  searchParams.countries_tag = input.countries_tag.trim();
155
+ if (input.sort_by)
156
+ searchParams.sort_by = input.sort_by;
144
157
  const response = await svc.searchProducts(searchParams, ctx);
145
158
  ctx.log.info('Product search completed', {
146
159
  total: response.count,
@@ -168,12 +181,21 @@ export const offSearchProductsTool = tool('off_search_products', {
168
181
  'Try broader terms, check tag IDs via off_browse_taxonomy, or remove some filters.',
169
182
  });
170
183
  }
184
+ else if (response.count > response.page_count) {
185
+ // Disclose when the page is smaller than the total result set
186
+ ctx.enrich.truncated({
187
+ shown: response.page_count,
188
+ cap: input.page_size,
189
+ guidance: `Page ${response.page} of ${Math.ceil(response.count / input.page_size)}. Use page parameter to fetch subsequent pages.`,
190
+ });
191
+ }
171
192
  const products = response.products.map((p) => ({
172
193
  barcode: p.code ?? '',
173
194
  ...(p.product_name && { product_name: p.product_name }),
174
195
  ...(p.brands && { brands: p.brands }),
175
196
  ...(p.nutriscore_grade && { nutriscore_grade: p.nutriscore_grade }),
176
197
  ...(typeof p.nova_group === 'number' && { nova_group: p.nova_group }),
198
+ ...(p.ecoscore_grade && { ecoscore_grade: p.ecoscore_grade }),
177
199
  ...(p.categories_tags && { categories_tags: p.categories_tags }),
178
200
  }));
179
201
  return {
@@ -205,6 +227,8 @@ export const offSearchProductsTool = tool('off_search_products', {
205
227
  scores.push(`Nutri-Score: ${p.nutriscore_grade}`);
206
228
  if (p.nova_group !== undefined)
207
229
  scores.push(`NOVA: ${p.nova_group}`);
230
+ if (p.ecoscore_grade)
231
+ scores.push(`Green-Score: ${p.ecoscore_grade}`);
208
232
  if (scores.length > 0)
209
233
  lines.push(`**Scores:** ${scores.join(' | ')}`);
210
234
  if (p.categories_tags && p.categories_tags.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"search-products.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-products.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-products.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-products.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openfoodfacts-service.d.ts","sourceRoot":"","sources":["../../../src/services/openfoodfacts/openfoodfacts-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EACV,UAAU,EAKV,YAAY,EACb,MAAM,YAAY,CAAC;AAsDpB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;gBAEhC,MAAM,EAAE,YAAY;IAMhC;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4B3E;;;OAGG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA2B7B,iGAAiG;YACnF,qBAAqB;IAwDnC;;;;;;;;OAQG;IACH,cAAc,CACZ,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;IAQF;;;OAGG;YACW,oBAAoB;IA4ElC,yFAAyF;YAC3E,oBAAoB;IA8ElC,OAAO,CAAC,cAAc;CAavB;AAMD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAO9D"}
1
+ {"version":3,"file":"openfoodfacts-service.d.ts","sourceRoot":"","sources":["../../../src/services/openfoodfacts/openfoodfacts-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EACV,UAAU,EAKV,YAAY,EACb,MAAM,YAAY,CAAC;AAuDpB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;gBAEhC,MAAM,EAAE,YAAY;IAMhC;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4B3E;;;OAGG;IACG,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA2B7B,iGAAiG;YACnF,qBAAqB;IAwDnC;;;;;;;;OAQG;IACH,cAAc,CACZ,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;IAQF;;;OAGG;YACW,oBAAoB;IA6ElC,yFAAyF;YAC3E,oBAAoB;IA8ElC,OAAO,CAAC,cAAc;CAcvB;AAMD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAO9D"}
@@ -17,7 +17,7 @@ const PRODUCT_FIELDS = 'product_name,brands,quantity,ingredients_text,ingredient
17
17
  'nutriscore_grade,nova_group,ecoscore_grade,nutriments,categories_tags,labels_tags,' +
18
18
  'packaging_tags,origins_tags,image_url,completeness,data_quality_tags';
19
19
  /** Fields to request on search results — summary rows for triage. Shared by both search paths. */
20
- const SEARCH_FIELDS = 'code,product_name,brands,nutriscore_grade,nova_group,categories_tags';
20
+ const SEARCH_FIELDS = 'code,product_name,brands,nutriscore_grade,nova_group,ecoscore_grade,categories_tags';
21
21
  /**
22
22
  * Text search endpoint — search.openfoodfacts.org uses Elasticsearch and actually filters by the
23
23
  * query text. The /api/v2/search endpoint silently ignores search_terms and returns all products.
@@ -201,6 +201,7 @@ export class OpenFoodFactsService {
201
201
  ...(brands !== undefined && { brands }),
202
202
  ...(hit.nutriscore_grade !== undefined && { nutriscore_grade: hit.nutriscore_grade }),
203
203
  ...(hit.nova_group !== undefined && { nova_group: hit.nova_group }),
204
+ ...(hit.ecoscore_grade !== undefined && { ecoscore_grade: hit.ecoscore_grade }),
204
205
  ...(hit.categories_tags !== undefined && { categories_tags: hit.categories_tags }),
205
206
  // code is the barcode — stored as a synthetic field for the search handler to read
206
207
  ...{ code: hit.code },
@@ -289,6 +290,8 @@ export class OpenFoodFactsService {
289
290
  url.searchParams.set('nova_groups', params.nova_group);
290
291
  if (params.countries_tag)
291
292
  url.searchParams.set('countries_tags', params.countries_tag);
293
+ if (params.sort_by)
294
+ url.searchParams.set('sort_by', params.sort_by);
292
295
  url.searchParams.set('page', String(params.page ?? 1));
293
296
  url.searchParams.set('page_size', String(params.page_size ?? 20));
294
297
  return url.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"openfoodfacts-service.js","sourceRoot":"","sources":["../../../src/services/openfoodfacts/openfoodfacts-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openfoodfacts-service.js","sourceRoot":"","sources":["../../../src/services/openfoodfacts/openfoodfacts-service.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,7 @@ export type RawTextSearchHit = {
72
72
  brands?: string | string[];
73
73
  nutriscore_grade?: string;
74
74
  nova_group?: number;
75
+ ecoscore_grade?: string;
75
76
  categories_tags?: string[];
76
77
  };
77
78
  /** Search parameters for the OFF /api/v2/search endpoint. */
@@ -83,6 +84,8 @@ export type SearchParams = {
83
84
  nutrition_grade?: string;
84
85
  nova_group?: string;
85
86
  countries_tag?: string;
87
+ /** Sort order — applied only on the tag-filter path (/api/v2/search). Ignored on text search. */
88
+ sort_by?: 'last_modified_t' | 'unique_scans_n' | 'created_t' | 'popularity_key';
86
89
  page?: number;
87
90
  page_size?: number;
88
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/openfoodfacts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/openfoodfacts/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/openfoodfacts-mcp-server",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "mcpName": "io.github.cyanheads/openfoodfacts-mcp-server",
5
5
  "description": "Look up food products by barcode, search by ingredient or nutrition filter, compare products side-by-side, and browse the canonical tag vocabulary via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  "format:unsafe": "biome check --write --unsafe .",
32
32
  "lint:mcp": "bun run scripts/lint-mcp.ts",
33
33
  "lint:packaging": "bun run scripts/lint-packaging.ts",
34
- "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfoodfacts-mcp-server.mcpb",
34
+ "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfoodfacts-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfoodfacts-mcp-server.mcpb",
35
35
  "changelog:build": "bun run scripts/build-changelog.ts",
36
36
  "changelog:check": "bun run scripts/build-changelog.ts --check",
37
37
  "test": "bunx vitest run",
@@ -87,17 +87,17 @@
87
87
  "access": "public"
88
88
  },
89
89
  "dependencies": {
90
- "@cyanheads/mcp-ts-core": "^0.9.21",
90
+ "@cyanheads/mcp-ts-core": "^0.10.6",
91
91
  "pino-pretty": "^13.1.3",
92
92
  "zod": "^4.4.3"
93
93
  },
94
94
  "devDependencies": {
95
- "@biomejs/biome": "^2.4.16",
96
- "@types/node": "^25.9.1",
95
+ "@biomejs/biome": "^2.5.0",
96
+ "@types/node": "^25.9.3",
97
97
  "depcheck": "^1.4.7",
98
98
  "ignore": "^7.0.5",
99
99
  "tsc-alias": "^1.8.17",
100
- "typescript": "^5.9.3",
100
+ "typescript": "^6.0.3",
101
101
  "vitest": "^4.1.8"
102
102
  }
103
103
  }
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/openfoodfacts-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.2",
9
+ "version": "0.1.4",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/openfoodfacts-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "0.1.2",
22
+ "version": "0.1.4",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -69,7 +69,7 @@
69
69
  "registryBaseUrl": "https://registry.npmjs.org",
70
70
  "identifier": "@cyanheads/openfoodfacts-mcp-server",
71
71
  "runtimeHint": "bun",
72
- "version": "0.1.2",
72
+ "version": "0.1.4",
73
73
  "packageArguments": [
74
74
  {
75
75
  "type": "positional",