본문으로 건너뛰기
버전: 0.68.0

MCP 세션 상태 확인 API (Ping)

개요

MCP 세션 상태 확인 API는 특정 MCP 세션의 연결 상태를 실시간으로 확인하는 기능을 제공합니다. 이 API는 클라이언트가 에이전트 보드와의 연결 상태를 모니터링하고, 세션 만료나 연결 끊김을 감지할 수 있도록 도와줍니다.

주요 특징

  • 실시간 상태 확인: 메모리와 Redis 저장소에서 세션 상태를 빠르게 확인
  • 다중 계층 검증: 메모리(SSE 연결) → Redis → 세션 없음 순서로 정확한 상태 확인
  • 세션 정보 제공: 세션이 존재하는 경우 프로토콜 버전, 생성/만료 시간 정보 제공
  • 에러 처리: 세션 확인 실패 시 상세한 에러 정보 제공

데이터 활용

세션 상태 정보는 다음과 같은 용도로 활용됩니다:

  • 연결 상태 모니터링: 클라이언트의 MCP 세션 연결 상태 실시간 확인
  • 세션 복구: 연결이 끊어진 세션의 복구 필요성 판단
  • 리소스 관리: 만료된 세션의 정리 및 메모리 관리
  • 사용자 경험 개선: 연결 상태에 따른 적절한 UI 표시

제약사항

  • 세션 ID가 없거나 유효하지 않은 경우 오류 반환
  • 사용자는 자신의 세션만 확인 가능
  • 세션 생성 후에만 상태 확인 가능

세션 상태 확인

특정 MCP 세션의 연결 상태를 확인합니다.

  • HTTP Method: GET
  • Path: /v1/agent-board/mcp/ping
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰입니다.Yes
Mcp-Session-Idstring상태를 확인할 MCP 세션 ID입니다.Yes
Accept-Languagede-DE, en-US, ko-KR오류 메시지의 언어를 지정합니다. 지역 코드를 포함한 형식(예: de-DE, en-US, ko-KR)만 지원합니다.No

Responses

HTTP Status Code설명Error Code(s)
200 OK세션 상태 확인 성공 (세션이 존재하고 연결됨)-
400 Bad Request잘못된 요청 (세션 ID 누락 또는 세션이 존재하지 않음)12020, 12023
401 Unauthorized인증 실패 (유효하지 않은 액세스 토큰)10001
403 Forbidden권한 없음 (다른 사용자의 세션 접근)10030
500 Internal Server Error서버 내부 오류10000
200 OK - 세션 상태 확인 성공

연결된 세션:

{
"sessionId": "agentboard-1234567890-abc123",
"connected": true,
"timestamp": "2025-01-07T02:00:00.000Z",
"sessionInfo": {
"protocolVersion": "2025-03-26",
"createdAt": "2025-01-07T01:00:00.000Z",
"expiresAt": "2025-01-08T01:00:00.000Z"
}
}
필드타입설명필수
sessionIdstring확인한 세션의 고유 IDYes
connectedboolean세션 연결 상태 (항상 true)Yes
timestampstring상태 확인 시각 (ISO 8601 형식)Yes
sessionInfoobject세션 정보Yes
sessionInfo.protocolVersionstringMCP 프로토콜 버전Yes
sessionInfo.createdAtstring세션 생성 시각 (ISO 8601 형식)Yes
sessionInfo.expiresAtstring세션 만료 시각 (ISO 8601 형식)Yes
400 Bad Request - 잘못된 요청

예시 1: 세션 ID 누락 (SESSION_ID_REQUIRED - 12020)

{
"jsonrpc": "2.0",
"error": {
"code": 12020,
"message": "세션 ID가 필요합니다.",
"data": {
"context": "ping"
}
}
}

예시 2: 세션이 존재하지 않음 (SESSION_NOT_FOUND - 12023)

{
"jsonrpc": "2.0",
"error": {
"code": 12023,
"message": "세션을 찾을 수 없습니다.",
"data": {
"context": "ping",
"sessionId": "agentboard-1234567890-abc123"
}
}
}
401 Unauthorized - 인증 실패

예시: 유효하지 않은 액세스 토큰 (INVALID_ACCESS_TOKEN - 10001)

{
"code": 10001,
"message": "INVALID_ACCESS_TOKEN",
"detail": "유효하지 않은 액세스 토큰입니다.",
"metadata": {
"context": "authentication"
}
}
500 Internal Server Error - 서버 내부 오류

예시: 일반 서버 오류 (SERVER_ERROR - 10000)

{
"code": 10000,
"message": "SERVER_ERROR",
"detail": "서버 내부 오류가 발생했습니다."
}

설명

  • 이 API는 MCP 세션의 연결 상태를 실시간으로 확인하는 핵심 기능입니다.

  • 동작 방식:

    • 세션이 존재하고 연결된 경우: 200 OK 응답과 함께 세션 정보 반환
    • 세션 ID가 누락된 경우: 400 Bad Request 에러 반환
    • 세션이 존재하지 않거나 만료된 경우: 400 Bad Request 에러 반환
  • 다중 계층 검증 방식:

    • 1단계: 메모리(SSE 연결) 확인 - 가장 신속하고 정확한 상태
    • 2단계: Redis 세션 정보 확인 - 연결이 끊어졌지만 세션은 유효한 상태
    • 3단계: 세션 없음 - 세션이 존재하지 않거나 만료된 상태 (400 에러 반환)
  • 세션 정보 제공:

    • 세션이 존재하는 경우 프로토콜 버전, 생성/만료 시간 정보 제공
    • 세션 만료 시간을 통해 클라이언트가 세션 갱신 필요성 판단 가능
  • 클라이언트 사용법:

    • HTTP Status Code만 확인하여 세션 상태 판단 가능
    • 200 OK: 세션 활성, 400 Bad Request: 세션 없음 또는 재연결 필요
    • Response body 파싱 불필요로 빠른 상태 확인 가능
  • 사용 사례:

    • 주기적인 연결 상태 모니터링 (heartbeat)
    • 세션 만료 전 사전 알림 및 갱신
    • 연결 끊김 감지 후 재연결 로직 트리거
    • 앱 복구 시 기존 세션 유효성 검증