Kong/for-five-mcp
If you are the rightful owner of for-five-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
For Five Coffee MCP Server provides access to menu data via MCP and REST API.
For Five Coffee MCP Server
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.
Quick Start
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
MCP Client Setup
Claude Desktop
Add to claude_desktop_config.json
:
{
"mcpServers": {
"for-five-coffee": {
"command": "node",
"args": ["/path/to/for-five-mcp/server.js"]
}
}
}
Cursor
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.
Usage Examples
Ask Your AI Assistant
- "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"
Use the HTTP API
# 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
In Your Code
// 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()
Available Endpoints
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 |
MCP Tools
get_full_menu
- Get complete menusearch_menu_items
- Search by queryget_menu_categories
- List categoriesget_items_by_category
- Filter by category
Development
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
Troubleshooting
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)
License
Apache 2.0