MCP server for Foursquare Swarm check-in data
Project description
Swarm MCP Server
An MCP (Model Context Protocol) server that provides access to your Foursquare Swarm check-in data. Use it with Claude Desktop, Claude Code, or any MCP-compatible client to analyze your check-in history.
Features
| Tool | Description |
|---|---|
get_checkins |
Get paginated check-in history |
get_checkins_by_date_range |
Get check-ins within a specific date range |
get_recent_checkins |
Get check-ins from the past X days |
get_checkin_details |
Get details about a specific check-in |
get_all_checkins |
Retrieve your entire check-in history |
get_checkin_stats |
Get statistics (total count, date range, averages) |
search_checkins |
Search check-ins by venue name or category |
get_server_info |
Get server metadata, data sources, and tool costs |
All responses include a _meta block with transparency info (completeness, API calls made, data scope) to help AI models make informed decisions about expensive operations.
Tool Costs
| Tool | Cost | Notes |
|---|---|---|
get_checkins |
Low | Single paginated request |
get_checkins_by_date_range |
Low | Single request with date filters |
get_recent_checkins |
Low | Single request with time filter |
get_checkin_details |
Low | Single check-in lookup |
get_checkin_stats |
Low | 2 API calls (newest + oldest) |
get_server_info |
None | Local introspection only |
get_all_checkins |
High | 1 API call per 250 check-ins |
search_checkins |
High | Client-side filtering; scans up to 5000 items |
Example _meta Response
Every tool response includes metadata like this:
{
"_meta": {
"is_complete": true,
"returned_count": 50,
"total_available": 1847,
"limit_applied": 50,
"api_calls_made": 1,
"data_source": "foursquare_swarm_api",
"data_scope": "authenticated_user_checkins"
},
"checkins": [...]
}
Installation
Using uvx (recommended)
uvx swarm-mcp
Using pip
pip install swarm-mcp
Setup
1. Get Your Foursquare Access Token
You'll need a Foursquare OAuth2 access token:
- Go to Foursquare Developer Apps
- Create a new app (or use an existing one)
- Note your Client ID and Client Secret
- Generate an access token using the OAuth2 flow, or use the API Explorer to get a token quickly
Security: Treat
FOURSQUARE_TOKENlike a password—don't commit it, paste it in issues, or share screenshots with it visible.
2. Configure Your MCP Client
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"swarm": {
"command": "uvx",
"args": ["swarm-mcp"],
"env": {
"FOURSQUARE_TOKEN": "your-access-token-here"
}
}
}
}
Claude Code
claude mcp add swarm uvx swarm-mcp -e FOURSQUARE_TOKEN=your-access-token-here
Or add manually to your config:
{
"Swarm": {
"command": "uvx",
"args": ["swarm-mcp"],
"env": {
"FOURSQUARE_TOKEN": "your-access-token-here"
}
}
}
Usage Examples
Once configured, you can ask Claude things like:
- "Show me my recent Swarm check-ins"
- "How many times have I checked into coffee shops this year?"
- "What's my most visited venue?"
- "Show me all my check-ins in New York"
- "What are my check-in stats?"
- "Search my check-ins for 'airport'"
Example Output
📊 SWARM CHECK-IN STATS
=============================================
Total check-ins: 12,456
Years active: 10.2 years
Days active: 3,726
Avg check-ins/day: 3.34
📅 First check-in: March 15, 2014 at Coffee Shop (NYC)
📍 Most recent: Today at Office (San Francisco)
Development
# Clone the repo
git clone https://github.com/alexpriest/swarm-mcp.git
cd swarm-mcp
# Install in development mode
pip install -e .
# Run the server
FOURSQUARE_TOKEN=your-token swarm-mcp
API Reference
This server uses the Foursquare API v2:
License
MIT License - see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarm_mcp-0.2.1.tar.gz.
File metadata
- Download URL: swarm_mcp-0.2.1.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee705e038ea772a50151377c1763cb3c360ed7d5e040a1f87ba73db820751468
|
|
| MD5 |
6edbdc04463d7be824421fafa0590b1a
|
|
| BLAKE2b-256 |
f1b65aca25f05590b812f81ba3267acd33999883636a7dea416af697cbee09d0
|
Provenance
The following attestation bundles were made for swarm_mcp-0.2.1.tar.gz:
Publisher:
publish.yml on alexpriest/swarm-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
swarm_mcp-0.2.1.tar.gz -
Subject digest:
ee705e038ea772a50151377c1763cb3c360ed7d5e040a1f87ba73db820751468 - Sigstore transparency entry: 775714122
- Sigstore integration time:
-
Permalink:
alexpriest/swarm-mcp@0d8ac0b3e0c29f61b1de8a2f998a9538d9882c54 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/alexpriest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0d8ac0b3e0c29f61b1de8a2f998a9538d9882c54 -
Trigger Event:
release
-
Statement type:
File details
Details for the file swarm_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: swarm_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbdd46ed5eeb6b4fc4ffd288a2b244c31bcb2705a02fd1a37713b761bdfe949b
|
|
| MD5 |
441a1c407e24dad90591594ebc11329b
|
|
| BLAKE2b-256 |
f6bdf9372c9e592845de09026736b1635f7da062aeae07ce71a952d59a8fdc80
|
Provenance
The following attestation bundles were made for swarm_mcp-0.2.1-py3-none-any.whl:
Publisher:
publish.yml on alexpriest/swarm-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
swarm_mcp-0.2.1-py3-none-any.whl -
Subject digest:
fbdd46ed5eeb6b4fc4ffd288a2b244c31bcb2705a02fd1a37713b761bdfe949b - Sigstore transparency entry: 775714123
- Sigstore integration time:
-
Permalink:
alexpriest/swarm-mcp@0d8ac0b3e0c29f61b1de8a2f998a9538d9882c54 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/alexpriest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0d8ac0b3e0c29f61b1de8a2f998a9538d9882c54 -
Trigger Event:
release
-
Statement type: