Canteen MCP
The Canteen MCP server provides a structured API to retrieve daily lunch menus from a canteen.
Retrieve Lunch Menus: Query the lunch menu for a specific date using the
get_lunch_menutool with a date string in 'YYYY-MM-DD' formatData Format: Returns menu data as a JSON string
Real-Time Communication: Utilizes httpStream-based transport for real-time data exchange
Type-Safe API: Ensures input validation with a defined schema for query parameters
Customizable Deployment: Can be configured and deployed via Docker, including support for GitHub Container Registry and Hetzner
Environment-Based Configuration: Allows setting up API URLs, ports, and endpoints through environment variables
Connects to a lunch menu API hosted on Vercel to retrieve daily canteen meal information for specific dates
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., "@Canteen MCPwhat's for lunch on October 15th?"
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.
Canteen MCP
A Model Context Protocol (MCP) server that provides access to the canteen's lunch menu via a simple API integration.
Description
Canteen MCP is a FastMCP-based server that exposes a tool for retrieving daily lunch menus from the canteen. It connects to a menu API and provides a structured interface for querying menu data for specific dates.
Related MCP server: MCP Apple Calendars
Features
Get lunch menu for any specific date
httpStream-based transport for real-time communication
Environment-based configuration
Type-safe API with input validation
Installation
npm installConfiguration
Copy the example environment file and update it with your values:
cp .env.example .envEnvironment Variables
Variable | Description | Example |
API_URL | URL of the lunch menu API | |
PORT | Port for the MCP server | 8080 |
ENDPOINT | HTTP endpoint | /endpoint |
Usage
Start the server:
npm startAvailable Tools
get_lunch_menu
Retrieves the lunch menu for a specific date.
Parameters:
date: String in YYYY-MM-DD format
Returns: JSON string containing the menu data
Example:
const result = await tool.execute({ date: "2024-10-05" });
Development
Prerequisites
Node.js >= 18
npm
Running in Development Mode
npm run devDocker
Building the Image
docker build -t canteen-mcp .Running the Container
docker run -d \
-p 8080:3000 \
-e API_URL=your_api_url \
-e PORT=3000 \
-e ENDPOINT=/http \
--name canteen-mcp \
canteen-mcpUsing GitHub Container Registry
Pull the latest image:
docker pull ghcr.io/[your-username]/canteen-mcp:latestDeployment
Deploying to Hetzner
SSH into your Hetzner server:
ssh root@your-server-ipInstall Docker if not already installed:
curl -fsSL https://get.docker.com | shCreate a docker-compose.yml file:
version: '3.8'
services:
canteen-mcp:
image: ghcr.io/c0dr/canteen-mcp:latest
restart: always
ports:
- "8080:3000"
environment:
- API_URL=your_api_url
- PORT=3000
- ENDPOINT=/httpStart the service:
docker-compose up -dLicense
This project is licensed under the MIT License - see the LICENSE file for details.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
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/c0dr/canteen-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server