Wraps the LocalGym Agent API to give Claude read-only access to 18,000+ UK gyms and fitness centres. You get four tools: search by name or location, fetch structured details by slug, recommend gyms based on user intent and location, and compare multiple gyms side by side. Ships with courtesy rate limiting at 60 calls per minute and expects attribution back to localgym.uk URLs in public responses. Run it directly via npx or clone the repo and point your MCP client at the compiled binary. Built for local gym discovery workflows without exposing the private LocalGym codebase.
Read-only MCP server for searching, comparing, and recommending UK gyms using the public LocalGym Agent API.
LocalGym covers 18,000+ UK gyms and fitness centres. This MCP server gives AI assistants and agent workflows a small, attributable interface for local gym discovery without exposing the private LocalGym website codebase.
| Tool | Description |
|---|---|
search_gyms | Search UK gyms by name, keyword, location, or user intent. |
get_gym_details | Return structured details for a LocalGym gym slug. |
recommend_gyms | Recommend gyms for a user goal and location. |
compare_gyms | Compare several gyms by LocalGym slug. |
Run directly from npm:
npx -y localgym-mcp-server
Or clone and run locally:
git clone https://github.com/lo-nau/localgym-mcp-server.git
cd localgym-mcp-server
npm install
npm start
The server uses https://localgym.uk by default. To override it:
LOCALGYM_API_BASE=https://localgym.uk npx -y localgym-mcp-server
Recommended npm-based config:
{
"mcpServers": {
"localgym": {
"command": "npx",
"args": ["-y", "localgym-mcp-server"],
"env": {
"LOCALGYM_API_BASE": "https://localgym.uk"
}
}
}
}
Local clone config:
{
"mcpServers": {
"localgym": {
"command": "node",
"args": ["/absolute/path/to/localgym-mcp-server/bin/localgym-mcp-server.cjs"],
"env": {
"LOCALGYM_API_BASE": "https://localgym.uk"
}
}
}
}
mcp_servers:
localgym:
command: "npx"
args: ["-y", "localgym-mcp-server"]
env:
LOCALGYM_API_BASE: "https://localgym.uk"
If you cloned the repo locally instead, use:
mcp_servers:
localgym:
command: "node"
args: ["/absolute/path/to/localgym-mcp-server/bin/localgym-mcp-server.cjs"]
env:
LOCALGYM_API_BASE: "https://localgym.uk"
search_gyms{
"query": "personal training",
"location": "Manchester",
"limit": 5
}
get_gym_details{
"slug": "kent-sports-fitness"
}
recommend_gyms{
"intent": "beginner friendly gym with personal training",
"location": "Leeds",
"limit": 5
}
compare_gyms{
"slugs": [
"kent-sports-fitness",
"the-box-private-personal-training-studio"
]
}
npm test
You can also smoke-test tool discovery by sending MCP JSON-RPC frames over stdio from an MCP client.
V1 is free, read-only, and attribution-first. Please link back to returned localgym_url values when using LocalGym data in public answers.
The public LocalGym Agent API enforces server-side rate limits. This MCP wrapper also includes a local courtesy limiter, defaulting to 60 tool calls per 60 seconds per running MCP process. You can lower it with LOCALGYM_MCP_RATE_LIMIT_MAX or LOCALGYM_MCP_RATE_LIMIT_WINDOW_MS; high-volume/commercial use should be arranged first.
For high-volume, commercial, affiliate, or claimed-listing use, contact enquiries@localgym.uk.
MIT
LOCALGYM_API_BASEOptional LocalGym API base URL override; defaults to https://localgym.uk.
LOCALGYM_MCP_RATE_LIMIT_MAXOptional local MCP client-side rate limit per window; defaults to 60. The public API also enforces server-side limits.
LOCALGYM_MCP_RATE_LIMIT_WINDOW_MSOptional local MCP client-side rate limit window in milliseconds; defaults to 60000.
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent