@cyanheads/openfoodfacts-mcp-server 0.1.0 → 0.1.2
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 +5 -2
- package/CLAUDE.md +5 -2
- package/README.md +27 -5
- package/changelog/0.1.x/0.1.1.md +10 -0
- package/changelog/0.1.x/0.1.2.md +24 -0
- package/dist/index.js +0 -0
- package/package.json +7 -6
- package/server.json +9 -3
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** openfoodfacts-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.
|
|
4
|
+
**Version:** 0.1.2
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.21`
|
|
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
|
|
@@ -225,6 +225,7 @@ Available skills:
|
|
|
225
225
|
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
226
226
|
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
227
227
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
228
|
+
| `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
|
|
228
229
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
229
230
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
230
231
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
|
@@ -239,6 +240,8 @@ Available skills:
|
|
|
239
240
|
| `api-telemetry` | OTel catalog: spans, metrics, completion logs, env config, cardinality rules |
|
|
240
241
|
| `api-workers` | Cloudflare Workers runtime |
|
|
241
242
|
|
|
243
|
+
**Chaining skills into pipelines.** When the user wants a multi-phase effort — build this server out, QA-and-fix the surface, update-and-ship — *and you can spawn sub-agents*, `skills/orchestrations/SKILL.md` sequences the task skills above into a gated pipeline with verification at each step. Read it to drive the run. Optional: skip it if you can't orchestrate sub-agents, and ignore it entirely if you were *spawned* as one — you've already been scoped to a single phase.
|
|
244
|
+
|
|
242
245
|
When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
|
|
243
246
|
|
|
244
247
|
---
|
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** openfoodfacts-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.
|
|
4
|
+
**Version:** 0.1.2
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.21`
|
|
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
|
|
@@ -225,6 +225,7 @@ Available skills:
|
|
|
225
225
|
| `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
|
|
226
226
|
| `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
|
|
227
227
|
| `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
|
|
228
|
+
| `orchestrations` | Chain task skills into a gated multi-phase pipeline — build-out, QA-fix, update-ship — when you can spawn sub-agents |
|
|
228
229
|
| `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
|
|
229
230
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
230
231
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
|
@@ -239,6 +240,8 @@ Available skills:
|
|
|
239
240
|
| `api-telemetry` | OTel catalog: spans, metrics, completion logs, env config, cardinality rules |
|
|
240
241
|
| `api-workers` | Cloudflare Workers runtime |
|
|
241
242
|
|
|
243
|
+
**Chaining skills into pipelines.** When the user wants a multi-phase effort — build this server out, QA-and-fix the surface, update-and-ship — *and you can spawn sub-agents*, `skills/orchestrations/SKILL.md` sequences the task skills above into a gated pipeline with verification at each step. Read it to drive the run. Optional: skip it if you can't orchestrate sub-agents, and ignore it entirely if you were *spawned* as one — you've already been scoped to a single phase.
|
|
244
|
+
|
|
242
245
|
When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
|
|
243
246
|
|
|
244
247
|
---
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/openfoodfacts-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/openfoodfacts-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
|
+
<div align="center">
|
|
23
|
+
|
|
24
|
+
**Public Hosted Server:** [https://openfoodfacts.caseyjhand.com/mcp](https://openfoodfacts.caseyjhand.com/mcp)
|
|
25
|
+
|
|
26
|
+
</div>
|
|
27
|
+
|
|
22
28
|
---
|
|
23
29
|
|
|
24
30
|
## Tools
|
|
@@ -66,7 +72,6 @@ Side-by-side nutrition and scoring comparison for 2–10 barcodes.
|
|
|
66
72
|
- Returns a normalized comparison table: energy (kcal/100g), fat, saturated fat, sugars, salt, protein, fiber, Nutri-Score, NOVA group, and Green-Score
|
|
67
73
|
- Missing nutrition data is preserved as `null` — comparisons are not imputed or estimated
|
|
68
74
|
- `not_found` list identifies barcodes with no contributor record (partial results are not an error)
|
|
69
|
-
- For batches of 5+ products, the comparison table is registered as a canvas dataframe for downstream SQL queries (`secedgar_dataframe_query`-style analytics)
|
|
70
75
|
|
|
71
76
|
---
|
|
72
77
|
|
|
@@ -110,12 +115,29 @@ Agent-friendly output:
|
|
|
110
115
|
|
|
111
116
|
## Getting started
|
|
112
117
|
|
|
118
|
+
### Public Hosted Instance
|
|
119
|
+
|
|
120
|
+
A public instance is available at `https://openfoodfacts.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"mcpServers": {
|
|
125
|
+
"openfoodfacts-mcp-server": {
|
|
126
|
+
"type": "streamable-http",
|
|
127
|
+
"url": "https://openfoodfacts.caseyjhand.com/mcp"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Self-Hosted / Local
|
|
134
|
+
|
|
113
135
|
No API key is required. Add the following to your MCP client configuration file.
|
|
114
136
|
|
|
115
137
|
```json
|
|
116
138
|
{
|
|
117
139
|
"mcpServers": {
|
|
118
|
-
"openfoodfacts": {
|
|
140
|
+
"openfoodfacts-mcp-server": {
|
|
119
141
|
"type": "stdio",
|
|
120
142
|
"command": "bunx",
|
|
121
143
|
"args": ["@cyanheads/openfoodfacts-mcp-server@latest"],
|
|
@@ -133,7 +155,7 @@ Or with npx (no Bun required):
|
|
|
133
155
|
```json
|
|
134
156
|
{
|
|
135
157
|
"mcpServers": {
|
|
136
|
-
"openfoodfacts": {
|
|
158
|
+
"openfoodfacts-mcp-server": {
|
|
137
159
|
"type": "stdio",
|
|
138
160
|
"command": "npx",
|
|
139
161
|
"args": ["-y", "@cyanheads/openfoodfacts-mcp-server@latest"],
|
|
@@ -151,7 +173,7 @@ Or with Docker:
|
|
|
151
173
|
```json
|
|
152
174
|
{
|
|
153
175
|
"mcpServers": {
|
|
154
|
-
"openfoodfacts": {
|
|
176
|
+
"openfoodfacts-mcp-server": {
|
|
155
177
|
"type": "stdio",
|
|
156
178
|
"command": "docker",
|
|
157
179
|
"args": [
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Public hosted endpoint at https://openfoodfacts.caseyjhand.com/mcp — connect via Streamable HTTP without installing."
|
|
3
|
+
breaking: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 0.1.1 — 2026-05-30
|
|
7
|
+
|
|
8
|
+
## Added
|
|
9
|
+
|
|
10
|
+
- **Public hosted endpoint** at `https://openfoodfacts.caseyjhand.com/mcp` — Streamable HTTP, no installation required. Added `remotes` entry to `server.json` and documented in README.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Adopt @cyanheads/mcp-ts-core ^0.9.21 — per-request log context fix, secret-stripped error messages, and fail-fast retry behavior."
|
|
3
|
+
breaking: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 0.1.2 — 2026-06-02
|
|
7
|
+
|
|
8
|
+
## Changed
|
|
9
|
+
|
|
10
|
+
- **`@cyanheads/mcp-ts-core`** `^0.9.16` → `^0.9.21`. Notable framework changes:
|
|
11
|
+
- Per-request logs and traces now carry fresh request + trace/span IDs instead of the frozen boot context (HTTP transport fix).
|
|
12
|
+
- `fetchWithTimeout` strips query-string secrets (e.g. `?api_key=`) from error messages and logs.
|
|
13
|
+
- `withRetry` fails fast on non-retryable errors; `ctx.fail` auto-populates the `retryable` flag.
|
|
14
|
+
- **README** client-config keys renamed from `"openfoodfacts"` to the full package name `"openfoodfacts-mcp-server"` for consistency.
|
|
15
|
+
- **Skills** re-synced with framework 0.9.21: `add-service`, `add-tool`, `api-canvas`, `api-context`, `api-linter`, `api-utils`, `design-mcp-server`, `release-and-publish` updated; new `api-mirror` and `orchestrations` skills added.
|
|
16
|
+
- **`scripts/`**: new `check-skill-versions.ts`, `release-github.ts`, `devcheck.ts` scripts adopted from framework template.
|
|
17
|
+
|
|
18
|
+
## Dependencies
|
|
19
|
+
|
|
20
|
+
- `@cyanheads/mcp-ts-core` ^0.9.16 → ^0.9.21
|
|
21
|
+
- `@biomejs/biome` ^2.4.7 → ^2.4.16 (dev)
|
|
22
|
+
- `@types/node` ^25.6.0 → ^25.9.1 (dev)
|
|
23
|
+
- `tsc-alias` ^1.8.16 → ^1.8.17 (dev)
|
|
24
|
+
- `vitest` ^4.1.0 → ^4.1.8 (dev)
|
package/dist/index.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/openfoodfacts-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
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",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"start": "bun ./dist/index.js",
|
|
39
39
|
"start:stdio": "MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js",
|
|
40
40
|
"start:http": "MCP_TRANSPORT_TYPE=http bun ./dist/index.js",
|
|
41
|
+
"release:github": "tsx scripts/release-github.ts",
|
|
41
42
|
"publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish"
|
|
42
43
|
},
|
|
43
44
|
"keywords": [
|
|
@@ -86,17 +87,17 @@
|
|
|
86
87
|
"access": "public"
|
|
87
88
|
},
|
|
88
89
|
"dependencies": {
|
|
89
|
-
"@cyanheads/mcp-ts-core": "^0.9.
|
|
90
|
+
"@cyanheads/mcp-ts-core": "^0.9.21",
|
|
90
91
|
"pino-pretty": "^13.1.3",
|
|
91
92
|
"zod": "^4.4.3"
|
|
92
93
|
},
|
|
93
94
|
"devDependencies": {
|
|
94
|
-
"@biomejs/biome": "^2.4.
|
|
95
|
-
"@types/node": "^25.
|
|
95
|
+
"@biomejs/biome": "^2.4.16",
|
|
96
|
+
"@types/node": "^25.9.1",
|
|
96
97
|
"depcheck": "^1.4.7",
|
|
97
98
|
"ignore": "^7.0.5",
|
|
98
|
-
"tsc-alias": "^1.8.
|
|
99
|
+
"tsc-alias": "^1.8.17",
|
|
99
100
|
"typescript": "^5.9.3",
|
|
100
|
-
"vitest": "^4.1.
|
|
101
|
+
"vitest": "^4.1.8"
|
|
101
102
|
}
|
|
102
103
|
}
|
package/server.json
CHANGED
|
@@ -6,14 +6,20 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/openfoodfacts-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.2",
|
|
10
|
+
"remotes": [
|
|
11
|
+
{
|
|
12
|
+
"type": "streamable-http",
|
|
13
|
+
"url": "https://openfoodfacts.caseyjhand.com/mcp"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
10
16
|
"packages": [
|
|
11
17
|
{
|
|
12
18
|
"registryType": "npm",
|
|
13
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
20
|
"identifier": "@cyanheads/openfoodfacts-mcp-server",
|
|
15
21
|
"runtimeHint": "bun",
|
|
16
|
-
"version": "0.1.
|
|
22
|
+
"version": "0.1.2",
|
|
17
23
|
"packageArguments": [
|
|
18
24
|
{
|
|
19
25
|
"type": "positional",
|
|
@@ -63,7 +69,7 @@
|
|
|
63
69
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
64
70
|
"identifier": "@cyanheads/openfoodfacts-mcp-server",
|
|
65
71
|
"runtimeHint": "bun",
|
|
66
|
-
"version": "0.1.
|
|
72
|
+
"version": "0.1.2",
|
|
67
73
|
"packageArguments": [
|
|
68
74
|
{
|
|
69
75
|
"type": "positional",
|