Playtomic: padel/tennis/futsal court search via MCP (full + public connectors + 15 SEO guides)#246
Merged
Merged
Conversation
…rt search Two complementary adapters for Playtomic's reverse-engineered API: - playtomic-public (authType=NONE, 4 tools) — search clubs, get tenant details, read court availability with prices, and sport configuration. Zero setup; ideal for AI agents that just need to find courts. - playtomic (authType=LOGIN_TOKEN, 13 tools) — full account access including profile, level, lifetime stats, top clubs, open matches, match recommendations, tournaments, and leagues. Email + password login against /api/v3/auth/login with proactive JWT refresh and 401 retry. Both join availability rows to court metadata via resource_id, use the tenant's local timezone for naive ISO bounds, and rely on Playtomic's user_id=me / player_user_id=me shortcuts so callers never need numeric IDs. Adds a new "sports" category to the Adapter Store filter chips. Verified empirically: the three read endpoints (tenants list, tenant detail, availability) return identical bytes with and without a Bearer token on a standard account — the public variant is fully functional for court discovery; only member discounts and personal data require login.
15 MDX guides for the new Playtomic connectors, covering all three supported locales and all four AI clients (Claude, ChatGPT, Copilot, OpenClaw), plus a cross-client hub page per locale. SEO-targeted at the queries real padel players actually search for — "search/find available padel courts on Playtomic with [client]" — not "MCP connector for Playtomic". Titles, descriptions, keyword frontmatter and body content all carry the phrase pattern in the respective language (EN: "search available padel courts on Playtomic with Claude", IT: "cercare campi da padel disponibili su Playtomic con Claude", DE: "verfügbare Padelplätze auf Playtomic mit Claude suchen"). Each per-client guide covers both the public (NONE auth, 4 tools, zero setup) and full (LOGIN_TOKEN, 13 tools) connectors in a single article with a comparison table at the top, so the same canonical URL ranks for both variants instead of cannibalising itself. Hub page (find-padel-courts-with-ai) is the pillar SEO entry that captures generic queries and routes readers to the right client guide.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Playtomic to the Adapter Store as two complementary connectors and ships a complete SEO guide pack for organic acquisition.
playtomic-public(authType: NONE, 4 tools) — search clubs, get tenant detail, read court availability with prices, sport configuration. Zero credentials; works for anyone.playtomic(authType: LOGIN_TOKEN, 13 tools) — everything in public, plus profile, level, lifetime stats, top clubs, open matches, match recommendations, tournaments, leagues. Email + password → JWT (~1 h), proactively refreshed and retried on 401.sportscategory in the Adapter Store filter.Why two connectors
Verified empirically against
app.playtomic.iothat the three read endpoints (/api/v1/tenants,/api/v1/tenants/{id},/api/v1/availability) return byte-identical payloads with and without a Bearer token on a standard account. The "public" variant is therefore fully functional for court discovery — only member-specific pricing and personal data require login. Splitting into two adapters lets us:SEO strategy
Guides follow the user's content rule: title, description, keyword frontmatter and body all carry the phrase pattern users actually search for, in the respective language:
Each per-client guide covers both connectors in one canonical article (with a comparison table up top) so we don't cannibalise the ranking between
connect-playtomic-to-claudeand a hypotheticalconnect-playtomic-public-to-claude. The cross-client hub page (find-padel-courts-with-ai.mdx, per locale) captures generic AI-padel queries and routes readers to the right client.Engine usage notes
POST /api/v3/auth/login:tokenJsonPath: access_token,expiryJsonPath: access_token_expiration,expiryFormat: iso8601. No bcrypt salt fetch needed (unlike Sorare).user_id=me/player_user_id=meshortcuts — callers never need to provide a numeric user ID.user_id=meso member discounts apply; the public variant omits it for generic pricing.Test plan
/api/v1/tenants,/api/v1/tenants/{id},/api/v1/availability(saved in.context/playtomic/)playtomic.live.spec.ts+playtomic-public.live.spec.ts— 9/9 tests passtsc --noEmitclean (afterprisma generate)tsc --noEmitclean (newsportscategory inCATEGORY_LABELS)scripts/regenerate-catalog.mjs— 173 adapters across 7 regionsplaytomic_search_tenants+playtomic_get_availabilityfrom a real MCP client (reviewer to run)