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 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 five 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) and [Supertoinette](https://www.supertoinette.com). It runs on your
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
- **5 hosts are contacted**, and nothing else.
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 five sites above. What is done with them there is governed by each site's own privacy policy, which this project does not control.
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 cinq 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) et [Supertoinette](https://www.supertoinette.com). Il
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
- **5 hôtes sont joints**, et rien d'autre.
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 cinq 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.
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