К основному содержанию
скилл CX Codex

metadata — скилл для Claude Code: логотипы команд и фото игроков

Тянет логотипы клубов, фото игроков и данные о стадионах через бесплатный API TheSportsDB. Пригодится, когда ответ нужно дополнить картинкой или визуальным идентификатором.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add machina-sports/sports-skills --skill metadata -a claude-code
Открыть на GitHub

Что делает metadata

Скилл оборачивает бесплатный API TheSportsDB и даёт пять команд: get_team_logo, get_team_info, get_player_photo, search_teams, search_players. Ключ не нужен, настройка тоже. Покрытие — больше 100 футбольных лиг, NFL, NBA, MLB, NHL, F1, крикет, а из индивидуальных видов теннис и гольф. MMA, регби, бокс и киберспорт не входят.

Есть подводные камни. У get_team_logo параметр sport по умолчанию равен "Soccer", поэтому для баскетбола или хоккея его нужно передавать явно, иначе поиск уйдёт в ближайшее совпадение по имени в любом виде спорта. Для NBA нужны полные официальные названия: "Los Angeles Lakers", а не "Lakers". Если результат не близок к запросу, команда вернёт ошибку со списком того, что предлагает TheSportsDB.

Бесплатный ключ отвечает HTTP 429 с 31-го запроса в минуту и блокирует доступ примерно на две минуты. Клиент сам держит темп ниже — всплески по 5 запросов, дальше примерно один запрос каждые 2.4 с. Так что ошибка 429 означает длинную пакетную выборку, а не разовый сбой. Стадионные данные лежат внутри get_team_info, отдельной команды для них нет.

Какие задачи решает

  • прикрепить логотип к таблице standings
  • найти фото игрока по имени
  • собрать страницу клуба со стадионом и описанием
  • разобраться, о какой команде речь при неполном названии
  • добавить бейдж и баннер к ответу другого скилла

Примеры запросов агенту

  • покажи логотип «Los Angeles Lakers», спорт — баскетбол
  • найди фото Месси
  • что за команды есть по запросу «Manchester»

Как установить metadata

1Через Skills CLI (Vercel)

npx skills add machina-sports/sports-skills --skill metadata -a claude-code

2Вручную: положить файлы

~/.claude/skills/metadata/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/metadata/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о metadata

Как установить metadata в Claude?

Выполните npx skills add machina-sports/sports-skills --skill metadata -a claude-code. Файл скилла окажется по пути ~/.claude/skills/metadata/SKILL.md.

Что делает metadata?

Возвращает URL логотипов и баннеров команд, фото игроков, данные о стадионе и клубе, а также ищет команды и игроков по частичному имени. Работает поверх бесплатного API TheSportsDB без ключа.

Почему get_team_logo выдаёт не ту команду?

Короткое или неоднозначное имя могло совпасть с командой из другого вида спорта. Передайте параметр sport явно и используйте полное официальное название клуба.

Исходный текст

SKILL.md · MIT
---
name: metadata
description: |
  Sports metadata via TheSportsDB free API (key=3). Team logos and badges, player photos, stadium info, league info, and biographical data across 100+ leagues. No API key required, zero config.

  Use when: user asks for a team logo, crest, badge, banner, jersey, kit, player photo or headshot, stadium info, club description, or wants to search for teams or players by name across sports. Good for enriching responses from other skills with images and visual identifiers.
  Don't use when: user asks for scores, standings, fixtures, stats, or odds — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), fastf1 (F1), volleyball-data (Dutch volleyball), xctf-data (NCAA XC/TF). Don't use for prediction markets — use polymarket or kalshi.
license: MIT
metadata:
  author: machina-sports
  version: "0.1.0"
---

# Sports Metadata

Wraps the free [TheSportsDB](https://www.thesportsdb.com) API for team logos, player photos, and stadium info. No API key, no signup.

## Quick Start

```bash
sports-skills metadata get_team_logo --team_name="Arsenal"
sports-skills metadata get_team_info --team_name="Real Madrid"
sports-skills metadata get_player_photo --player_name="Messi"
sports-skills metadata search_teams --query="Manchester"
sports-skills metadata search_players --query="LeBron"
```

Python SDK:

```python
from sports_skills import metadata

metadata.get_team_logo(team_name="Arsenal")
metadata.get_team_info(team_name="Real Madrid")
metadata.get_player_photo(player_name="Messi")
metadata.search_teams(query="Manchester")
metadata.search_players(query="LeBron")
```

## CRITICAL: Before Any Query

CRITICAL: Before calling any metadata command, verify:
- Team names use the **full official name** — especially for NBA (e.g., `"Los Angeles Lakers"`, **not** `"Lakers"`).
- For `get_team_logo`, the `sport` parameter defaults to `"Soccer"`. Pass `sport="Basketball"`, `"American Football"`, `"Baseball"`, `"Ice Hockey"`, `"Motorsport"`, or `"Cricket"` when the team is not a soccer team — otherwise the lookup falls back to a close name match in any sport. If no result is close to the requested name, it returns an error listing what TheSportsDB offered.
- Player searches use just the player name (e.g., `"Messi"`, `"LeBron James"`, `"Tiger Woods"`).

## Coverage

**Teams (logos, banners, stadium info):**
- Soccer: 100+ leagues worldwide (Premier League, La Liga, Bundesliga, Serie A, MLS, and many more)
- NFL (American Football)
- NBA (Basketball) — requires full team names
- MLB (Baseball)
- NHL (Ice Hockey)
- F1 (Motorsport)
- Cricket (IPL, international)

**Players (photos, bios):**
- All team sports above
- Tennis (ATP/WTA players)
- Golf (PGA/LPGA players)

**Not covered:** MMA/UFC, Rugby, Esports, Boxing.

## Commands

| Command | Required | Optional | Description |
|---|---|---|---|
| `get_team_logo` | team_name | sport | Team logo / badge URL |
| `get_team_info` | team_name | | Full team info: stadium, description, social links, banner |
| `get_player_photo` | player_name | | Player photo URL |
| `search_teams` | query | | Fuzzy search for teams across sports |
| `search_players` | query | | Fuzzy search for players across sports |

## Workflows

### Enrich a Standings Response

1. Call the sport-specific skill (e.g., `football get_season_standings`) for the standings table.
2. For each team in the standings, call `get_team_logo --team_name=<name>` to attach a badge URL.
3. Render the standings with logos alongside team names.

### Build a Team Profile Page

1. Call `get_team_info --team_name="<name>"` for stadium, description, founding year, social links.
2. The same response includes `badge` and `banner` URLs — no second call needed.

### Resolve an Ambiguous Team Name

1. Call `search_teams --query="<partial-name>"` to disambiguate.
2. Use the exact `name` field from the result for follow-up `get_team_info` calls.

## Examples

Example 1: Get a Premier League team logo
User says: "What does the Arsenal logo look like?"
Actions:
1. Call `get_team_logo(team_name="Arsenal")` — `sport` defaults to "Soccer", which is correct here.
Result: Logo URL, sport, league, and country.

Example 2: NBA team — full name required
User says: "Get the Lakers logo"
Actions:
1. Call `get_team_logo(team_name="Los Angeles Lakers", sport="Basketball")` — both the full name AND the sport filter are needed.
Result: Lakers badge from the NBA branch of TheSportsDB.

Example 3: Player photo
User says: "Show me a photo of Messi"
Actions:
1. Call `get_player_photo(player_name="Messi")`.
Result: Player photo URL, sport, team, and nationality.

Example 4: Disambiguate "Manchester"
User says: "Find me Manchester teams"
Actions:
1. Call `search_teams(query="Manchester")`.
Result: List of teams matching "Manchester" — Manchester United, Manchester City, etc. — each with sport, league, and country.

## Commands that DO NOT exist — never call these

- ~~`get_stadium_info`~~ — does not exist. Stadium info is included in `get_team_info`.
- ~~`get_league_logo`~~ — does not exist. Use `get_team_logo` for team badges only.
- ~~`get_player_stats`~~ — does not exist on this skill. TheSportsDB metadata does not include stats; use the sport-specific skill (e.g., `football get_player_profile`, `nba get_player_stats`).
- ~~`search_leagues`~~ — does not exist.

If a command is not listed in the Commands table above, it does not exist.

## Troubleshooting

Error: `get_team_logo` returns the wrong team
Cause: A short or ambiguous team name (e.g., "Lakers", "Arsenal") matched a different sport first
Solution: Pass an explicit `sport` parameter and use the team's full official name

Error: `get_team_logo` / `get_team_info` say "No team named ... found"
Cause: TheSportsDB's free search returned only teams whose names are not close to the query (e.g. "St. Louis Cardinals" -> "Louisville")
Solution: Use the team's full official name, or `search_teams --query=<partial>` to find it

Error: `get_player_photo` returns null / empty
Cause: Player not in TheSportsDB, or the name spelling differs (e.g., "Cristiano Ronaldo" vs "Ronaldo")
Solution: Use `search_players --query=<partial>` first to find the canonical spelling, then retry

Error: Logo URL works but the image is low resolution
Cause: TheSportsDB returns the badge as-is from contributors
Solution: This is an upstream limitation. Most badges are 200×200 or larger; very small icons indicate a low-quality submission. No workaround.

Error: "TheSportsDB rate limit: the free API key allows 30 requests per minute" (`status_code: 429`)
Cause: The free key answers HTTP 429 from the 31st request in a minute, then locks out for about 2 minutes. The client paces itself below that (bursts of 5, then about one request every 2.4 s), so this error means a long batch outran the pacing or another process shares the key
Solution: Wait for the time in the message, then retry. Repeated lookups are cached for 5 minutes, so reuse earlier results rather than re-querying in a loop

© machina-sports · MIT · machina-sports/sports-skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
fixing-metadata ibelick Проверяет и приводит в порядок метаданные страниц: заголовки, описания, canonical, Open Graph, карточки Twitter, иконки и JSON-LD. CX Codex +1 18 200установок platform-metadata-retrieve forcedotcom Скилл тянет метаданные из org в локальный проект через sf project retrieve start: все изменения, каталог, тип, манифест или пакет. CX Codex +1 6 600установок experience-ui-bundle-metadata-generate forcedotcom Добавляет React- или Angular-бандл в уже существующий SFDX-проект и настраивает его метаданные. Пригодится, когда нужен второй UI-бандл или правка ui-bundle.json. CX Codex +1 5 300установок secrets-in-file-metadata UseOSINT Достаёт EXIF, XMP, IPTC и свойства Office и PDF через exiftool: GPS, серийник камеры, авторы, даты. Пригодится, когда надо понять, откуда файл и кто его правил. CX Codex +1 1 800установок remove-ai-marks guillaumemeyer Убирает невидимый Unicode, водяные знаки в тексте и метаданные C2PA из файлов. Сам скилл не чистит: зовёт отдельный сервис через curl. CX Codex +1 892установок asc-metadata-sync rorkai Скилл для CLI asc: тянет метаданные App Store Connect в локальные JSON, проверяет их и заливает назад. Пригодится при правке локализаций, ключевых слов и ассетов. CX Codex +1 7 800установок

Из того же набора22

cbb-data Скилл вытаскивает счёта, таблицы, ростеры и сетку March Madness из публичных эндпоинтов ESPN и NCAA. Ключи не нужны. CX Codex +1 670установок world-cup Скилл находит данные по матчам чемпионатов мира и связывает агента с каталогом Machina ZeroClick. Пригодится для получения турнирной статистики, прогнозов и готовых отчётов. CX Codex +1 667установок wnba-data Скилл открывает доступ к статистике WNBA через эндпоинты ESPN без API-ключей. Пригодится, чтобы узнавать счёт матчей, составы и показатели игроков прямо в чате. CX Codex +1 665установок volleyball-data Тянет таблицы, расписания, результаты, клубы и новости Dutch volleyball через открытый API Nevobo. Без ключей и настройки. CX Codex +1 578установок xctf-data Тянет профили атлетов NCAA из TFRRS: личные рекорды, год допуска, школа и результаты по сезонам. Плюс новости The Stride Report. CX Codex +1 490установок fastf1 Загружает телеметрию, результаты гонок, тайминг кругов и стратегию шин Формулы-1 через библиотеку FastF1. Пригодится для анализа заездов и статистики пилотов прямо в чате. CX Codex +1 480установок machina Подключает агента к платному контуру Machina Sports: живые коэффициенты, потоки телеметрии и готовые шаблоны спортивных ботов. CX Codex +1 429установок cricket-data Скилл отдаёт текущий счёт матчей, новости серий и историческую статистику крикета без API-ключей. Пригодится для разбора игр IPL, BBL или международных туров. CX Codex +1 406установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой