Skip to main content
Glama

ARIM MCP Server

An MCP (stdio) server that lets Claude directly query measurement data, statistics, corrections, and reports from the Arim Air monitoring system.

Query-only. It does not include features that change server state (report publishing, applying corrections, device commands, backfill, alarm registration/deletion).

Installation

Node.js 18 or higher is required.

macOS / Linux

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

Windows

Place the repository in a location of your choice (e.g., C:\Users\<user>\arimair-mcp) and run it from that folder. The installation script resolves paths relative to its own location, so it works no matter where you put it.

In PowerShell:

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

-ExecutionPolicy Bypass is an option that allows running an unsigned script just this once. It does not change system policy.

What the installation script does (common)

The server address is fixed to the production server (https://monitor.arimair.com), so it is not prompted for. Both scripts only ask for the ID, password, and account type, then register in the two places below.

  • Claude Code CLI (claude mcp add arim -s user) — skipped if the claude command is not available

  • Claude Desktop configuration file — the existing file is backed up as .bak.<timestamp>, and other MCP servers already registered are preserved

OS

Claude Desktop configuration path

macOS

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

Windows

%APPDATA%\Claude\claude_desktop_config.json

After registration, you must fully quit and reopen Claude Desktop for the tools to appear.

Manual registration

# 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

If you did not register a password, you can log in with the arim_login tool after connecting.

Environment variables

Variable

Default value

Description

ARIM_API_BASE_URL

https://monitor.arimair.com

Target server address. The installation script registers it fixed to this value, so you normally do not need to touch it; only change it to http://localhost:9080 etc. when connecting to a local server for testing

ARIM_MCP_USER

Auto-login ID

ARIM_MCP_PASS

Auto-login password

ARIM_MCP_USER_TYPE

admin

admin or user

ARIM_API_TIMEOUT

20000

Request timeout (ms)

If credentials are set as environment variables, the server auto-logs in on the first tool call, and if the session expires, it re-logs in once and retries.

Authentication method

The ARIM server does not issue JWTs; it authenticates via HttpSession + session cookie (Spring Session's SESSION). The MCP stores the cookie received from the /account/login call and sends it with subsequent requests.

All requests include the X-Mcp-Client: 1 header. When this header is present, the server's AuthorizeInterceptor returns a 401 JSON instead of a 302 redirect to the login page, and the MCP treats this as session expiry and re-logs in.

Sites

Device, measurement data, statistics, and report queries are all based on the currently selected site. Internally, the server uses the session's monitorId (the monitoring target administrator account), but the tools treat it as a "site." This is the same as the site selection combo at the top of the web screen.

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

site_select accepts even a partial site name. Even if the words are in a different order than the registered name (e.g., the registered name is [환경보건센터] 울산 울산대), it will find it as long as all the words are present. It searches the display name (company), the contact person's name (name), and the siteId.

  • If there are multiple candidates, it does not pick one arbitrarily; it returns the candidate list (e.g., "환경보건센터" → 9 locations)

  • An exact name match takes precedence over partial matches (e.g., "도로교통연구원" → arimsc_ex)

General user accounts see only approved providers; admin accounts see the full list (same rule as the web screen).

Tool list

Authentication

Tool

Description

arim_login

Log in (can use environment variable credentials)

arim_whoami

Query login status / monitorId / system settings

arim_logout

End session

Sites

Tool

Description

site_list

List selectable sites and the current site

site_select

Change the query target site

Devices

Tool

Description

device_list

Device list

device_get

Device details

device_realtime

Latest values for all devices (raw)

device_realtime_correction

Latest values for all devices (corrected)

device_nearby_stations

Nearby Air Korea stations

Measurement data

Tool

Description

data_search

Period query (auto-switches between raw/hourly average/daily average by period)

data_raw_search

Always queries minute-level raw data

data_recent

Most recently collected data

Statistics & weather

Tool

Description

stat_daily_avg

Query average data

stat_collection_rate

Collection rate (missing rate) by device × date

stat_weather_stations

KMA station list

stat_weather

KMA observation history (hourly/daily)

sensor_list

Sensor metadata (unit, decimal places)

Corrections

Tool

Description

correction_devices

Devices subject to correction and application status

correction_trend

Correction factor trend (last 12 months)

correction_compare

Time series comparison before/after correction

correction_factors

Correction factors for a specific application month

correction_versions

Correction model version history

Reports

Tool

Description

report_list

Publication history

report_get

History details

report_months

List of target months for publication

report_v2_html

New report (V2) HTML body

Alarms

Tool

Description

alarm_list

Alarm occurrence history

alarm_config_list

Sensor threshold SMS notification settings

Monitoring aggregation

Tool

Description

monitor_device_state

Operation/communication status aggregation

monitor_working_percent

Normal operation rate

monitor_data_count

Collection count aggregation

monitor_fault_devices

Faulty/abnormal devices

monitor_search

Monitoring period query

monitor_rose / monitor_rose_search

Pollution rose

Large response handling

Time series query tools accept maxRows (default 500). The server has no row limit, so even a single day of minute-level queries can produce over 1,400 rows; when exceeded, the server performs uniform interval sampling and returns totalRows / returnedRows / sampled in the response. The last (most recent) row is always preserved.

Server-side dependencies

This MCP assumes the following server changes.

Location

Change

route/AuthorizeInterceptor.java

Return 401 JSON when X-Mcp-Client: 1 header is present

controller/AccountController.java

Add GET /account/me

controller/SettingController.java

Add GET /setting/sensorlist

If /account/me and /setting/sensorlist are missing, only arim_whoami, sensor_list, and alarm_config_list (when adminId is omitted) will not work; the other tools will work normally. site_list also works, but without /account/me it cannot ask the server for the current site, so it displays the value selected via site_select in this session as the current site.

The site feature itself uses only existing APIs (/site/update/{id}, /admin/list, /datarequest/providerlist) without any server modification.

-
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