California Restaurant Concierge
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., "@California Restaurant ConciergeFind a cozy Italian spot in San Francisco under $50 with 4.5+ stars"
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.
๐ฝ๏ธ California Restaurant Concierge
A chatbot that recommends California restaurants by cuisine, city, vibe or budget. An LLM agent answers questions by calling tools on a Model Context Protocol (MCP) server, so every recommendation comes from real data rather than the model's imagination. It runs entirely on your own machine with a local model through Ollama: no API keys, no cost.
How it works
flowchart LR
U[User] -->|question| UI[Gradio chat<br/>app.py]
UI --> AG[Tool-calling agent<br/>agent.py]
AG <-->|chat + tool calls| LLM[Local LLM<br/>Ollama ยท qwen2.5]
AG <-->|MCP over stdio| SV[MCP server<br/>server.py]
SV --> DB[(restaurants.json)]The agent starts the MCP server and discovers its tools at runtime.
The LLM decides which tools to call and with which arguments.
The agent runs those calls through MCP and feeds the results back, looping until the LLM can answer.
The chat shows which tools were used for each answer.
MCP server
Type | Name | Purpose |
Tool |
| Filter by any mix of cuisine, city or neighborhood, vibe, max price and min rating; results sorted by rating |
Tool |
| Full details for one place; tolerates partial and misspelled names |
Tool |
| Customer reviews plus their average score |
Resource |
| Cities, cuisines and vibes the dataset covers |
Dataset
data/restaurants.json holds fictional restaurants generated by scripts/generate_dataset.py. The script prompts a local model from seeds (city, neighborhood, cuisine, vibe), constrains its output to a JSON schema, and validates every record with Pydantic before saving. Regenerate or extend it by editing the seed list and running:
python scripts/generate_dataset.pyRelated MCP server: Dine-Discover-AI MCP Server
Getting started
You need: Python 3.10+ and Ollama. A GPU with ~6 GB of memory makes responses fast, but a CPU also works.
git clone https://github.com/abellucido/restaurant-concierge-mcp.git
cd restaurant-concierge-mcp
ollama pull qwen2.5:7b
python -m venv .venv && source .venv/bin/activate # or use conda
pip install -r requirements.txt
python src/concierge/app.pyOpen http://127.0.0.1:7860 and try one of the example questions.
Optional settings (model, Ollama host, public share link) are listed in .env.example; copy it to .env to change them. With less GPU memory, try OLLAMA_MODEL=qwen2.5:3b.
Tests
The MCP tools are tested in-memory against a small fixture dataset, with no LLM needed. GitHub Actions runs them on every push.
pytest -v testsProject structure
โโโ data/restaurants.json Generated restaurant dataset
โโโ scripts/generate_dataset.py Dataset generator (Ollama + JSON schema + Pydantic)
โโโ src/concierge/
โ โโโ server.py MCP server: tools and resource (FastMCP)
โ โโโ agent.py MCP client + tool-calling loop (LangChain + Ollama)
โ โโโ app.py Chat UI (Gradio)
โโโ tests/ Server tests and fixture dataTech stack
Python ยท Model Context Protocol (FastMCP) ยท LangChain ยท Ollama (Qwen 2.5) ยท Gradio ยท Pydantic ยท pytest ยท GitHub Actions
Background
Inspired by what I learned in the IBM RAG and Agentic AI Professional Certificate on Coursera. This repository is an independent implementation with its own code and dataset; it contains no course materials.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Restaurant menus, carts, reservations and owner drafts for AI agents (Thmenu MCP).
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Live Google Maps business search, review, and photo data for AI agents over MCP.
- geoOAuthco.thinair
Geocoding, routing, isochrones, traffic, weather, and place search for AI agents. 19 MCP tools.
Related MCP Servers
- FlicenseAqualityDmaintenanceMCP server for Palate Network โ query trust-weighted venue recommendations from an AI agent network. 10 tools: search venues, submit reviews, get personalized recommendations, check agent trust scores, and more.119 npm-
- FlicenseNot gradedqualityCmaintenanceEnables conversational exploration of California restaurant data, vibe-based recommendations, and access to structured restaurant details and reviews.-
- FlicenseNot gradedqualityDmaintenanceMCP server exposing restaurant tools including search by cuisine, price, rating, and open status, restaurant details, user preferences stored in Neon Postgres, and RAG knowledge search covering 50 mock restaurants across Scottsdale and Phoenix.-
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to manage restaurant reservations through typed MCP tools, including checking table availability, creating and canceling reservations, and listing the day's confirmed bookings.-