Skip to main content
Glama

Ostrov public API

Official API of the Ostrov retreat center in Karelia, Russia: public information, current accommodation rates, calendars and preliminary quotes. Remote read-only MCP and a Python client are available. A quote never confirms availability or a booking.

Официальный интерфейс ретритного центра «Остров» в Карелии для внешних агентов и приложений: сведения, тарифы, события, предварительный расчёт, собственная смета и заявка.

API: https://ostrov.center/api/public/v1

Исходники: https://github.com/iia-arg/ostrov-public-api · Версия 0.2.0

Документация: https://ostrov.center/developers · OpenAPI 3.1 · Скилл · Первый сценарий · Доступ и ограничения

Чтение и расчёт доступны без ключа. Сервер считает по тем же правилам, что калькулятор сайта. Возможность заезда подтверждает центр: пустой календарь, смета и поданная заявка сами по себе не подтверждают бронь. Стоимость авторской программы уточняйте у организатора.

Скачать клиентский комплект ZIP.

Python без установки

Python 3.10 или новее, внешних runtime-зависимостей нет. Скачайте ZIP выше или получите исходники:

git clone https://github.com/iia-arg/ostrov-public-api.git
cd ostrov-public-api
git checkout v0.2.0

Из корня комплекта:

python3 examples/quote.py

Пример берёт актуальный демонстрационный план и рассчитывает его, ничего не сохраняет. Укажите свои даты и состав в плане перед реальным расчётом.

from ostrov_api import Client

api = Client()
catalog = api.get_catalog()
example = api.get_examples()['examples'][0]
result = api.calculate_quote(**example)
print(result)

Для установки в своё виртуальное окружение: python3 -m pip install .. Команда ostrov-mcp появится после установки. Сохранение требует явного запроса человека; методы перечислены в ostrov_api/client.py и OpenAPI. Client.open_session() сохраняет токен в client.token, но возвращает только несекретные метаданные. При первом сохранении клиент открывает сессию автоматически. Не печатайте client.token.

Related MCP server: EuroVDC MCP Server

Удалённый MCP — без установки Python

Адрес: https://ostrov.center/api/public/v1/mcp. Транспорт: Streamable HTTP, авторизация не требуется. В настройках MCP/коннекторов своего приложения добавьте этот URL и разрешите использование инструментов. Названия меню зависят от приложения; регистрация в каталоге не означает автоматического подключения.

Например, для Codex:

codex mcp add ostrov --url https://ostrov.center/api/public/v1/mcp

Для Claude Code:

claude mcp add --transport http ostrov https://ostrov.center/api/public/v1/mcp

В ChatGPT и Claude используйте добавление собственного удалённого MCP/коннектора, если оно доступно в вашем плане и разрешено администратором. Обычному текстовому чату без HTTP или подключаемых инструментов одной ссылки недостаточно.

Удалённое подключение предоставляет только get_center, get_catalog, get_objects, get_calendar, get_events, calculate_quote, suggest_group. Оно не принимает токены гостевых сессий, не сохраняет сметы, не отправляет заявки и не возвращает частные документы. Для сохранения по просьбе человека остаются HTTP-клиент и локальный stdio MCP ниже.

Сервер stateless: без MCP-Session-Id. JSON-RPC запросы отправляются POST; GET возвращает 405, серверных SSE-потоков нет. Поддерживаются версии 2025-06-18, 2025-11-25; после initialize передавайте согласованный MCP-Protocol-Version. Accept должен включать application/json, text/event-stream. Предел тела 65 536 байт; общий предел MCP — 300 запросов за 60 секунд на адрес, плюс ограничения REST для чтения/расчёта. При 429 следуйте Retry-After. В журнал попадают только имя инструмента и статус, без параметров плана.

Проверка подключения: прочитать каталог, рассчитать согласованные даты и состав, объяснить итог из серверного total. Не переносите услуги из примера как выбор пользователя. Наличие места требует подтверждения центра.

MCP по stdio

Пример конфигурации клиента, поддерживающего локальные stdio MCP-серверы:

{
  "mcpServers": {
    "ostrov": {
      "command": "python3",
      "args": ["/absolute/path/to/ostrov-public-api/tools/ostrov_mcp.py"]
    }
  }
}

Замените путь на фактический путь скачанного комплекта. При установленном Python-пакете можно использовать command: "ostrov-mcp" без args. Этот пример не универсален: формат и разрешение запуска локальных серверов зависят от приложения. Для облачных клиентов используйте удалённый MCP, описанный выше.

Поддерживаются версии протокола 2025-06-18 и 2025-11-25, initialize, ping, tools/list и tools/call. Вызовы инструмента без JSON-RPC id не выполняются. Инструменты чтения/расчёта не отправляют секрет. Сохранение и заявка требуют userConfirmed=true; заявка — также consent=true после согласия человека. Токен созданной сессии остаётся в памяти MCP-процесса; после перезапуска без сохранённого токена API-доступ к прежним документам не восстановится. Человеческие ссылки сохраняются. Существующий токен можно передать безопасным механизмом среды приложения в OSTROV_API_TOKEN.

OSTROV_API_BASE_URL меняет адрес API для локального теста. Не передавайте токен другому серверу. HTTP разрешён клиентом только для loopback; обычный доступ — HTTPS. Клиент не следует перенаправлениям и не повторяет запросы автоматически. Сетевой таймаут — 20 секунд.

Состав и проверка

Здесь только внешний контракт, инструкции, клиент, адаптер и их тесты. Backend и данные гостей не входят в комплект.

python3 -m unittest discover -s tests -v
python3 tools/generate_contract.py

Генератор обновляет OpenAPI и MCP input schemas из одного определения. Изменения тарифов не требуют обновления клиента — читайте /catalog при расчёте. Поле quote может получить новые поясняющие поля в рамках v1; проверяйте известные обязательные признаки, а не фиксированный набор всех ключей.

Версия комплекта: 0.2.0. Лицензия клиентского кода — MIT (текст LICENSE в скачанном комплекте). Это не лицензия на материалы, фотографии или персональные данные сайта. Об ошибке интеграции сообщите по публичным контактам /center, без токенов, частных ссылок и контактов гостей.

Available Tools

12 tools
calculate_quoteB
Read-onlyIdempotent
Inspect

Calculate without saving or contacting anyone. Check complete, warnings and availabilityStatus.

Inputs: kind (required), plan (required), catalogVersion.

edit_estimateA
DestructiveIdempotent
Inspect

Edit an owned draft after explicit user request; stale versions conflict.

Inputs: plan (required), estimateId (required), requestKey (required), userConfirmed (required), +2 more.

get_applicationB
Read-onlyIdempotent
Inspect

Read the actual state of the session-owned application.

Inputs: applicationId (required).

get_calendarC
Read-onlyIdempotent
Inspect

Confirmed public activity; empty dates do not mean availability.

Inputs: end (required), start (required).

get_catalogB
Read-onlyIdempotent
Inspect

Current tariff version, resources and rules. Do not cache prices as permanent knowledge.

Inputs: no named parameters.

get_centerC
Read-onlyIdempotent
Inspect

Public location and contact information.

Inputs: no named parameters.

get_estimateC
Read-onlyIdempotent
Inspect

Read only a document owned by this session.

Inputs: estimateId (required).

get_eventsC
Read-onlyIdempotent
Inspect

Public programs and labeled demo data; contact the organizer to ask about joining.

Inputs: no named parameters.

get_objectsB
Read-onlyIdempotent
Inspect

Current public resource descriptions and availability rules; no guarantee of open places.

Inputs: no named parameters.

save_estimateA
Idempotent
Inspect

Save after explicit user request. Group/biggroup require organizer and retreat title; resident requires guest name. Confidential human link returned.

Inputs: kind (required), plan (required), requestKey (required), userConfirmed (required), +1 more.

submit_applicationA
Idempotent
Inspect

Submit only after user confirmation and contact consent. This does not confirm a booking.

Inputs: consent (required), estimateId (required), requestKey (required), userConfirmed (required), +3 more.

suggest_groupB
Read-onlyIdempotent
Inspect

Suggest room/program selection for the ordinary group tariff; not an availability check.

Inputs: kind (required), plan (required), catalogVersion.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 12 tools

    Disambiguation4/5

    Most tools have clearly distinct resource+action targets, and the descriptions proactively disambiguate (e.g. calculate_quote 'without saving', suggest_group 'not an availability check'). The weakest boundary is the read cluster get_events / get_calendar / get_objects, which all describe public schedule/resource information and could be confused by an agent, as could calculate_quote vs suggest_group for advisory tasks.

    Naming Consistency5/5

    Every tool follows a strict verb_noun snake_case pattern (get_events, calculate_quote, save_estimate, submit_application). The estimate lifecycle uses a coherent get/save/edit triplet, making the convention highly predictable.

    Tool Count5/5

    12 tools sit comfortably in the well-scoped range, and each maps to a distinct stage of the workflow: discovery, quoting, estimate drafting, and application submission. No tool looks like filler or a duplicate alias.

    Completeness3/5

    The surface covers discovery, quoting, estimate CRUD (save/get/edit), and application submit/get, but there are notable gaps: no tool actually checks availability despite repeated disclaimers that other tools do not, and there is no cancel/withdraw or update path for a submitted application, nor a list/delete for estimates. Agents hitting these dead ends will have to fall back on contacting the organizer.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      Enables browsing EuroVDC's live hosting catalog, searching domains, receiving AI server recommendations, and performing agent-assisted checkout via remote HTTP or stdio.
      14
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables MCP clients to search availability, read services, resources, bookings and customers, and, when writes are enabled, reserve slots, create or cancel bookings, and add or update customers.
      10
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables MCP clients such as Claude and ChatGPT to read events, performances, seating, packages, visits, transactions, and organisation context from a ticketing channel, and, when writes are enabled, create and release reservations.
      10
      MIT