IPSC Scoreboard

Analyze IPSC competition data and results from Shoot-n-Score-It to track shooter performance.

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноМожет изменять данные

Что умеет

  • Search Events: Search for IPSC competitions by name, country, date range, or level. Use this to find a specific match the user has named, or to browse upcoming/recent events. Each result contains `id`
  • Get Match: Fetch full details for a specific IPSC match. Returns the complete competitor list — each entry has a numeric `id`, `name`, `club`, and `division`. Also returns a `squads` list where each s
  • Compare Competitors: Run a deep stage-by-stage comparison for 1–12 competitors in a match. Returns scores, hit factors, penalties, efficiency %, consistency, time-vs-accuracy breakdown, what-if rank s

Какие данные видит

Нужен ли аккаунт

Не нужен: сервер работает без входа

Analyze IPSC competition data and results from Shoot-n-Score-It to track shooter performance. Compare competitors stage-by-stage using detailed metrics like hit factors, time-vs-accuracy breakdowns, and efficiency percentages. Search for upcoming matches or retrieve popular event details to stay updated on competitive practical shooting.

Как подключить

Как подключить IPSC Scoreboard к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://ssi-scoreboard--mandakan.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить IPSC Scoreboard к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://ssi-scoreboard--mandakan.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить IPSC Scoreboard к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://ssi-scoreboard--mandakan.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (7)

Технические названия из tools/list. Нужны только разработчикам.

search_eventsSearch for IPSC competitions by name, country, date range, or level. Use this to find a specific match the user has named, or to browse upcoming/recent events. Each result contains `id` and `content_type` fields — pass both to get_match to load full details. When searching by name (query param), past events are included automatically — no date filter needed. When browsing without a query, only events within ~3 months of today are returned by default; pass explicit starts_after/starts_before to widen the window. `min_level` defaults to l2plus which hides small club matches; pass 'all' only if the user explicitly wants club-level events.
get_matchFetch full details for a specific IPSC match. Returns the complete competitor list — each entry has a numeric `id`, `name`, `club`, and `division`. Also returns a `squads` list where each squad has a `name` (e.g. 'Squad 3') and a `competitorIds` array of every competitor in that squad. Use this to resolve any user reference to a competitor ID before calling compare_competitors: match by `name` for named individuals, filter by `club` for club members, or use `squads[n].competitorIds` for an entire squad. Always call this before compare_competitors. `ct` and `id` come from a search_events result (the `content_type` and `id` fields of the event). Each stage in `stages[]` includes `procedure` (free-text stage instructions), `firearm_condition` (loading requirements such as 'Unloaded'), `course_display` ('Short'/'Medium'/'Long'), `min_rounds`, `paper_targets`, and `steel_targets`. When `scoring_completed` is 0 (pre-match), use these fields for preparation analysis: compute the round-robin stage rotation for a squad, parse constraint signals from text, and summarise the course breakdown.
compare_competitorsRun a deep stage-by-stage comparison for 1–12 competitors in a match. Returns scores, hit factors, penalties, efficiency %, consistency, time-vs-accuracy breakdown, what-if rank simulations, and performance fingerprints. Pass a single competitor ID to analyse one shooter in isolation. Pass multiple IDs to compare them head-to-head across every stage. `competitor_ids` are numeric IDs from get_match's competitor list — always resolve names to IDs via get_match first. IMPORTANT — ranking across competitors: NEVER rank by raw points. Points are not comparable across divisions (Production vs Classic Minor vs Standard Minor etc.) or across stages (each stage has different max_points). Use `overall_rank` (rank across all competitors regardless of division) and the average of per-stage `overall_percent` to rank cross-division. Use `div_rank` for within-division ranking. Use `penaltyStats[id].matchPctActual` for group-relative average match %. Results are suitable for natural-language coaching feedback, identifying where points were lost, and ranking analysis.
get_stage_timesExport raw stage times for a list of competitors at a match — built for video editors who want to auto-cut a long match recording into per-stage clips. Returns one object per competitor with a stages[] array; each entry has stage_number, stage_name, time_seconds (raw stage time), and scorecard_updated_at (ISO timestamp of when the run was recorded). Stages within each competitor are sorted by stage_number. Competitors are returned in the order of `competitor_ids`. competitor_ids are numeric IDs from get_match — resolve names with get_match first.
get_popular_matchesList recently-viewed IPSC matches from the cache. Call this first whenever the user hasn't specified a match — it surfaces currently-active or recently-popular events so you can ask which one they mean, or proceed with the most relevant one. If the user asks a vague question like 'how did I do?' or 'what matches are on?', start here. Returns [] when the cache is cold (no recent visitors); fall back to search_events in that case.
get_shooter_dashboardFetch a shooter's cross-competition profile and career statistics. Returns: profile (name, club, division), match history (up to 50 recent matches with per-match stats), aggregate stats (overall match %, average hit factor, A-zone %, consistency CV, HF trend slope), and achievement progress (tiered milestones). Use this to answer questions about a shooter's performance across multiple matches, their consistency over time, or how their accuracy has been trending. The `shooter_id` is the globally stable SSI ShooterNode ID — obtain it from `get_match`'s `competitors[n].shooterId` field (an integer, distinct from the per-match `competitors[n].id`). Returns 404 if the shooter has not been seen in any cached match on this server. Each match in `matches[]` includes `ct` and `matchId` so you can call `get_match` or `compare_competitors` to drill into a specific competition.
find_shooterSearch for shooter profiles by name. Returns a list of matching shooters with their shooter_id — pass that ID to get_shooter_dashboard to load their full career history. Only shooters who have appeared in at least one cached match on this server are searchable. Pass an empty query to browse the most recently active shooters. Use this when you know a shooter's name but not their shooter_id, as an alternative to browsing get_match competitor lists.