Data source: TheMealDB
https://context.gnist.ai/mcp/recipe/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (7)
search_recipesget_recipeget_random_recipelist_categoriesfilter_by_categoryfilter_by_areareport_feedback
search_recipesSearch international recipes by name.
Returns full recipe details including ingredients, instructions, and category.
Args:
query: Recipe name to search for (e.g. "Arrabiata", "chicken", "pasta").
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Recipe name to search for (e.g. "Arrabiata", "chicken", "pasta"). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_recipes",
"arguments": {
"query": "example"
}
}
}get_recipeGet full details for a specific recipe by its ID.
Args:
meal_id: TheMealDB recipe ID (e.g. "52771").
Returns:
Full recipe record with ingredients, instructions, category, and cuisine.
| Parameter | Type | Required | Description |
|---|---|---|---|
meal_id | string | required | TheMealDB recipe ID (e.g. "52771"). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_recipe",
"arguments": {
"meal_id": "example"
}
}
}get_random_recipeGet a random recipe from the international recipe database.
Returns:
A randomly selected recipe with full details.
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_random_recipe",
"arguments": {}
}
}list_categoriesList all available recipe categories (e.g. Beef, Chicken, Dessert, Seafood).
Returns:
List of categories with names, thumbnails, and descriptions.
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "list_categories",
"arguments": {}
}
}filter_by_categoryFilter recipes by category. Returns recipe summaries (name, ID, image).
Use get_recipe() with the returned ID to get full details.
Args:
category: Recipe category (e.g. "Beef", "Chicken", "Dessert", "Seafood", "Vegetarian").
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | required | Recipe category (e.g. "Beef", "Chicken", "Dessert", "Seafood", "Vegetarian"). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "filter_by_category",
"arguments": {
"category": "example"
}
}
}filter_by_areaFilter recipes by cuisine/area. Returns recipe summaries (name, ID, image).
Use get_recipe() with the returned ID to get full details.
Args:
area: Cuisine area (e.g. "Italian", "Japanese", "Mexican", "British", "Indian").
| Parameter | Type | Required | Description |
|---|---|---|---|
area | string | required | Cuisine area (e.g. "Italian", "Japanese", "Mexican", "British", "Indian"). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "filter_by_area",
"arguments": {
"area": "example"
}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/recipe/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_recipes", "arguments": {"query": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/recipe/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_recipes",
"arguments": {
"query": "example"
}
}
},
)
print(resp.json())