MCPオープンライブラリ
AI アシスタントが書籍や著者の情報を検索できるようにする Open Library API 用のモデル コンテキスト プロトコル (MCP) サーバー。
概要
このプロジェクトは、AIアシスタントがOpen Libraryと連携するためのツールを提供するMCPサーバーを実装します。タイトルによる書籍情報の検索、著者名による著者検索、Open Libraryキーを使用した著者詳細情報の取得、Open Library ID(OLID)を使用した著者写真のURLの取得が可能です。サーバーは書籍と著者情報の構造化データを返します。
Related MCP server: searchAPI-mcp
特徴
タイトルによる書籍検索: タイトルを使用して書籍を検索します (
get_book_by_title)。著者名による検索: 著者名を使用して著者を検索します (
get_authors_by_name)。著者の詳細を取得: Open Library キー (
get_author_info) を使用して、特定の著者の詳細情報を取得します。著者の写真を取得: Open Library ID (OLID) を使用して著者の写真の URL を取得します (
get_author_photo)。本の表紙を取得: さまざまな識別子 (ISBN、OCLC、LCCN、OLID、ID) を使用して本の表紙画像の URL を取得します (
get_book_cover)。
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の MCP Open Library を自動的にインストールするには:
npx -y @smithery/cli install @8enSmith/mcp-open-library --client claude手動インストール
# Clone the repository
git clone https://github.com/your-username/mcp-open-library.git
cd mcp-open-library
# Install dependencies
npm install
# Build the project
npm run build使用法
サーバーの実行
MCP Inspector を使用してサーバーをテストできます。
npm run inspectorMCP Inspectorにアクセスし、ツールをテストします。

MCPクライアントでの使用
このサーバーはモデルコンテキストプロトコル(MCP)を実装しており、MCP対応のAIアシスタントやクライアント(例: Claude Desktop)から利用できます。サーバーは以下のツールを公開しています。
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_cover: 特定の識別子 (ISBN、OCLC、LCCN、OLID、または ID) を使用して、本の表紙画像の 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.jpgget_book_cover
{
"key": "ISBN",
"value": "9780547928227",
"size": "L"
}get_book_cover
https://covers.openlibrary.org/b/isbn/9780547928227-L.jpgget_book_coverツールは次のパラメータを受け入れます。
key: 識別子の種類(ISBN、OCLC、LCCN、OLID、IDのいずれか)value: 識別子の値size: オプションのカバーサイズ(Sは小、Mは中、Lは大、デフォルトはL)
Claude Desktop で使用されているこのツールの例は、こちらでご覧いただけます。
ドッカー
このMCPサーバーはDockerを使ってテストできます。まずは以下を実行してください。
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インスペクターを実行します
テストの実行
npm test貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。