알라딘 도서 검색 MCP 서버 (Node.js)

알라딘 도서 검색 API를 활용한 MCP(Model Context Protocol) 서버입니다.

특징

  • 도서 검색: 제목, 저자, 출판사, 키워드로 도서 검색
  • 상세 정보: ISBN으로 도서 상세 정보 조회
  • 베스트셀러: 알라딘 베스트셀러 목록 조회 (카테고리별 검색 지원)
  • 카테고리 검색: 도서 카테고리 검색 및 조회 (상위 레벨 우선 표시)

알라딘 API 키 발급

이 MCP 서버를 사용하려면 알라딘의 API 키가 필요합니다.

  1. 알라딘 TTB 사이트에 접속
  2. 회원가입 및 로그인
  3. API 키 발급 신청

DXT 설치

DXT 파일

  1. 클로드 데스크톱에서 [설정] - [확장프로그램]을 선택
  2. 다운 받은 DXT 파일을 드래그 앤 드롭
  3. API 키를 입력

설정

1. 의존성 설치 및 빌드

npm install
npm run build

2. MCP 클라이언트에 정보 입력

{
  "mcpServers": {
    "aladin-books": {
      "command": "node",
      "args": [
        "<경로>/mcp-aladin-books-server/dist/index.js"
      ],
      "env": {
        "ALADIN_TTB_KEY": "알라딘_TTB_키"
      }
    }
  }
}

도구 (Tools)

1. search_books

도서를 검색합니다.

매개변수:

  • query (string): 검색어
  • searchType (enum): 검색 타입 (Title, Author, Publisher, Keyword)
  • maxResults (number): 최대 결과 개수 (1-100, 기본값: 10)
  • start (number): 검색 시작 번호 (기본값: 1)

2. get_book_detail

ISBN으로 도서 상세 정보를 조회합니다.

매개변수:

  • isbn (string): 도서의 ISBN (10자리 또는 13자리)

3. get_bestsellers

도서 베스트셀러 목록을 조회합니다. 카테고리별 검색이 가능합니다.

매개변수:

  • queryType (enum): 조회 타입 (Bestseller, ItemNewAll, ItemNewSpecial, ItemEditorChoice, BlogBest, 기본값: Bestseller)
  • maxResults (number): 최대 결과 개수 (1-100, 기본값: 10)
  • start (number): 검색 시작 번호 (기본값: 1)
  • categoryId (string, optional): 카테고리 ID (CID) - 특정 카테고리로 검색 제한

4. search_categories

도서 카테고리를 검색합니다. 상위 레벨 카테고리를 우선으로 표시합니다.

매개변수:

  • searchTerm (string): 검색할 카테고리 이름
  • maxResults (number): 최대 결과 개수 (1-50, 기본값: 20)

5. get_popular_categories

자주 사용되는 주요 카테고리 목록을 조회합니다. 상위 레벨 카테고리를 우선으로 표시합니다.

매개변수:

  • limit (number): 표시할 카테고리 개수 (1-50, 기본값: 20)

6. format_books_table

도서 정보를 표 형태로 정리하여 표시합니다. 검색, ISBN 조회, 베스트셀러 조회를 지원합니다.

매개변수:

  • type (enum): 조회 타입 (search, isbn, bestseller)
  • query (string, optional): 검색어 (type이 search인 경우 필수)
  • isbn (string, optional): ISBN (type이 isbn인 경우 필수)
  • searchType (enum): 검색 타입 (Title, Author, Publisher, Keyword, 기본값: Title)
  • queryType (enum): 베스트셀러 조회 타입 (Bestseller, ItemNewAll, ItemNewSpecial, ItemEditorChoice, BlogBest, 기본값: Bestseller)
  • maxResults (number): 최대 결과 개수 (1-50, 기본값: 10)
  • categoryId (string, optional): 카테고리 ID (베스트셀러 조회 시 카테고리 제한)

사용 예시

MCP 클라이언트에서 다음과 같이 사용할 수 있습니다:

// 도서 검색
await callTool('search_books', {
  query: '파이썬',
  searchType: 'Title',
  maxResults: 5
});

// 도서 상세 정보
await callTool('get_book_detail', {
  isbn: '9788966262755'
});

// 전체 도서 베스트셀러 조회
await callTool('get_bestsellers', {
  queryType: 'Bestseller',
  maxResults: 10
});

// 카테고리별 도서 베스트셀러 조회
await callTool('get_bestsellers', {
  queryType: 'Bestseller',
  maxResults: 10,
  categoryId: '798' // 예: 컴퓨터 카테고리
});

// 카테고리 검색 (상위 레벨 우선)
await callTool('search_categories', {
  searchTerm: '소설',
  maxResults: 10
});

// 인기 카테고리 조회 (상위 레벨 우선)
await callTool('get_popular_categories', {
  limit: 10
});

// 도서 정보 표 형태 표시 (검색)
await callTool('format_books_table', {
  type: 'search',
  query: '파이썬',
  searchType: 'Title',
  maxResults: 5
});

// 도서 정보 표 형태 표시 (베스트셀러)
await callTool('format_books_table', {
  type: 'bestseller',
  queryType: 'Bestseller',
  maxResults: 10,
  categoryId: '798'
});

개발

프로젝트 구조

server/
├── src/
│   ├── index.ts                     # 메인 서버 파일
│   └── aladin_book_categories.json  # 카테고리 정보 파일 (대용량)
├── dist/                            # 빌드 결과물
├── package.json                     # 패키지 설정
├── tsconfig.json                    # TypeScript 설정
├── env.example                      # 환경 변수 예시
├── test.js                          # 테스트 파일
└── README.md                        # 문서

기술 스택

  • Node.js: 런타임 환경
  • TypeScript: 타입 안전성 (ES2020 타겟, ESNext 모듈)
  • @modelcontextprotocol/sdk: MCP 프로토콜 구현
  • axios: HTTP 클라이언트
  • zod: 스키마 검증

개발 의존성

  • tsx: TypeScript 개발 실행기
  • @types/node: Node.js 타입 정의

빌드 설정

  • 타겟: ES2020
  • 모듈: ESNext
  • 출력 디렉터리: dist/
  • 소스맵: 포함
  • 선언 파일: 생성
  • JSON 모듈: 지원

환경 변수

# 알라딘 TTB 키 (필수)
ALADIN_TTB_KEY=your_aladin_ttb_key_here

라이선스

ISC

MCP Server · Populars

MCP Server · New

    browser-use

    Enable AI to control your browser 🤖

    🌐 Make websites accessible for AI agents. Automate tasks online with ease.

    Community browser-use
    superglue-ai

    superglue

    superglue integrates & orchestrates APIs from natural language. Agents use it to build deterministic workflows across apps, APIs and databases. Humans use it to generate insights, build automations and manage data.

    Community superglue-ai
    superglue-ai

    docs

    superglue integrates & orchestrates APIs from natural language. Agents use it to build deterministic workflows across apps, APIs and databases. Humans use it to generate insights, build automations and manage data.

    Community superglue-ai
    KemingHe

    Python Dependency Manager Companion MCP Server

    Self-updating MCP server to cross-reference latest official pip, poetry, uv, and conda docs

    Community KemingHe
    apache

    ECharts MCP

    Apache ECharts MCP Server

    Community apache