A Model Context Protocol (MCP) server that provides access to For Five Coffee menu data. Works with Claude Desktop, Cursor, and other MCP clients, plus provides a REST API.
git clone https://github.com/Kong/for-five-mcp.git
cd for-five-mcp
npm install
npm start
This starts both:
- MCP Server (stdio) - for AI assistants
- HTTP API (port 3000) - for web apps
Add to claude_desktop_config.json
:
{
"mcpServers": {
"for-five-coffee": {
"command": "node",
"args": ["/path/to/for-five-mcp/server.js"]
}
}
}
Option 1: Let Cursor start the server
Add to ~/.cursor/mcp.json
:
{
"mcpServers": {
"for-five-coffee": {
"command": "node",
"args": ["/path/to/for-five-mcp/server.js"],
"env": {
"PORT": "3000"
}
}
}
}
Option 2: Connect to already running server
If you're running npm start
separately, add this to ~/.cursor/mcp.json
:
{
"mcpServers": {
"for-five-coffee": {
"url": "http://localhost:3000/mcp",
"transport": "http"
}
}
}
This connects Cursor to the running MCP server via HTTP JSON-RPC 2.0 transport.
- "What coffee drinks does For Five Coffee have?"
- "Search for pastries on the menu"
- "What's the cheapest coffee option?"
- "Show me all tea varieties"
# Get full menu
curl http://localhost:3000/api/menu
# Search for items
curl "http://localhost:3000/api/menu/search?q=latte"
# Get categories
curl http://localhost:3000/api/menu/categories
// Fetch menu data
const response = await fetch('http://localhost:3000/api/menu');
const menu = await response.json();
// Search items
const search = await fetch('http://localhost:3000/api/menu/search?q=coffee');
const results = await search.json();
import requests
# Get menu
menu = requests.get('http://localhost:3000/api/menu').json()
# Search
results = requests.get('http://localhost:3000/api/menu/search',
params={'q': 'latte'}).json()
Endpoint | Description |
---|---|
GET / |
Server info |
GET /health |
Health check |
GET /api/menu |
Full menu |
GET /api/menu/search?q={query} |
Search items |
GET /api/menu/categories |
All categories |
GET /api/menu/category/{name} |
Items by category |
POST /mcp |
MCP JSON-RPC 2.0 endpoint |
get_full_menu
- Get complete menusearch_menu_items
- Search by queryget_menu_categories
- List categoriesget_items_by_category
- Filter by category
npm run dev # Start with auto-restart
npm test # Run all tests
npm run test:unit # Unit tests only
npm run test:http # HTTP API tests only
npm run test:mcp # MCP transport tests only
npm run test:integration # Integration tests only
npm run lint # Check code style
MCP not working?
- Check the absolute path to
server.js
in your config - Restart your MCP client after config changes
- Run
npm start
manually to test
HTTP API not responding?
- Make sure server is running:
npm start
- Check port 3000 isn't in use:
lsof -i :3000
- Test:
curl http://localhost:3000/health
No menu data?
- Check internet connection
- The server handles SSL issues automatically
- Website structure may have changed (fallbacks included)
Apache 2.0