for-five-mcp

Kong/for-five-mcp

3.2

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.

Tools
4
Resources
0
Prompts
0

CI License Node.js Version

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

EndpointDescription
GET /Server info
GET /healthHealth check
GET /api/menuFull menu
GET /api/menu/search?q={query}Search items
GET /api/menu/categoriesAll categories
GET /api/menu/category/{name}Items by category
POST /mcpMCP JSON-RPC 2.0 endpoint

MCP Tools

  • get_full_menu - Get complete menu
  • search_menu_items - Search by query
  • get_menu_categories - List categories
  • get_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