menami
Personalized restaurant recommendations, table bookings, and delivery via MCP, CLI, or API, learning user taste and acting proactively.
README
<p align="center"> <img src="assets/logo.svg" alt="menami" width="320" /> </p>
<p align="center"> <strong>Your personal food agent.</strong><br> AI-powered restaurant recommendations, table bookings, and delivery — via MCP, CLI, or API. </p>
<p align="center"> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-D95A28.svg" alt="License: MIT"></a> <a href="https://getmenami.com"><img src="https://img.shields.io/badge/getmenami.com-D95A28" alt="getmenami.com"></a> </p>
Why Menami?
Most restaurant APIs give you data. Menami gives you an agent that knows you.
- It learns your taste. Not just "Italian" — it knows you love smoky mole, hate loud restaurants, and your partner is allergic to shellfish.
- It acts on your behalf. Your anniversary is in 3 weeks? Menami already booked a table at the impossible-to-get restaurant that matches both your taste profiles.
- It gets better every meal. Every rating, every feedback, every "I tried that place and loved it" makes the next recommendation sharper.
- It works everywhere. Use it from Claude, from the terminal, from your own app, or just text it on WhatsApp.
Menami covers San Francisco, New York City, and Mexico City with 3,000+ restaurants in the knowledge graph.
Quick Start
| I want to... | Use this |
|---|---|
| Use Menami inside Claude Desktop or another AI agent | MCP Server |
| Use Menami from the terminal | CLI |
| Build an app on top of Menami | REST API |
For AI Agents (MCP)
Menami implements the Model Context Protocol so AI assistants like Claude can call it as a tool.
1. Authenticate
npx @menami/mcp-server connect
This opens a browser OAuth flow and saves credentials to ~/.menami/config.json.
2. Add to Claude Desktop
Edit your Claude Desktop config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"menami": {
"command": "npx",
"args": ["@menami/mcp-server"]
}
}
}
Restart Claude Desktop. You'll see Menami tools in the tool panel.
3. Try it
"Find me a good sushi place for a date night in San Francisco. Budget is $80-120 per person."
Claude will call menami_consult_agent and return personalized recommendations from your taste profile.
Available Tools
| Tool | Description |
|---|---|
menami_consult_agent |
Personalized restaurant recommendations based on taste, location, and occasion |
menami_book_table |
Check availability and book a table |
menami_place_order |
Place a delivery or pickup order |
menami_submit_feedback |
Rate a dining experience — improves future recommendations |
menami_get_taste_profile |
View your taste profile (cuisines, dietary, price range, favorites) |
menami_get_restaurant |
Get restaurant details (menu, hours, reviews, location) |
menami_manage_occasions |
Manage birthdays, anniversaries, and trips for proactive suggestions |
Full schema reference: docs/tools.md
For Developers (CLI)
npx @menami/cli login
Commands
# Get personalized recommendations
menami recommend "best ramen for a cold night"
menami recommend --cuisine japanese --occasion date_night
menami recommend # interactive mode
# Search the knowledge graph
menami search --city "San Francisco" --cuisine italian
menami search --city "Mexico City" --query "tacos de guisado"
# Get restaurant details
menami restaurant <id>
menami restaurant <id> --json
# View your taste profile
menami profile
menami profile --format full
# Set up your taste profile (interactive wizard)
menami onboard
# Rate a dining experience
menami feedback <restaurant-id> --rating 4 --text "Amazing tonkotsu, but noisy"
# Book a table
menami book <restaurant-id> --date 2026-04-15 --time 19:30 --party 2
# Manage occasions
menami occasions add birthday
menami occasions add anniversary
Global Flags
| Flag | Description |
|---|---|
--json |
Output raw JSON |
--help |
Show help for any command |
--version |
Show version |
For Apps (API)
Base URL: https://api.getmenami.com
All endpoints require a Bearer token. See Authentication.
Recommendations
curl -X POST https://api.getmenami.com/v2/recommendations \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "date night Italian restaurant"}'
Search Restaurants
curl "https://api.getmenami.com/v2/restaurants/search?city=sf&cuisine=japanese" \
-H "Authorization: Bearer $TOKEN"
Book a Table
curl -X POST https://api.getmenami.com/v2/bookings \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"restaurantId": "rst_abc123",
"datetime": "2026-04-15T19:30:00",
"partySize": 2,
"guest": {"name": "Alice", "email": "alice@example.com"}
}'
Submit Feedback
curl -X POST https://api.getmenami.com/v2/feedback \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"restaurantId": "rst_abc123", "overallRating": 5, "feedbackText": "Perfect omakase"}'
Get Taste Profile
curl https://api.getmenami.com/v2/profile \
-H "Authorization: Bearer $TOKEN"
Full endpoint reference: docs/api-reference.md
Authentication
Menami uses OAuth 2.0 with PKCE — no client secrets needed. Safe for CLIs, native apps, and AI agents.
1. Generate code_verifier + code_challenge (SHA-256)
2. Open browser → /oauth/authorize?code_challenge=...
3. User authenticates
4. Receive auth code at localhost callback
5. Exchange code + verifier for access_token + refresh_token
6. Use Bearer token for all API calls
7. Refresh when expired via POST /v2/auth/refresh
Tokens are stored at ~/.menami/config.json.
Full details: docs/authentication.md
Configuration
| Variable | Default | Description |
|---|---|---|
MENAMI_API_URL |
https://api.getmenami.com |
Override API base URL |
Repository Structure
menami/
├── packages/
│ ├── mcp-server/ # @menami/mcp-server — for AI agents
│ │ └── src/
│ │ ├── cli.ts # npx entry point (connect + MCP stdio server)
│ │ ├── tools.ts # 7 MCP tool definitions with JSON Schema
│ │ ├── types.ts # TypeScript interfaces
│ │ └── auth.ts # OAuth PKCE flow
│ └── cli/ # menami — terminal CLI
│ └── src/
│ ├── index.ts # Commander.js (9 commands)
│ ├── commands/ # One file per command
│ ├── client.ts # HTTP client with auto token refresh
│ └── config.ts # ~/.menami/config.json persistence
├── docs/
│ ├── api-reference.md # Full REST API docs
│ ├── authentication.md # OAuth PKCE details
│ └── tools.md # MCP tool schemas
└── assets/
└── logo.svg
Contributing
- Fork the repo
- Create a feature branch:
git checkout -b feat/my-feature - Make your changes and add tests
- Run tests:
npm test - Open a pull request
Bug reports and feature requests: GitHub Issues
License
MIT — see LICENSE.
<p align="center"> Built by the Menami team. <a href="https://getmenami.com">getmenami.com</a> </p>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.