Odel
data4library mcp

data4library mcp

@isnow890TypeScriptMITUpdated 5 days ago

책 싫어하는 제가 책에 대해 아는척하고 싶어서 만들었습니다.. 내 주변 도서관 실시간 대출 확인 읽고 싶은 책을 검색하면 주변 도서관 대출 가능 여부를 즉시 확인 굳이 도서관…

Server endpointStreamable HTTPProbe failed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

정보나루 도서검색 MCP

정보나루 도서검색 MCP 로고

도서관 정보나루 API를 MCP 도구로 제공하는 Node.js 서버입니다.

이 프로젝트는 도서관 정보나루 운영기관이 제공하는 공식 MCP와 무관한 독립 오픈소스 프로젝트입니다.

운영 안내 최근 정보나루 API에서 응답 지연과 타임아웃이 간헐적으로 관찰되고 있습니다. 도구 호출이 실패하거나 늦어질 때에는 이 MCP 서버와 정보나루 API 상태를 함께 확인하세요.

English documentation

제공 도구

현재 27개 도구를 등록합니다.

도서관

  • search_libraries: 지역·도서관명으로 공공도서관 검색
  • search_nearby_libraries: 좌표에서 가까운 도서관을 거리순으로 검색
  • search_library_codes: 도서관명·지역명으로 libCode 검색
  • get_library_info: 도서관 통합정보 조회

도서·소장

  • search_books: 제목·저자·출판사·주제별 도서 검색
  • get_book_detail: ISBN으로 도서 상세정보 조회
  • search_libraries_by_book: 특정 도서를 소장한 도서관 검색
  • check_book_availability: 특정 도서관의 소장 여부와 전일 기준 대출 가능 여부 조회
  • get_new_arrival_books: 도서관별 신착도서 조회

인기·트렌드

  • search_popular_books: 전국·지역별 인기대출도서 조회
  • search_popular_books_by_library: 도서관·지역별 인기대출도서 조회
  • get_popular_books_by_library: 도서관별 인기대출도서 통합 조회
  • get_hot_trend: 대출 급상승 도서 조회
  • get_monthly_keywords: 이달의 키워드 조회

통계·분석

  • get_usage_trend: 도서관별 대출·반납 추이 조회
  • get_reading_quantity: 지역별 독서량 조회
  • search_items: 도서관별 장서·대출 데이터 조회
  • get_book_usage_analysis: 도서 이용 분석 조회
  • get_book_keywords: 도서 키워드 조회

추천

  • get_mania_recommendations: 마니아 추천도서 조회
  • get_reader_recommendations: 다독자 추천도서 조회

코드 조회

  • get_region_codes: 지역 코드 목록
  • get_detailed_region_codes: 세부 지역 코드 목록
  • search_detailed_region_codes: 세부 지역 코드 검색
  • get_subject_codes: KDC 대분류 코드 목록
  • get_detailed_subject_codes: KDC 세부 분류 코드 목록
  • search_detailed_kdc_codes: KDC 세부 분류 코드 검색

설치

준비 사항

API 키는 정보나루 로그인 후 마이페이지 > 인증키에서 신청할 수 있습니다. 호출 한도와 서버 IP 등록 정책은 정보나루의 최신 안내를 따르세요.

NPX

MCP 클라이언트 설정에 다음 서버를 추가합니다.

{
  "mcpServers": {
    "data4library-mcp": {
      "command": "npx",
      "args": ["-y", "@isnow890/data4library-mcp"],
      "env": {
        "LIBRARY_API_KEY": "your-api-key"
      }
    }
  }
}

LIBRARY_API_TIMEOUT_MS로 원천 요청 제한 시간을 조정할 수 있습니다. 기본값은 10초이며 50~60000ms 범위만 허용합니다.

로컬 설치

git clone https://github.com/isnow890/data4library-mcp.git
cd data4library-mcp
npm install
npm run build

MCP 클라이언트에서는 빌드 결과인 dist/src/index.js를 실행합니다.

{
  "mcpServers": {
    "data4library-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/data4library-mcp/dist/src/index.js"],
      "cwd": "/absolute/path/to/data4library-mcp",
      "env": {
        "LIBRARY_API_KEY": "your-api-key"
      }
    }
  }
}

로컬 실행

export LIBRARY_API_KEY="your-api-key"
npm run build
npm start

Docker로 실행할 수도 있습니다.

docker build -t data4library-mcp .
docker run -i --rm -e LIBRARY_API_KEY="$LIBRARY_API_KEY" data4library-mcp

사용 예시

  • “서울 강남구 공공도서관 찾아줘”
    • search_detailed_region_codes로 지역 코드를 찾고 search_libraries를 호출합니다.
  • “이 ISBN을 소장한 서울 도서관 찾아줘”
    • search_libraries_by_book을 호출합니다.
  • “이 도서관에 이 책이 있고 전일 기준으로 대출 가능했어?”
    • check_book_availability을 호출합니다.
  • “요즘 20대가 많이 빌린 책 보여줘”
    • search_popular_books를 연령 조건과 함께 호출합니다.

데이터와 제한사항

  • 데이터 출처는 도서관 정보나루입니다.
  • 소장·통계 데이터의 갱신 시점은 정보나루 원천을 따릅니다.
  • check_book_availability의 대출 가능 여부는 전일 기준이며 실시간 예약·대출 상태를 보장하지 않습니다.
  • search_nearby_libraries의 거리는 직선거리이며 실제 이동 거리와 다를 수 있습니다.

개발

npm run build
npm run watch

자동 회귀 테스트는 아직 구성되어 있지 않습니다.

라이선스

MIT