kharkiv-metro-rp
Kharkiv Subway Route Planner (WIP!) (mostly vibecoded)
Install / Use
claude mcp add beauloxe -- npx -y github:beauloxe/kharkiv-metro-rpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of kharkiv-metro-rp
kharkiv-metro-rp scores 70/100 on our quality scale, 492nd of 1,283 Development & Engineering skills we index (top 39%).
Its MCP Server is 11 KB long, well organised into 49 sections with 9 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 7 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 81/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
kharkiv-metro-rp compared with similar skills
All 4 of these similar skills score higher than kharkiv-metro-rp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| kharkiv-metro-rp (this skill)by beauloxe | 70 | 3 | 7mo ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 85.0k | 8d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.6k | today | CLAUDE.md |
| rufloby ruvnet | 100 | 73.1k | today | CLAUDE.md |
| career-opsby career-ops-hq | 100 | 72.5k | today | CLAUDE.md |
Frequently asked questions
- How do I install kharkiv-metro-rp?
- Run
claude mcp add beauloxe -- npx -y github:beauloxe/kharkiv-metro-rp. The install tabs above show the steps for each supported agent. - Which AI agents does kharkiv-metro-rp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is kharkiv-metro-rp safe to use?
- It is MIT-licensed and scores 81/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is kharkiv-metro-rp still maintained?
- The repository was last updated about 7 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubKharkiv Metro Route Planner
Telegram-бот, CLI та MCP-сервер для планування маршрутів у Харківському метрополітені.
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/route_demo.gif"> <source media="(prefers-color-scheme: light)" srcset="assets/route_demo_light.gif"> <img alt="Full and simple CLI output with compact option" src="assets/route_demo.gif"> </picture>Особливості
Харківський метрополітен
- 3 лінії метро: Холодногірсько-заводська, Салтівська, Олексіївська
- 3 пересадки: Майдан Конституції ↔ Історичний музей, Спортивна ↔ Метробудівників, Університет ↔ Держпром
- Розклад: Окремий для буднів та вихідних
Функціонал
-
Local-first: Локальна БД, працює офлайн
-
Час пересадки: 3 хвилини
-
Мови: Українська та англійська
-
<details>
<summary> <b>Альтернативні назви</b>: Старі та скорочені назви станцій </summary>
- Героїв праці: Салтівська
- Проспект Гагаріна: Левада
- Пушкінська: Ярослава Мудрого
- 23: 23 Серпня
- Барабашова: Академіка Барабашова
- Бекетова: Архітектора Бекетова
- Ботсад: Ботанічний сад
- Гагаріна: Левада
- Масельського: Ім. О.С. Масельського
- Павлова: Академіка Павлова
- Палац: Палац спорту
- ХТЗ: Тракторний завод
Пакунки
Проєкт організовано як монорепозиторій з окремими пакунками для різних інтерфейсів. Всі пакунки вимагають Python >= 3.11.
kharkiv-metro-core
Ядро системи — бібліотека з базовою логікою.
Відповідальність:
- Моделі даних (станції, лінії, маршрути)
- Граф метрополітену та алгоритми пошуку шляху
- Робота з базою даних SQLite
- Парсинг розкладу з metro.kharkiv.ua
- Конфігурація XDG
Залежності: beautifulsoup4, requests, toml, tzdata
kharkiv-metro-cli
Консольний інтерфейс для планування маршрутів у терміналі.
Особливості:
- Кольоровий вивід таблиць через Rich
- JSON та табличні формати виводу
- Конфігурація через TOML
Залежності: click, rich, kharkiv-metro-core
Команда: metro
kharkiv-metro-bot
Telegram-бот з інтерактивним інтерфейсом.
Особливості:
- Інтерактивний вибір станцій через кнопки
- Нагадування про вихід на потрібній станції
- Підтримка української та англійської мов (TODO)
Залежності: aiogram, python-dotenv, kharkiv-metro-core
Команда: metro-bot
kharkiv-metro-mcp
MCP-сервер для інтеграції з AI-асистентами (OpenCode, Claude Desktop тощо).
Доступні інструменти:
get_route— пошук маршрутуget_schedule— розклад станціїlist_stations— список станційfind_station— пошук станції за назвою
Залежності: mcp, kharkiv-metro-core
Команда: metro-mcp
Запуск та ініціалізація бази даних
Проєкт використовує uv, наступні команди виконуються через uv run metro.
Ініціалізація
metro scrape --init-db
Розклади парсяться з https://www.metro.kharkiv.ua/ і зберігаються окремо для буднів та вихідних.
Консольний інтерфейс (CLI)
# За замовчуванням - з поточного часу
metro route "Холодна гора" "Студентська"
# З конкретним часом
metro route "Холодна гора" "Студентська" --time "08:30"
# З виведенням у JSON
metro route "Холодна гора" "Студентська" --output json
# Англійською мовою
metro route "Kholodna Hora" "Studentska" --lang en
# Компактний вивід (тільки ключові станції: початок, пересадки, кінець)
metro route "Холодна гора" "Студентська" --compact
# Повний вивід (всі станції) - якщо в конфігу compact=true
metro config set preferences.route.compact true
metro route "Холодна гора" "Студентська" --compact
Перегляд розкладу
# Розклад станції
metro schedule "Майдан Конституції"
# З конкретним напрямком
metro schedule "Майдан Конституції" --direction "Індустріальна"
# У вихідні
metro schedule "Майдан Конституції" --day-type weekend
Список станцій
# Всі станції
metro stations
# Тільки одна лінія
metro stations --line saltivska
# Або коротше
metro stations -l s # "k", "o"
Конфігурація
Конфіг зберігається в XDG директоріях:
- Linux:
~/.config/kharkiv-metro-rp/config.toml - macOS:
~/Library/Application Support/kharkiv-metro-rp/config.toml - Windows:
%APPDATA%\kharkiv-metro-rp\config.toml
База даних:
- Linux:
~/.local/share/kharkiv-metro-rp/metro.db - macOS:
~/Library/Application Support/kharkiv-metro-rp/metro.db - Windows:
%LOCALAPPDATA%\kharkiv-metro-rp\metro.db
База аналітики (для збереження між редеплоями використовуйте ANALYTICS_DB_PATH):
- Linux:
~/.local/share/kharkiv-metro-rp/analytics.db - macOS:
~/Library/Application Support/kharkiv-metro-rp/analytics.db - Windows:
%LOCALAPPDATA%\kharkiv-metro-rp\analytics.db
config.toml - повна специфікація
[database] - налаштування бази даних
| Опція | Тип | За замовчуванням | Опис |
|-------|-----|------------------|------|
| auto | boolean | true | true - використовувати XDG директорію, false - використовувати path |
| path | string | null | Абсолютний шлях до бази даних (використовується якщо auto = false). Підтримує ~ (домашня директорія) |
[preferences] - загальні налаштування
| Опція | Тип | За замовчуванням | Можливі значення | Опис |
|-------|-----|------------------|------------------|------|
| language | string | "ua" | "ua", "en" | Мова станцій за замовчуванням |
| output_format | string | "table" | "table", "json" | Формат виводу за замовчуванням для stations та schedule команд |
[preferences.route] - налаштування маршрутів
| Опція | Тип | За замовчуванням | Можливі значення | Опис |
|-------|-----|------------------|------------------|------|
| format | string | "full" | "full", "simple", "json" | Формат виводу маршруту: full=детальна таблиця, simple=компактний inline, json=JSON |
| compact | boolean | false | true, false | true - показувати тільки ключові станції (початок, пересадки, кінець), false - всі станції. Працює з форматами full та simple |
[scraper] - налаштування парсера сайту
| Опція | Тип | За замовчуванням | Опис |
|-------|-----|------------------|------|
| timeout | integer | 30 | Таймаут HTTP запитів в секундах |
| user_agent | string | "kharkiv-metro-rp/1.0" | User-Agent для HTTP запитів |
Повний приклад config.toml
[database]
auto = false
path = "~/Documents/kharkiv_metro.db"
[preferences]
language = "ua"
output_format = "table"
[preferences.route]
format = "full"
compact = false
[scraper]
timeout = 30
user_agent = "kharkiv-metro-rp/1.0"
Команди управління конфігом
- Команда
metro config setпрацює для будь-якої опції з config.toml за шаблономsection.key value. Тип значення визначається автоматично (string, boolean, integer). - Команда
metro config openвідкриває конфіг у системному редакторі:- Linux: використовує
xdg-openабо$EDITOR(fallback: nano) - macOS: використовує
open - Windows: використовує
start
- Linux: використовує
# Кастомна база даних
metro --db-path /tmp/test.db route "Холодна гора" "Студентська"
# Кастомний конфіг
metro --config ./my-config.toml route "Холодна гора" "Студентська"
Змінні оточення
| Змінна | Опис | Приклад |
|--------|------|---------|
| DB_PATH | Шлях до основної бази даних метро | /app/data/metro.db |
| ANALYTICS_DB_PATH | Шлях до бази аналітики (для persistent зберігання між редеплоями) | /app/data/analytics.db |
| BOT_TOKEN | Токен Telegram бота | 123456:ABC-DEF... |
| TZ | Часовий пояс | Europe/Kyiv |
Telegram-бот
Інтерактивний Telegram бот для пошуку маршрутів з нагадуваннями про станції.
Запуск бота
# Встановіть змінні оточення
export BOT_TOKEN="your_bot_token_here"
export DB_PATH="/path/to/metro.db" # Опціонально, за замовчуванням XDG
export ANALYTICS_DB_PATH="/path/to/analytics.db" # Опціонально, для persistent зберігання
export TZ="Europe/Kyiv" # Опціонально, часовий пояс
# Запуск
uv run python -m kharkiv_metro_rp.bot.main
Команди бота
/start— Початок роботи та головне меню
/about— Інформація про бота
Функціонал
Пошук маршруту:
- Інтерактивний вибір лінії та станції відправлення/призначення
- Вибір часу відправлення: зараз, +-10/20 хв, або власний час
- Вибір типу дня: будній/вихідний
- Розрахунок часу прибуття з урахуванням розкладу
Нагадування:
- Можливість створити нагадування перед виходом на потрібній станції
- Автоматична пропозиція нагадувань для довгих ліній (2+ станцій)
Розгортання на Railway
Бот підтримує розгортання на Railway. Необхідні змінні оточення:
BOT_TOKEN— токен бота від @BotFatherDB_PATH— шлях до бази даних (наприклад,/app/data/metro.db)TZ— часовий пояс (Europe/Kyiv)ANALYTICS_DB_PATH— шлях до бази аналітики (для persistent зберігання, наприклад,/app/data/analytics.db)
MCP Server
Запуск MCP сервера для інтеграції з AI-агентами:
OpenCode
Передбачає:
- Наявність
uvу$PATH - Локальний репозиторій
git clone https://github.com/beauloxe/kharkiv-metro-rp.git /foo/bar/, де/foo/bar/- приклад директорії.
"mcp": {
"metro-kh": {
"enabled": true,
"type": "local",
"command": [
"uv", "run",
"--directory", "/foo/bar/kharkiv-metro-rp",
"python", "-m", "kharkiv_metro_rp.mcp.server"
],
}
}
Доступні інструменти
get_route- пошук маршруту між станціямиget_schedule- отримання розкладу станціїlist_stations- список всіх станційfind_station- пошук станції за назвою
Структура проєкту
metropoliten/
├── src/metropoliten/
│ ├── core/ # Ядро системи
│ │ ├── models.py # Моделі даних
│ │ ├── graph.py # Граф метро
│ │ └── router.py # Алгоритми маршрутизації
│ ├── data/ # Робота з даними
│ │ ├── database.py # SQLite база
│ │ ├── scraper.py # Парсер сайту metro.kharkiv.ua
│ │ └── initializer.py # Ініціалізація бази
│ ├── cli/ # CLI інтерфейс
│ │ └── main.py # Команди
│ ├── mcp/ # MCP сервер
│ │ └── server.py # Сервер
│ └── config.py # XDG конфігурація
└── data/
└── metro.db # База даних (legacy, тепер в XDG)
TODO
- [x] Правильна транслітерація та назви станцій
- [x] Доопрацювати парсер
- [x] Переклад усіх полів
- [ ] Уніфікація виводу, аргументів
- [ ] ~~Переписати весь цей ШІ слоп~~ Зробити повний рефактор
Дисклеймер
<a name="disclaimer"></a> Цей проєкт не пов'язаний з КП «Харківський метрополітен» і не надає жодних гарантій. Користуючись цим проєктом, Ви несете відповідальність за належне планування маршрутів.
Для повної інформації ознайомтесь з умовами ліцензії MIT.
Related Skills
Agent-Reach
85.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.1k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
career-ops
72.5kOpen-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
