Tekuila MCP Server
Fetches and parses restaurant menu data from RSS feeds to provide daily and weekly meal information along with AI-powered health analysis and meal planning.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tekuila MCP ServerWhat's for lunch today? Recommend the healthiest choice."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ฝ๏ธ Tekuila MCP Server
An MCP (Model Context Protocol) server for accessing Tekuila restaurant menus with AI-powered healthy meal recommendations.
Features
๐ Daily & Weekly Menus: Get current day and week menus from Tekuila restaurant
๐ค AI-Powered Analysis: Intelligent health recommendations and meal planning
๐ Date Context: Current date awareness for better planning
๐ฑ Health-Focused: Prioritizes vegetarian options while considering taste
๐ง Universal Compatibility: Works with Claude Desktop, Cursor, LM Studio, and other MCP clients
Related MCP server: foodvisor-mcp
Quick Start
Prerequisites
Python 3.12 or higher
uv package manager
Installation
Clone and setup:
git clone <your-repo> cd tekuila uv syncRun the server:
For cloud hosting (HTTP transport):
uv run python main.pyFor local development (stdio transport):
uv run python tekuila.py
Transport Modes
The server supports two different transport modes:
Stdio Transport (tekuila.py)
Use case: Local development and MCP client integration
How it works: Communicates via standard input/output
Best for: Claude Desktop, Cursor, LM Studio, and other MCP clients
Command:
uv run python tekuila.py
HTTP Transport (main.py)
Use case: Cloud hosting and web deployment
How it works: Runs as an HTTP server on port 8000
Best for: Cloud platforms, Docker containers, web services
Command:
uv run python main.pyURL:
http://127.0.0.1:8000(when running locally)
Connect to MCP Clients
Claude Desktop
Add this to your claude_desktop_config.json (uses stdio transport):
{
"mcpServers": {
"tekuila": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/tekuila",
"run",
"tekuila.py"
]
}
}
}Cursor
The server also works with Cursor's MCP integration. Configure it in your Cursor MCP settings.
LM Studio
Compatible with LM Studio's MCP server support. Add the server configuration in LM Studio's MCP settings.
Available Tools
Basic Menu Tools
get_current_day_menu()- Get today's menu with date contextget_current_week_menu()- Get this week's menu with date contextget_current_date()- Get current date and time context
AI-Powered Planning Tools
analyze_daily_menu()- Get today's menu with AI analysis instructionsplan_weekly_menu()- Get week's menu with planning guide
Prompts (for clients with prompt support)
analyze_menu_selection- AI-powered daily menu analysisweekly_menu_planning- AI-powered weekly meal planning
Usage Examples
Daily Menu Analysis
What's on the menu today at Tekuila?Weekly Planning
Help me plan my meals for this week with healthy recommendations.AI Analysis
Analyze today's menu and recommend the healthiest options.Menu Structure
The server understands Finnish menu categories:
๐ฑ Vegaaninen kasvislounas - Vegan lunch (healthiest)
๐ฅฌ Kasvislounas - Vegetarian lunch (good option)
๐ Lounas - Regular lunch (meat options)
โญ POP UP Bistro - Special/expensive options
๐ฐ Jรคlkiruoka - Desserts
AI Analysis Features
Health Priority System
Vegaaninen kasvislounas - Usually healthiest (vegan)
Kasvislounas - Good vegetarian option
Lounas - Regular meat option
POP UP Bistro - Special/expensive option
Analysis Guidelines
Nutritional Quality: Evaluates protein sources, vegetables, cooking methods
Processing Level: Prefers whole foods over processed options
Taste Balance: Considers if vegetarian options are actually appealing
Value Assessment: Evaluates if special options are worth the cost
Red Flags
Overly processed vegetarian options (like simple carrot crepes)
Deep-fried items (paistettu)
Heavy cream/cheese sauces (kerma, juusto)
Lack of vegetables or protein
Technical Details
RSS Integration
Current Day:
https://www.compass-group.fi/menuapi/feed/rss/current-day?costNumber=0605&language=fiCurrent Week:
https://www.compass-group.fi/menuapi/feed/rss/current-week?costNumber=0605&language=fi
Dependencies
httpx- HTTP client for RSS fetchingmcp[cli]- Model Context Protocol server framework
Architecture
Simple RSS Parsing: Extracts day + menu content
AI-Powered Analysis: Lets AI analyze menu text intelligently
Shared Instructions: Reuses prompt content across tools and prompts
Date Awareness: Includes current date context for better planning
Development
Project Structure
tekuila/
โโโ tekuila.py # Main MCP server implementation (stdio transport)
โโโ main.py # HTTP server entry point (streamable-http transport)
โโโ pyproject.toml # Project configuration
โโโ uv.lock # Dependency lock file
โโโ .gitignore # Git ignore rules
โโโ README.md # This fileRunning Tests
# Test HTTP server startup (cloud hosting)
uv run python main.py
# Test stdio server startup (local development)
uv run python tekuila.py
# Test individual functions
uv run python -c "from tekuila import get_current_date_context; print(get_current_date_context())"Troubleshooting
Server Not Starting
Check Python version (3.12+ required)
Ensure all dependencies are installed:
uv syncCheck RSS feed URLs are accessible
License
This project is licensed under the MIT License - see the LICENSE file for details.
Enjoy your healthy meals at Tekuila! ๐ฝ๏ธ
Available Tools
5 toolsget_current_dateA
Get current date and time context.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates the tool retrieves date/time information, implying a read-only operation, but doesn't disclose behavioral traits like whether it returns local or UTC time, format, or any rate limits. The description adds minimal context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, clearly front-loading the tool's purpose. It's appropriately sized for a simple tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, output schema exists), the description is complete enough for basic understanding. However, with no annotations and an output schema, it could benefit from more behavioral context (e.g., time format), but it's adequate for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description doesn't add parameter details, which is appropriate, earning a baseline score of 4 for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current date and time context'), making it immediately understandable. However, it doesn't differentiate from sibling tools (which are all menu-related), though this isn't necessary since the tool serves a distinct function unrelated to menus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('current date and time context') but doesn't explicitly state when to use this tool versus alternatives or provide any exclusions. Given the sibling tools are menu-related, this tool likely serves a different purpose, but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Multiple tools have overlapping purposes that could cause confusion. 'analyze_daily_menu' and 'get_current_day_menu' both target today's menu, with the former adding AI analysis instructions. Similarly, 'get_current_week_menu' and 'plan_weekly_menu' both handle the weekly menu, with the latter including planning instructions. This overlap makes it unclear which tool to use for basic retrieval versus enhanced functionality.
Tool names follow a consistent snake_case pattern with clear verb_noun structures, such as 'analyze_daily_menu' and 'get_current_date'. However, there is a minor inconsistency: 'get_current_day_menu' and 'get_current_week_menu' use 'day' and 'week' inconsistently with 'daily' and 'weekly' in other tools, but overall the naming is predictable and readable.
With 5 tools, the count is well-scoped for a restaurant menu server focused on daily and weekly planning. Each tool appears to serve a distinct role in the domain, and the number is neither too sparse nor overwhelming, fitting typical expectations for such a purpose.
The tool set covers retrieval and planning for daily and weekly menus, but there are notable gaps. For example, there are no tools for updating or modifying menus, handling past or future menus beyond the current period, or managing restaurant details like hours or locations. This limits the server's ability to support full lifecycle operations in the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Unlock the power of food transparency with our Open Food Facts MCP server. Easily look up any food
Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that provides access to Cronometer nutrition data, enabling users to pull food logs, macro and micronutrient summaries, and biometric data into Claude or Cursor. It supports daily nutrition tracking and raw CSV exports by interfacing with the Cronometer web protocol.2717MIT
- AlicenseNot gradedqualityDmaintenanceMCP server integrating Foodvisor nutrition API for food search, meal logging, daily summaries, and progress tracking via LLM agents like Claude.MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for MealMastery AI meal planning that enables users to manage meal plans, recipes, and grocery lists through natural language conversation with AI agents like Claude.90MIT
- FlicenseNot gradedqualityDmaintenanceMCP server enabling AI assistants to manage recipes and ingredients in the WeekPlan app via its REST API.1
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mtpajula/tekuila-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server