mcp-open-library

by 8enSmith
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Referenced in the repository URL for cloning the project.

  • Used for package management and running scripts.

  • Used for code formatting in the development workflow.

MCP 오픈 라이브러리

AI 보조자가 도서 및 저자 정보를 검색할 수 있도록 하는 Open Library API를 위한 MCP(Model Context Protocol) 서버입니다.

개요

이 프로젝트는 AI 비서가 Open Library 와 상호 작용할 수 있는 도구를 제공하는 MCP 서버를 구현합니다. 제목으로 도서 정보를 검색하고, 이름으로 저자를 검색하고, Open Library 키를 사용하여 자세한 저자 정보를 가져오고, Open Library ID(OLID)를 사용하여 저자 사진의 URL을 가져올 수 있습니다. 서버는 도서 및 저자 정보에 대한 구조화된 데이터를 반환합니다.

특징

  • 제목으로 도서 검색 : 제목으로 도서를 검색하고 자세한 정보를 얻으세요
  • 이름으로 저자 검색 : 저자 이름을 사용하여 저자를 검색하고 관련 세부 정보를 얻으세요
  • 구조화된 응답 형식 : 일관된 JSON 구조로 책 및 저자 정보를 반환합니다.
  • 오류 처리 : 적절한 검증 및 오류 보고
  • 테스트 : Vitest를 통한 포괄적인 테스트 범위

설치

지엑스피1

용법

서버 실행

MCP Inspector를 사용하여 서버를 테스트할 수 있습니다.

npm run inspector

MCP 검사기에 액세스한 다음 도구를 테스트합니다.

MCP 클라이언트와 함께 사용

이 서버는 모델 컨텍스트 프로토콜(Model Context Protocol)을 구현하므로 Claude Desktop 과 같은 모든 MCP 호환 AI 어시스턴트 또는 클라이언트에서 사용할 수 있습니다. 이 서버는 다음과 같은 도구를 제공합니다.

  • get_book_by_title : 제목으로 책 정보 검색
  • get_authors_by_name : 이름으로 저자 정보 검색
  • get_author_info : Open Library Author Key를 사용하여 특정 저자에 대한 자세한 정보를 가져옵니다.
  • get_author_photo : Open Library Author ID(OLID)를 사용하여 작성자 사진의 URL을 가져옵니다.

get_book_by_title 입력 예시:

{ "title": "The Hobbit" }

get_book_by_title 출력 예시:

[ { "title": "The Hobbit", "authors": [ "J. R. R. Tolkien" ], "first_publish_year": 1937, "open_library_work_key": "/works/OL45883W", "edition_count": 120, "cover_url": "https://covers.openlibrary.org/b/id/10581294-M.jpg" } ]

get_authors_by_name 입력 예시:

{ "name": "J.R.R. Tolkien" }

get_authors_by_name 출력 예시:

[ { "key": "OL26320A", "name": "J. R. R. Tolkien", "alternate_names": [ "John Ronald Reuel Tolkien" ], "birth_date": "3 January 1892", "top_work": "The Hobbit", "work_count": 648 } ]

get_author_info 입력 예시:

{ "author_key": "OL26320A" }

get_author_info 출력 예시:

{ "name": "J. R. R. Tolkien", "personal_name": "John Ronald Reuel Tolkien", "birth_date": "3 January 1892", "death_date": "2 September 1973", "bio": "John Ronald Reuel Tolkien (1892-1973) was a major scholar of the English language, specializing in Old and Middle English. He served as the Rawlinson and Bosworth Professor of Anglo-Saxon and later the Merton Professor of English Language and Literature at Oxford University.", "alternate_names": ["John Ronald Reuel Tolkien"], "photos": [6791763], "key": "/authors/OL26320A", "remote_ids": { "viaf": "95218067", "wikidata": "Q892" }, "revision": 43, "last_modified": { "type": "/type/datetime", "value": "2023-02-12T05:50:22.881" } }

get_author_photo 입력 예시:

{ "olid": "OL26320A" }

get_author_photo 출력 예시:

https://covers.openlibrary.org/a/olid/OL26320A-L.jpg

이 도구가 Claude Desktop에서 사용되는 예는 여기에서 볼 수 있습니다.

도커

Docker를 사용하여 이 MCP 서버를 테스트할 수 있습니다. 먼저 다음을 실행하세요.

docker build -t mcp-open-library . docker run -p 8080:8080 mcp-open-library

그런 다음 검사기를 통해 Docker 내에서 실행되는 서버를 테스트할 수 있습니다.

pnpm run inspector http://localhost:8080

개발

프로젝트 구조

  • src/index.ts - 메인 서버 구현
  • src/types.ts - TypeScript 유형 정의
  • src/index.test.ts - 테스트 모음

사용 가능한 스크립트

  • npm run build - TypeScript 코드 빌드
  • npm run watch - 변경 사항을 확인하고 다시 빌드합니다.
  • npm test - 테스트 모음 실행
  • npm run format - Prettier로 코드 포맷하기
  • npm run inspector - 서버에 대해 MCP Inspector 실행

테스트 실행

npm test

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

감사의 말

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

AI 보조자가 도서 정보를 검색할 수 있도록 하는 Open Library API를 위한 MCP(Model Context Protocol) 서버입니다.

  1. Overview
    1. Features
      1. Installation
        1. Usage
          1. Running the Server
          2. Using with an MCP Client
          3. Docker
        2. Development
          1. Project Structure
          2. Available Scripts
          3. Running Tests
        3. Contributing
          1. Acknowledgments
            ID: qhkblspta2