sebfischer83/MealieMcpServer
3.2
If you are the rightful owner of MealieMcpServer and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Mealie-MCP is a server implementation for the Model Context Protocol (MCP) that provides tools for recipe searching with paging capabilities.
Tools
2
Resources
0
Prompts
0
Mealie-MCP
Kurzbeschreibung
Dieses Repository enthält den MCP‑Server für Mealie ("Mealie MCP"). Der Server stellt Tool‑Methoden für die Model Context Protocol (MCP) Oberfläche bereit, z. B. Rezeptsuche mit Paging.
Wichtigste Dateien
src/MealieMCP.Server– ASP.NET Core Serverprojektsrc/MealieMCP.Server/Tools/ReceipeTools.cs– MCP‑Tool‑Methoden (z. B.SearchReceipeAsync,SearchReceipePageAsync)
Voraussetzungen
- .NET 9 SDK
- Optional: Docker & Docker Compose (für Containerbetrieb)
Build & Run (lokal)
- Projekt wiederherstellen und bauen:
dotnet restore(im Repo‑Root odersrc/MealieMCP.Server)dotnet build src/MealieMCP.Server
- Server starten:
dotnet run --project src/MealieMCP.Server
Authentifizierung
- Die HTTP‑Schnittstelle der MCP‑Tools kann mit API‑Tokens geschützt werden.
- Konfiguriere dazu im
appsettings.json(oder via Umgebungsvariablen, z. B.MealiMcp__ApiTokenAuthentication__Tokens__0) eine Liste gültiger Tokens. - Clients senden das Token entweder als
Authorization: Bearer <token>,X-Api-Token: <token>oder?access_token=<token>. - Sind keine Tokens konfiguriert, bleibt der Zugriff wie bisher offen.
Docker
- Zum Starten mit Docker Compose:
docker compose up --build
MCP Tools & Paging
- Die Klasse
ReceipeToolsstellt MCP‑Tools bereit, z. B.:SearchReceipeAsync(string query)— gibt das erste gefundeneRecipeSummaryzurück.SearchReceipePageAsync(string query, int? page = null, int? perPage = null, string? paginationSeed = null)— liefert eine einzelne Seite mit Paging‑Metadaten (PaginationBase_RecipeSummary_).
Beispiele
- Seite 2 anfragen (C# Aufruf innerhalb des Servers / Tests):
await receipeTools.SearchReceipePageAsync("suppe", page: 2);
- Cursor‑Paging mit
paginationSeed:- Verwende das Feld
NextimPaginationBase_RecipeSummary_‑Objekt, um den nächstenpaginationSeedzu erhalten und anSearchReceipePageAsync(..., paginationSeed: "...")zu übergeben.
- Verwende das Feld
Hinweise
- Achte auf Rate‑Limits und Timeouts wenn mehrere Seiten hintereinander abgefragt werden.
- Für vollständige Aggregation kann eine zusätzliche Methode implementiert werden, die intern alle Seiten zusammenführt.
Contributing
- Änderungen per Pull Request. Achte auf Coding‑Standards und Unit Tests.
Lizenz
- (Platzhalter) Bitte Lizenz in
LICENSEhinzufügen.