Foursquare MCP Server
Foursquare MCP Server
An MCP server that exposes Foursquare/Swarm checkin data and user activity through 13 tools. Built with FastMCP, it supports stdio and HTTP transports.
Features
User management — register multiple Foursquare accounts by OAuth token
Checkins — fetch checkin history with date filtering and pagination, or get full detail for a single checkin
Venue details — look up any venue by ID
Venue history — unique venues visited with visit counts and timestamps
Mayorships — current venues where a user is mayor
Lists — saved, created, and followed lists with full venue details
Tastes — user food/experience preferences
Cross-user search — query checkins across all registered users at once
Requirements
Python 3.11+
uv (recommended) or pip
Setup
1. Install
cd foursquare_mcp
uv syncOr with pip:
pip install -e .2. Get a Foursquare OAuth Token
Option A — Interactive OAuth flow:
Create a .env file with your Foursquare app credentials (see .env.example):
FOURSQUARE_CLIENT_ID=your_client_id
FOURSQUARE_CLIENT_SECRET=your_client_secretThen run the setup command:
foursquare-mcp setup --username aliceThis opens a browser-based OAuth flow and saves the token automatically.
Option B — Manual token:
If you already have an OAuth token:
foursquare-mcp add-user --username alice --token YOUR_OAUTH_TOKENTokens are stored in ~/.config/foursquare-mcp/users.json.
3. Run the Server
stdio (default, for local MCP clients):
foursquare-mcp serveHTTP (for remote or shared access):
foursquare-mcp serve --transport streamable-http --host 0.0.0.0 --port 8006MCP Client Configuration
Add to your MCP client config (e.g. .mcp.json):
stdio:
{
"mcpServers": {
"foursquare": {
"command": "foursquare-mcp",
"args": ["serve"]
}
}
}Streamable HTTP:
{
"mcpServers": {
"foursquare": {
"type": "streamable-http",
"url": "http://localhost:8006/mcp"
}
}
}Tools
User Management
Tool | Description |
| List all registered Foursquare usernames |
| Register a user's OAuth token |
| Remove a registered user |
| Get a user's Foursquare profile |
Checkins
Tool | Description |
| Get checkins with optional date range and limit |
| Get full detail for a single checkin (comments, photos, overlaps) |
| Search checkins across all registered users |
Venues
Tool | Description |
| Get full venue info by venue ID |
| Get unique venues visited with visit counts and timestamps |
Social
Tool | Description |
| Get venues where the user is currently mayor |
| Get all lists (saved, created, followed) |
| Get full list detail with all venue items |
| Get taste preferences (food types, experiences) |
CLI Commands
foursquare-mcp serve Start the MCP server
foursquare-mcp setup Authenticate via OAuth and save token
foursquare-mcp add-user Register a token manually
foursquare-mcp remove-user Remove a registered user
foursquare-mcp list-users List registered usersRun foursquare-mcp --help for full option details.
Running as a systemd Service
# ~/.config/systemd/user/foursquare-mcp.service
[Unit]
Description=Foursquare MCP Server
[Service]
WorkingDirectory=/path/to/foursquare_mcp
ExecStart=/path/to/uv run foursquare-mcp serve --transport streamable-http --host 0.0.0.0 --port 8006
Restart=on-failure
[Install]
WantedBy=default.targetsystemctl --user daemon-reload
systemctl --user enable --now foursquare-mcp