Skip to main content
Glama

Сервер ARIM MCP

MCP-сервер (stdio) для прямого запроса измеренных данных, статистики, калибровки и отчётов системы мониторинга Arim Air прямо из Claude.

Только для чтения. Функции, изменяющие состояние сервера (публикация отчётов, применение калибровки, команды устройствам, обратное заполнение, регистрация/удаление аварий), не включены.

Установка

Требуется Node.js 18 или новее.

macOS / Linux

cd /Users/amdmania/Project/arimair-mcp
npm install
npm run build
./setup-arim-mcp.sh     # Claude Code + Claude Desktop 자동 등록

Windows

Поместите репозиторий в нужное место (например, C:\Users\<пользователь>\arimair-mcp) и запустите из этой папки. Скрипт установки определяет пути относительно своего расположения, поэтому работает из любого места без изменений.

В PowerShell:

cd C:\Users\<사용자>\arimair-mcp
npm install
npm run build
powershell -ExecutionPolicy Bypass -File .\setup-arim-mcp.ps1

-ExecutionPolicy Bypass — это опция, разрешающая выполнение неподписанного скрипта только один раз. Она не меняет системную политику.

Что делает скрипт установки (общее)

Адрес сервера жёстко задан как рабочий сервер (https://monitor.arimair.com), поэтому он не запрашивается. Оба скрипта запрашивают только идентификатор, пароль и тип учётной записи, после чего регистрируют сервер в двух местах:

  • Claude Code CLI (claude mcp add arim -s user) — пропускается, если команда claude отсутствует

  • Файл конфигурации Claude Desktop — существующий файл сохраняется как .bak.<временная метка>, а уже зарегистрированные другие MCP-серверы сохраняются

ОС

Путь к конфигурации Claude Desktop

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

После регистрации необходимо полностью закрыть и снова открыть Claude Desktop, чтобы инструменты появились.

Ручная регистрация

# macOS / Linux
claude mcp add arim -s user -t stdio \
  -e ARIM_API_BASE_URL=https://monitor.arimair.com \
  -e ARIM_MCP_USER=<아이디> \
  -e ARIM_MCP_PASS=<비밀번호> \
  -- node /Users/amdmania/Project/arimair-mcp/build/index.js
# Windows (PowerShell) — 경로는 실제 설치 위치로
claude mcp add arim -s user -t stdio `
  -e "ARIM_API_BASE_URL=https://monitor.arimair.com" `
  -e "ARIM_MCP_USER=<아이디>" `
  -e "ARIM_MCP_PASS=<비밀번호>" `
  -- node C:\Users\<사용자>\arimair-mcp\build\index.js

Если пароль не был зарегистрирован, после подключения можно войти с помощью инструмента arim_login.

Переменные окружения

Переменная

Значение по умолчанию

Описание

ARIM_API_BASE_URL

https://monitor.arimair.com

Адрес целевого сервера. Скрипт установки регистрирует его с этим значением, поэтому обычно трогать не нужно; меняется только для тестирования с локальным сервером, например на http://localhost:9080

ARIM_MCP_USER

Идентификатор для автоматического входа

ARIM_MCP_PASS

Пароль для автоматического входа

ARIM_MCP_USER_TYPE

admin

admin или user

ARIM_API_TIMEOUT

20000

Таймаут запроса (мс)

Если учётные данные указаны в переменных окружения, при первом вызове инструмента выполняется автоматический вход, а при истечении сессии — один повторный вход и повторная попытка.

Способ аутентификации

Сервер ARIM не выдаёт JWT, а аутентифицирует через HttpSession + сессионный cookie (SESSION от Spring Session). MCP сохраняет cookie, полученный при вызове /account/login, и отправляет его с последующими запросами.

Ко всем запросам добавляется заголовок X-Mcp-Client: 1. Если этот заголовок присутствует, AuthorizeInterceptor сервера возвращает 401 JSON вместо перенаправления 302 на страницу входа, и MCP считает это истечением сессии и выполняет повторный вход.

Сайт

Запросы измерителей, измеренных данных, статистики и отчётов выполняются относительно текущего выбранного сайта. Внутри сервера это monitorId сессии (учётная запись администратора, являющегося объектом мониторинга), но в инструментах это обрабатывается как «сайт». Это то же самое, что комбинированный список выбора сайта в верхней части веб-экрана.

site_list                        → 선택 가능한 사이트와 현재 사이트
site_select { site: "울산 환경보건센터" }   → 사이트 변경

Для site_select достаточно указать часть названия сайта. Даже если порядок слов отличается от зарегистрированного имени (например, зарегистрированное имя — [환경보건센터] 울산 울산대), поиск найдёт сайт, если присутствуют все слова. Поиск выполняется по отображаемому имени (company), имени ответственного (name) и siteId.

  • Если кандидатов несколько, они не выбираются произвольно — возвращается список кандидатов (например, «환경보건센터» → 9 мест)

  • Точное имя имеет приоритет над частичным совпадением (например, «도로교통연구원» → arimsc_ex)

Учётная запись обычного пользователя видит только одобренных поставщиков, учётная запись администратора — весь список (те же правила, что и в веб-интерфейсе).

Список инструментов

Аутентификация

Инструмент

Описание

arim_login

Вход (можно использовать учётные данные из переменных окружения)

arim_whoami

Запрос статуса входа / monitorId / системных настроек

arim_logout

Завершение сессии

Сайт

Инструмент

Описание

site_list

Список доступных сайтов и текущий сайт

site_select

Изменение сайта для запросов

Измерители

Инструмент

Описание

device_list

Список измерителей

device_get

Детали измерителя

device_realtime

Последние значения всех измерителей (сырые)

device_realtime_correction

Последние значения всех измерителей (с калибровкой)

device_nearby_stations

Ближайшие станции AirKorea

Измеренные данные

Инструмент

Описание

data_search

Запрос за период (автоматическое переключение: сырые/часовые средние/суточные средние)

data_raw_search

Всегда запрос сырых данных с минутным интервалом

data_recent

Последние собранные данные

Статистика и погода

Инструмент

Описание

stat_daily_avg

Запрос средних данных

stat_collection_rate

Коэффициент сбора (доля пропусков) по измерителям × датам

stat_weather_stations

Список станций KMA

stat_weather

История наблюдений KMA (почасово/по дням)

sensor_list

Метаданные датчиков (единицы, число знаков после запятой)

Калибровка

Инструмент

Описание

correction_devices

Измерители, подлежащие калибровке, и статус применения

correction_trend

Динамика калибровочных факторов (за последние 12 месяцев)

correction_compare

Сравнение временных рядов до/после калибровки

correction_factors

Калибровочные факторы за конкретный месяц применения

correction_versions

История версий модели калибровки

Отчёты

Инструмент

Описание

report_list

История публикаций

report_get

Детали записи истории

report_months

Список месяцев, за которые выпускаются отчёты

report_v2_html

HTML-содержимое нового отчёта (V2)

Аварии

Инструмент

Описание

alarm_list

История возникновения аварий

alarm_config_list

Настройки SMS-уведомлений о порогах датчиков

Сводки мониторинга

Инструмент

Описание

monitor_device_state

Сводка по работе/состоянию связи

monitor_working_percent

Доля нормальной работы

monitor_data_count

Сводка по количеству собранных записей

monitor_fault_devices

Неисправные/аномальные измерители

monitor_search

Запрос базового периода мониторинга

monitor_rose / monitor_rose_search

Роза загрязнения

Обработка больших ответов

Инструменты запроса временных рядов принимают maxRows (по умолчанию 500). На сервере нет ограничения на количество строк, поэтому даже запрос сырых данных за один день даёт более 1 400 строк; при превышении выполняется равномерная выборка и в ответе возвращаются totalRows / returnedRows / sampled. Последняя (самая новая) строка всегда сохраняется.

Зависимости на стороне сервера

Этот MCP предполагает следующие изменения на сервере.

Расположение

Изменение

route/AuthorizeInterceptor.java

Возврат 401 JSON при заголовке X-Mcp-Client: 1

controller/AccountController.java

Добавление GET /account/me

controller/SettingController.java

Добавление GET /setting/sensorlist

Если /account/me и /setting/sensorlist отсутствуют, не работают только arim_whoami, sensor_list, alarm_config_list (при опущенном adminId), а остальные инструменты работают нормально. site_list тоже работает, но без /account/me невозможно запросить текущий сайт у сервера, поэтому в качестве текущего сайта отображается значение, выбранное через site_select в этой сессии.

Сама функциональность сайта использует только существующие API (/site/update/{id}, /admin/list, /datarequest/providerlist) без изменений на сервере.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • MCP server for AI access to Swagger by SmartBear.

  • Autopilot MCP server for GEO analyses, reports, content, audits, memories and agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arim-science/arimair-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server