swarm-mcp
An MCP server over a Foursquare Swarm check-in history, back to the first check-in.
Status
Shipped — the oldest project on the list, first committed December 2025.
License
MIT
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_venue_details |
Get venue info: ratings, hours, tips, photos |
get_all_checkins |
Retrieve your entire check-in history |
get_checkin_stats |
Get statistics (total count, date range, averages) |
get_categories |
List all unique categories in your history with counts |
get_top_venues |
Get your most visited venues with filters |
search_checkins |
Search with filters: query, category, city, state, country, date range |
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_venue_details |
Low | Single venue lookup |
get_checkin_stats |
Low | 2 API calls (newest + oldest) |
get_categories |
High | Scans history to discover unique categories |
get_top_venues |
High | Scans history to aggregate venue visits |
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 are my top 10 most visited coffee shops?"
- "Show me all my check-ins in California"
- "What are my check-in stats?"
- "Get details about [venue name]" (ratings, hours, tips)
- "What are the ratings for my favorite restaurants?"
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.
Metadata
Release files for swarm-mcp 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| swarm_mcp-0.5.1.tar.gz | 12.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swarm_mcp-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.3 kB
Release files / swarm_mcp-0.5.1.tar.gz
| Download URL | swarm_mcp-0.5.1.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d1936cbafb0105571cc3663e06af2b401836aed9ff099a2986c5da7e59f9f938
|
|
BLAKE2b-256 checksum How to use checksums |
d8f0b98238d2c25b4680f343a6f7f23d1b1ac7a6c63b3a54a2433e190a9e17e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / swarm_mcp-0.5.1-py3-none-any.whl
| Download URL | swarm_mcp-0.5.1-py3-none-any.whl |
|---|---|
| Size | 13.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31f33a29172971cea14e73d2aff1e5e368da9716ac8ffbc921459fd38cd44ce6
|
|
BLAKE2b-256 checksum How to use checksums |
25c620995127f29a0ac1d2f0784e17f10d8dfb0cda7aaa1afb7eee01283ce965
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Security for swarm-mcp 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.