MCP 문서 관리

메뉴

Apache IoTDB MCP 서버

Apache IoTDB MCP 서버

Apache IoTDB MCP 서버는 Apache IoTDB 시계열 데이터베이스와 그 관련 도구들을 위한 Model Context Protocol(MCP) 서버 구현체입니다. 이 서버를 통해 LLM(대규모 언어 모델)은На IoT 기기에서 생성된 시계열 데이터를 효율적으로 쿼리하고 분석할 수 있습니다.

주요 기능

  • IoTDB 데이터베이스 연결: Apache IoTDB 시계열 데이터베이스에 연결하여 데이터 쿼리
  • 시계열 데이터 쿼리: 시간 범위, 장치, 측정값 등을 기준으로 데이터 조회
  • 메타데이터 관리: 저장 그룹, 장치, 측정 항목 등의 메타데이터 관리
  • 통계 및 분석: 시계열 데이터에 대한 집계, 통계, 추세 분석 수행
  • 시각화 지원: 시계열 데이터 시각화를 위한 도구 지원

제공 도구

Apache IoTDB MCP 서버는 다음과 같은 도구를 제공합니다:

데이터베이스 관리 도구

  • connect: IoTDB 데이터베이스에 연결
  • disconnect: IoTDB 데이터베이스 연결 해제
  • show_version: IoTDB 서버 버전 정보 조회
  • show_cluster: IoTDB 클러스터 정보 조회

메타데이터 도구

  • show_storage_groups: 모든 저장 그룹 조회
  • show_devices: 등록된 모든 장치 조회
  • count_devices: 등록된 장치 수 계산
  • show_timeseries: 등록된 시계열 조회
  • count_timeseries: 등록된 시계열 수 계산
  • show_measurements: 특정 장치의 측정 항목 조회

데이터 쿼리 도구

  • execute_query: IoTSQL 쿼리 실행
  • fetch_latest_data: 장치의 최근 데이터 조회
  • fetch_time_range: 특정 시간 범위의 데이터 조회
  • count_points: 시계열 데이터 포인트 수 계산

데이터 분석 도구

  • calculate_statistics: 시계열 데이터의 통계 메트릭 계산 (평균, 최소, 최대, 합계 등)
  • detect_anomalies: 기본적인 이상치 탐지 수행
  • analyze_trends: 시계열 데이터의 추세 분석

설정 방법

Claude Desktop에 추가하기

Claude Desktop의 claude_desktop_config.json 파일에 다음 JSON 블록을 추가합니다:

{
  "mcpServers": {
    "apache-iotdb-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@apache/iotdb-mcp-server"
      ],
      "env": {
        "IOTDB_HOST": "localhost",
        "IOTDB_PORT": "6667",
        "IOTDB_USERNAME": "root",
        "IOTDB_PASSWORD": "root",
        "IOTDB_FETCH_SIZE": "10000",
        "IOTDB_ZONE_ID": "UTC+8"
      }
    }
  }
}

환경 변수 설정

Apache IoTDB MCP 서버는 다음과 같은 환경 변수를 통해 구성됩니다:

필수 변수

  • IOTDB_HOST: IoTDB 서버 호스트 주소 (기본값: localhost)
  • IOTDB_PORT: IoTDB 서버 포트 (기본값: 6667)
  • IOTDB_USERNAME: IoTDB 데이터베이스 접속 사용자 이름 (기본값: root)
  • IOTDB_PASSWORD: IoTDB 데이터베이스 접속 비밀번호 (기본값: root)

선택적 변수

  • IOTDB_FETCH_SIZE: 쿼리 결과 가져오기 크기 (기본값: 10000)
  • IOTDB_ZONE_ID: 타임존 ID (기본값: UTC+8)
  • IOTDB_TIMEOUT: 쿼리 타임아웃(ms) (기본값: 0, 무제한)
  • IOTDB_THRIFT_MAX_FRAME_SIZE: Thrift 최대 프레임 크기 (기본값: 67108864)

사용 사례

  • 산업용 IoT 모니터링: 공장 및 제조 설비의 센서 데이터 분석
  • 스마트 시티: 도시 인프라의 IoT 센서 데이터 관리 및 분석
  • 환경 모니터링: 환경 센서 네트워크의 데이터 조회 및 분석
  • 에너지 관리: 스마트 그리드 및 에너지 장치의 데이터 모니터링
  • 자산 추적: IoT 기반 자산 추적 및 상태 모니터링
  • 건강 모니터링: 웨어러블 기기의 건강 데이터 분석

시계열 데이터 모델

Apache IoTDB는 계층적 시계열 데이터 모델을 사용합니다:

  1. 저장 그룹(Storage Group): 데이터 저장의 기본 단위, 유사한 데이터 세트를 함께 관리
  2. 장치(Device): 센서 또는 IoT 장치를 나타내는 논리적 엔티티
  3. 측정 항목(Measurement): 장치에서 수집하는 특정 측정값(온도, 습도 등)
  4. 시계열(Time Series): 각 측정 항목에 대한 시간별 데이터 포인트 모음

쿼리 예시

기본 쿼리

SELECT temperature, humidity
FROM root.ln.wf01.wt01
WHERE time >= 2023-01-01T00:00:00 AND time <= 2023-01-31T23:59:59

집계 함수 사용

SELECT AVG(temperature), MAX(temperature), MIN(temperature)
FROM root.ln.wf01.wt01
WHERE time >= 2023-01-01T00:00:00 AND time <= 2023-01-31T23:59:59
GROUP BY ([2023-01-01T00:00:00, 2023-01-31T23:59:59), 1d)

다운샘플링

SELECT DOWNSAMPLE(temperature, 1h, AVG)
FROM root.ln.wf01.wt01
WHERE time >= 2023-01-01T00:00:00 AND time <= 2023-01-31T23:59:59

보안 고려사항

  • IoTDB 데이터베이스 접속 정보는 기밀 정보로 취급하고 안전하게 관리해야 합니다.
  • 가능한 경우 읽기 전용 권한만 가진 사용자 계정을 사용하세요.
  • 대용량 데이터셋을 쿼리할 때는 적절한 시간 필터와 LIMIT 절을 사용하여 서버 부하를 관리하세요.
  • 민감한 IoT 데이터에 접근할 때는 데이터 프라이버시와 규정 준수를 고려하세요.

성능 최적화 팁

  • 저장 그룹은 워크로드 특성에 따라 적절하게 구성하세요.
  • 시간 필터를 항상 사용하여 쿼리 범위를 제한하세요.
  • 대용량 데이터셋에는 다운샘플링을 적용하여 처리 시간을 단축하세요.
  • 장기 분석에는 미리 계산된 집계 값을 활용하세요.
  • IoTDB 클러스터링을 사용하여 대규모 IoT 데이터를 효율적으로 관리하세요.

라이센스

이 서버는 Apache 2.0 라이센스에 따라 라이센스가 부여됩니다.

관련 링크