Skip to content

Playtomic: padel/tennis/futsal court search via MCP (full + public connectors + 15 SEO guides)#246

Merged
keysersoft merged 2 commits into
mainfrom
keysersoft/playtomic-connector
May 23, 2026
Merged

Playtomic: padel/tennis/futsal court search via MCP (full + public connectors + 15 SEO guides)#246
keysersoft merged 2 commits into
mainfrom
keysersoft/playtomic-connector

Conversation

@keysersoft
Copy link
Copy Markdown
Contributor

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.
  • New sports category in the Adapter Store filter.
  • 15 MDX guides (en/de/it × claude/chatgpt/copilot/openclaw + 1 hub per locale).

Why two connectors

Verified empirically against app.playtomic.io that 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:

  • offer a zero-setup on-ramp (huge for organic adoption — a user can install and ask questions in 30 s with no Playtomic account)
  • keep the full connector for daily-personal use where member rates and your own data matter

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:

  • 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 connectors in one canonical article (with a comparison table up top) so we don't cannibalise the ranking between connect-playtomic-to-claude and a hypothetical connect-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

  • LOGIN_TOKEN config maps 1:1 with Playtomic's POST /api/v3/auth/login: tokenJsonPath: access_token, expiryJsonPath: access_token_expiration, expiryFormat: iso8601. No bcrypt salt fetch needed (unlike Sorare).
  • All personal tools use Playtomic's user_id=me / player_user_id=me shortcuts — callers never need to provide a numeric user ID.
  • Availability tool in the full variant passes user_id=me so member discounts apply; the public variant omits it for generic pricing.

Test plan

  • Empirical verification of public vs auth response equivalence on /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 pass
  • Full backend test suite — 2940/2940 pass (164 suites)
  • tsc --noEmit clean (after prisma generate)
  • ESLint clean on new files
  • Frontend tsc --noEmit clean (new sports category in CATEGORY_LABELS)
  • Catalog regeneration via scripts/regenerate-catalog.mjs — 173 adapters across 7 regions
  • Manual smoke test of playtomic_search_tenants + playtomic_get_availability from a real MCP client (reviewer to run)
  • Visual review of Adapter Store card rendering with the new SVG (reviewer to run)

…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.
@keysersoft keysersoft merged commit fb6812c into main May 23, 2026
11 checks passed
@keysersoft keysersoft deleted the keysersoft/playtomic-connector branch May 23, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant