meican-mcp
This server provides an MCP interface for Meican (美餐), a corporate meal ordering platform, enabling you to query and manage meal orders programmatically.
User info (
meican_whoami): Retrieve your organization details and available delivery/pickup addresses, including the suggested default address.Meal sessions (
meican_list_meal_tabs): List available meal times (e.g., lunch, dinner) for a given date, including order deadlines and whether an order already exists.Restaurants (
meican_list_restaurants): Browse restaurants available for a specific meal session.Menus (
meican_show_menu): Fetch the full menu (dishes grouped by section) for a specific restaurant and session.List orders (
meican_list_orders): View all orders for a given date, plus unpaid items — useful for avoiding duplicates.Order details (
meican_show_order): Get full details of a single order, including pickup location, payment status, and dishes.Place order (
meican_place_order): Submit a meal order with selected dishes, quantities, pickup address, and optional notes. Supportsdry_runmode to preview before submitting.Cancel order (
meican_cancel_order): Cancel an existing order by its unique ID.
The server also automatically refreshes and persists expired tokens.
Click on "Deploy 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., "@meican-mcp list my orders for today"
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.
meican-mcp
美餐(Meican)MCP Server。支持查询餐次、餐厅、菜单、订单,以及下单和取消订单。
可用工具
工具 | 用途 |
| 查询组织信息和取餐地址。 |
| 查询某天可用餐次。 |
| 查询某个餐次下可用餐厅。 |
| 查询某个餐厅在指定餐次下的菜单。 |
| 查询某天已有订单和未支付项目摘要。 |
| 查询单个订单详情。 |
| 下单。调用前必须向用户确认。 |
| 取消订单。调用前必须向用户确认。 |
工具返回一个 MCP text content block,内容是 JSON 字符串:
{ "ok": true, "data": {} }失败时:
{ "ok": false, "error": { "message": "...", "status": 400, "body": {}, "kind": "MeicanError" } }token 过期时会自动刷新并保存,无需手动更新环境变量。
Related MCP server: CookUnity MCP
快速使用
{
"mcpServers": {
"meican": {
"command": "npx",
"args": ["-y", "meican-mcp"],
"env": {
"MEICAN_CLIENT_ID": "...",
"MEICAN_CLIENT_SECRET": "...",
"MEICAN_ACCESS_TOKEN": "...",
"MEICAN_REFRESH_TOKEN": "...",
"MEICAN_NAMESPACE": "..."
}
}
}
}MEICAN_ACCESS_TOKEN 对应美餐的 cookie sat,MEICAN_REFRESH_TOKEN 对应美餐的 cookie srt。
本地配置
推荐将登录信息放在本地配置文件中:
Linux/macOS:
~/.config/meican-mcp/config.jsonWindows:
%APPDATA%\meican-mcp\config.json
{
"clientId": "...",
"clientSecret": "...",
"accessToken": "...",
"refreshToken": "...",
"namespace": "..."
}accessToken 对应美餐 cookie sat,refreshToken 对应 cookie srt。token 过期后,
server 会自动刷新并更新这个文件。
本地配置优先于环境变量。需要修改配置文件位置时,可设置 MEICAN_CONFIG_FILE。
环境变量
变量 | 必填 | 说明 |
| 否 | 美餐 OAuth client id;也可配置 |
| 否 | 美餐 OAuth client secret;也可配置 |
| 否 | 美餐 |
| 否 | 美餐 |
| 否 | 默认组织/站点 namespace。也可以在工具调用参数里传。 |
| 否 | 默认 |
| 否 | 覆盖本地配置文件的完整路径。 |
HTTP 模式相关:
变量 | 必填 | 说明 |
| 是 | HTTP |
| 否 | 默认 |
| 否 | 默认 |
| 否 | 默认 |
HTTP 模式
npm install
cp .env.example .env
# 编辑 .env
npm run build
npm start健康检查:
curl http://127.0.0.1:3000/healthzHTTP MCP 配置示例:
{
"mcpServers": {
"meican": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer ${MCP_API_KEY}"
}
}
}
}Available Tools
8 toolsmeican_cancel_orderA
Cancel a meal order. DESTRUCTIVE: this removes the order. ALWAYS confirm with the user before calling.
Inputs: order_unique_id (required), type, namespace, access_token, +1 more.
meican_list_meal_tabsA
List meal sessions ('餐次', e.g. 午餐, 晚餐) available for a given date. Each tab has a tab_unique_id and a target_time (the order deadline as 'YYYY-MM-DD HH:MM') which you pass verbatim to subsequent tools. Use this FIRST when the user wants to order or view orders for a day. If existing_order is non-null for a tab, the user has already ordered from it — surface that instead of placing a duplicate.
Inputs: date, namespace, access_token, refresh_token.
meican_list_ordersA
List the current user's existing Meican orders for a date plus any unpaid items. Call this BEFORE meican_place_order to avoid duplicates.
Inputs: date, namespace, access_token, refresh_token.
meican_list_restaurantsA
List restaurants serving in one meal session. Returns each restaurant's unique_id and name. Get the args from meican_list_meal_tabs.
Inputs: target_time (required), tab_unique_id (required), namespace, access_token, +1 more.
meican_place_orderA
Place a meal order. DESTRUCTIVE: this may charge the user or consume an organization subsidy. ALWAYS confirm dish names, counts, total price, target time, and pickup address with the user BEFORE calling this. Set dry_run: true first to inspect the payload without submitting.
Inputs: dishes (required), target_time (required), tab_unique_id (required), address_unique_id (required), +5 more.
meican_show_orderA
Show full status of one order by its uniqueId, including pickup location, current pay status, and dishes. Use after placing an order to confirm it succeeded (expect status_info='NEW_ORDER', pay_status='SUCCESS').
Inputs: order_unique_id (required), namespace, access_token, refresh_token.
meican_whoamiA
Look up the current user's organization info and ALL delivery addresses on Meican. Call this once per user to discover their suggested_default_address (= most recently used pickup point); store the returned unique_id on the user's profile and pass it as address_unique_id to meican_place_order.
Inputs: namespace, access_token, refresh_token.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: cancel, list tabs, list orders, list restaurants, place order, show menu, show order details, and look up user info. No two tools have overlapping functionality.
All tools follow the consistent pattern 'meican_verb_noun' with snake_case, making it easy to predict tool names and understand their actions.
8 tools is appropriate for a meal ordering service, covering essential actions without being overwhelming or too sparse.
The set covers the full ordering lifecycle: browsing sessions, restaurants, menus, placing orders, viewing orders, and canceling. A minor gap is the lack of an update/modify order tool, but core workflows are well-supported.
Maintenance
Related MCP Connectors
MCP server for Meitre restaurant reservations.
An MCP server that exposes functionalities to use Zomato's services.
The official Planning Center MCP server for interacting with your ministry's data.
Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceRemote MCP Server for listing and getting the menus of the official mensas in munichMIT
- AlicenseAqualityDmaintenanceMCP server for CookUnity meal delivery service. Browse menus, manage carts, confirm orders, skip/unskip deliveries, and view order history.1621 npm8MIT
- FlicenseAqualityDmaintenanceConfigurable MCP server for cafeteria menu lookup.1-
- AlicenseAqualityCmaintenanceMCP server for the Löwen Menü IBS5 school-lunch ordering system, enabling an LLM to browse weekly menus, manage a shopping cart, and place meal orders.7MIT