Foursquare MCP Server
Exposes Foursquare/Swarm check-in data and user activity through 13 tools, enabling user management, check-in history, venue details, mayorships, lists, and cross-user search.
README
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 sync
Or 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_secret
Then run the setup command:
foursquare-mcp setup --username alice
This 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_TOKEN
Tokens are stored in ~/.config/foursquare-mcp/users.json.
3. Run the Server
stdio (default, for local MCP clients):
foursquare-mcp serve
HTTP (for remote or shared access):
foursquare-mcp serve --transport streamable-http --host 0.0.0.0 --port 8006
MCP 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_users |
List all registered Foursquare usernames |
add_user |
Register a user's OAuth token |
remove_user |
Remove a registered user |
get_user_details |
Get a user's Foursquare profile |
Checkins
| Tool | Description |
|---|---|
get_user_checkins |
Get checkins with optional date range and limit |
get_checkin_detail |
Get full detail for a single checkin (comments, photos, overlaps) |
search_all_users_checkins |
Search checkins across all registered users |
Venues
| Tool | Description |
|---|---|
get_venue_details |
Get full venue info by venue ID |
get_user_venue_history |
Get unique venues visited with visit counts and timestamps |
Social
| Tool | Description |
|---|---|
get_user_mayorships |
Get venues where the user is currently mayor |
get_user_lists |
Get all lists (saved, created, followed) |
get_list_detail |
Get full list detail with all venue items |
get_user_tastes |
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 users
Run 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.target
systemctl --user daemon-reload
systemctl --user enable --now foursquare-mcp
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.