mcp-recipes 3.0.0 → 4.0.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/CHANGELOG.md +70 -0
- package/PRIVACY.md +8 -6
- package/README.md +192 -103
- package/dist/index.js +1236 -249
- package/dist/index.js.map +1 -1
- package/dist/{language-BgfmjwtF.d.ts → language-B3VNNg7f.d.ts} +2 -2
- package/dist/recipe/scale.d.ts +13 -5
- package/dist/recipe/scale.js +616 -89
- package/dist/recipe/scale.js.map +1 -1
- package/dist/sources/client.d.ts +163 -9
- package/dist/sources/client.js +348 -50
- package/dist/sources/client.js.map +1 -1
- package/package.json +20 -17
- package/server.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.0
|
|
4
|
+
|
|
5
|
+
- **The published client entry renames a field on `SourceProfile` and
|
|
6
|
+
`SourceReport`.** A program importing `mcp-recipes/client` reads
|
|
7
|
+
`rowsThatAreNotRecipes` where it read `mixesReferencePages`: a sentence in the
|
|
8
|
+
source's own words saying what else one of its rows can be, and null where
|
|
9
|
+
every row is a recipe. The boolean forced one wording on two different
|
|
10
|
+
situations, a page about an ingredient filed beside the recipes using it and
|
|
11
|
+
an article that gathers recipes, and one sentence could only describe one of
|
|
12
|
+
them truthfully. The tools' own answers are unaffected: `per_source` never
|
|
13
|
+
published the field, and the note it produces now names each source in that
|
|
14
|
+
source's terms.
|
|
15
|
+
- **`get_recipe` answers in two shapes, and `kind` says which.** One source
|
|
16
|
+
publishes articles that gather recipes at the same kind of address as a
|
|
17
|
+
recipe. Such an answer carries `collection` with the headings and the recipes
|
|
18
|
+
it points at, and no `recipe`; a recipe carries `recipe` and no `collection`.
|
|
19
|
+
A caller that read the article as a recipe would have offered a dish nobody
|
|
20
|
+
can cook. `compare_recipes` leaves such a page out and says why.
|
|
21
|
+
- **Pequerecetas is added**, under the id `pequerecetas`, beside the five
|
|
22
|
+
sources already read. It publishes in Spanish, states no total anywhere, and
|
|
23
|
+
addresses a recipe by the slug in its own address.
|
|
24
|
+
- **Spanish is read and written like the other two languages.** The scaler
|
|
25
|
+
reads a Spanish line for what it is, keeps a huevo whole, halves a diente,
|
|
26
|
+
quarters a cebolla, moves a cucharada into the cucharadita before rounding
|
|
27
|
+
it, multiplies the count of a pizca while leaving the size of one to the
|
|
28
|
+
cook, and agrees nouns and adjectives with the number in front of them. A
|
|
29
|
+
list holding all three languages comes back with each line written in its
|
|
30
|
+
own. `scale_ingredients` takes `es` beside `fr`, `en` and `auto`.
|
|
31
|
+
- **A line naming a tool is recognised and never multiplied.** Some sites write
|
|
32
|
+
what a recipe is cooked with among its ingredients, so a mould or an air
|
|
33
|
+
fryer arrives in the same list as the chicken. Every ingredient line carries
|
|
34
|
+
`is_equipment`, and `scale_ingredients` reports `equipment_count` beside the
|
|
35
|
+
counts of what was scaled: a recipe made for more people uses the same pan.
|
|
36
|
+
- **Each site is read at the pace it asks for.** Two of the sites declare three
|
|
37
|
+
seconds between two requests where the shared default is one second, and they
|
|
38
|
+
were being read four times faster than that. A setting posted for every
|
|
39
|
+
source can now only make this server more patient than the slowest of them
|
|
40
|
+
asks for.
|
|
41
|
+
- **A row that does not name the dish is no longer called a recipe for it.**
|
|
42
|
+
One of the sources answers any wording with something, so a question asked in
|
|
43
|
+
a language it does not publish in came back as several confident recipes for a
|
|
44
|
+
dish nobody published. Every source's rows are now arranged with the ones
|
|
45
|
+
naming the dish first, `per_source` carries `names_the_dish` beside `count`,
|
|
46
|
+
and the answer opens on "rows" rather than "recipes" where no source named it.
|
|
47
|
+
- **The library section of the README states the API the client actually has.**
|
|
48
|
+
It documented a call that does not exist.
|
|
49
|
+
- **An amount stated per eater is recognised in every language.** "50 g par
|
|
50
|
+
personne" and "50 g por persona" were multiplied by the factor, which asks for
|
|
51
|
+
twice as much on every plate; only the English wording was read. A length of
|
|
52
|
+
time is read the same way, in whichever language names it.
|
|
53
|
+
- **The backstop over one source allows what a reader actually spends.** It was
|
|
54
|
+
computed on the shared spacing and left out the wait a site asks for by name,
|
|
55
|
+
so it could fire while the reader was still working: the read was abandoned
|
|
56
|
+
while its requests carried on reaching the site.
|
|
57
|
+
- **An article that gathers recipes is returned bounded.** It was the one answer
|
|
58
|
+
with no ceiling on it, and an article can point at a hundred recipes.
|
|
59
|
+
`max_gathered` says how many to return and `gathered_count` how many there
|
|
60
|
+
are.
|
|
61
|
+
|
|
62
|
+
## 3.0.1
|
|
63
|
+
|
|
64
|
+
- **Every tool is documented, with its arguments and what its answer carries.**
|
|
65
|
+
The README is written for a person deciding whether to install and for a
|
|
66
|
+
program installing on its own, and a test holds both halves to what the server
|
|
67
|
+
registers.
|
|
68
|
+
- **The privacy policy travels in the package.** It states the hosts contacted,
|
|
69
|
+
what a request carries, what is held and for how long.
|
|
70
|
+
- **The manifest names every tool the server registers**, which a host reads
|
|
71
|
+
before installing anything.
|
|
72
|
+
|
|
3
73
|
## 3.0.0
|
|
4
74
|
|
|
5
75
|
- **`compare_recipes` now answers with up to five versions where it answered
|
package/PRIVACY.md
CHANGED
|
@@ -8,7 +8,7 @@ _[Version française](#confidentialité)_
|
|
|
8
8
|
|
|
9
9
|
## What this server is
|
|
10
10
|
|
|
11
|
-
`mcp-recipes` is a read-only client for
|
|
11
|
+
`mcp-recipes` is a read-only client for six recipe sites: [Marmiton](https://www.marmiton.org), the [Wikibooks Cookbook](https://en.wikibooks.org/wiki/Cookbook:Table_of_Contents), [Ptitchef](https://www.ptitchef.com), [BBC Good Food](https://www.bbcgoodfood.com), [Supertoinette](https://www.supertoinette.com) and [Pequerecetas](https://www.pequerecetas.com). It runs on your
|
|
12
12
|
own machine, as a process your MCP host starts, and it speaks over stdio. It
|
|
13
13
|
listens on no port.
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@ It needs no API key and no account, so there is no credential for it to hold and
|
|
|
16
16
|
|
|
17
17
|
## What leaves your machine, and where it goes
|
|
18
18
|
|
|
19
|
-
**
|
|
19
|
+
**6 hosts are contacted**, and nothing else.
|
|
20
20
|
|
|
21
21
|
| Host | What is read there |
|
|
22
22
|
| ----------------------- | ------------------------------------------------------------------------------------------------ |
|
|
@@ -25,6 +25,7 @@ It needs no API key and no account, so there is no credential for it to hold and
|
|
|
25
25
|
| `www.ptitchef.com` | the site's pages |
|
|
26
26
|
| `www.bbcgoodfood.com` | a JSON route the site's own front end uses, for a search; the recipe's page itself, for a recipe |
|
|
27
27
|
| `www.supertoinette.com` | the site's pages |
|
|
28
|
+
| `www.pequerecetas.com` | the site's pages |
|
|
28
29
|
|
|
29
30
|
A Cookbook page is linked as `en.wikibooks.org`, which is where a reader opens
|
|
30
31
|
it. That host is never contacted by this server: the pages themselves are read
|
|
@@ -38,7 +39,7 @@ What a request carries:
|
|
|
38
39
|
| A `User-Agent` | `mcp-recipes/<version> (+https://github.com/smeet666/mcp-recipes)`, so the site can reach a person about the traffic it receives. |
|
|
39
40
|
| Your IP address | Sent by your network to any host you contact, as with any web request. |
|
|
40
41
|
|
|
41
|
-
Your requests reach the
|
|
42
|
+
Your requests reach the six sites above. What is done with them there is governed by each site's own privacy policy, which this project does not control.
|
|
42
43
|
|
|
43
44
|
## What is kept, and for how long
|
|
44
45
|
|
|
@@ -90,7 +91,7 @@ Ce serveur ne collecte rien sur vous et n'envoie rien à son auteur.
|
|
|
90
91
|
|
|
91
92
|
## Ce qu'est ce serveur
|
|
92
93
|
|
|
93
|
-
`mcp-recipes` est un client en lecture seule pour
|
|
94
|
+
`mcp-recipes` est un client en lecture seule pour six sites de recettes : [Marmiton](https://www.marmiton.org), le [Cookbook des Wikibooks](https://en.wikibooks.org/wiki/Cookbook:Table_of_Contents), [Ptitchef](https://www.ptitchef.com), [BBC Good Food](https://www.bbcgoodfood.com), [Supertoinette](https://www.supertoinette.com) et [Pequerecetas](https://www.pequerecetas.com). Il
|
|
94
95
|
tourne sur votre machine, comme un processus que votre hôte MCP démarre, et il
|
|
95
96
|
parle en stdio. Il n'écoute sur aucun port.
|
|
96
97
|
|
|
@@ -98,7 +99,7 @@ Il ne demande ni clé d'API ni compte, donc il ne détient aucun identifiant et
|
|
|
98
99
|
|
|
99
100
|
## Ce qui quitte votre machine, et où cela va
|
|
100
101
|
|
|
101
|
-
**
|
|
102
|
+
**6 hôtes sont joints**, et rien d'autre.
|
|
102
103
|
|
|
103
104
|
| Hôte | Ce qui y est lu |
|
|
104
105
|
| ----------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
@@ -107,6 +108,7 @@ Il ne demande ni clé d'API ni compte, donc il ne détient aucun identifiant et
|
|
|
107
108
|
| `www.ptitchef.com` | les pages du site |
|
|
108
109
|
| `www.bbcgoodfood.com` | une route JSON qu'emploie l'interface du site, pour une recherche ; la page de la recette, pour une recette |
|
|
109
110
|
| `www.supertoinette.com` | les pages du site |
|
|
111
|
+
| `www.pequerecetas.com` | les pages du site |
|
|
110
112
|
|
|
111
113
|
Une page du Cookbook est liée sous `en.wikibooks.org`, où un lecteur l'ouvre. Ce
|
|
112
114
|
serveur ne joint jamais cet hôte : les pages elles-mêmes sont lues par la
|
|
@@ -120,7 +122,7 @@ Ce qu'une requête emporte :
|
|
|
120
122
|
| Un `User-Agent` | `mcp-recipes/<version> (+https://github.com/smeet666/mcp-recipes)`, pour que le site puisse joindre une personne au sujet du trafic qu'il reçoit. |
|
|
121
123
|
| Votre adresse IP | Transmise par votre réseau à tout hôte que vous joignez, comme pour n'importe quelle requête web. |
|
|
122
124
|
|
|
123
|
-
Vos requêtes atteignent les
|
|
125
|
+
Vos requêtes atteignent les six sites ci-dessus. Ce qui en est fait là-bas relève de la politique de confidentialité propre à chaque site, que ce projet ne contrôle pas.
|
|
124
126
|
|
|
125
127
|
## Ce qui est conservé, et combien de temps
|
|
126
128
|
|