Открытая библиотека MCP
Сервер протокола контекста модели (MCP) для API открытой библиотеки, который позволяет помощникам на основе искусственного интеллекта искать информацию о книгах и авторах.
Обзор
Этот проект реализует сервер MCP, который предоставляет инструменты для помощников ИИ для взаимодействия с Open Library . Он позволяет искать информацию о книгах по названию, искать авторов по имени, получать подробную информацию об авторах с использованием их ключа Open Library и получать URL-адреса фотографий авторов с использованием их идентификатора Open Library (OLID). Сервер возвращает структурированные данные для информации о книгах и авторах.
Related MCP server: searchAPI-mcp
Функции
Поиск книг по названию : поиск книг по их названию (
get_book_by_title).Поиск автора по имени : поиск авторов по имени (
get_authors_by_name).Получить сведения об авторе : получить подробную информацию об определенном авторе, используя его ключ Open Library (
get_author_info).Получить фотографию автора : получить URL-адрес фотографии автора, используя его идентификатор Open Library ID (OLID) (
get_author_photo).Получить обложку книги : получить URL-адрес изображения обложки книги, используя различные идентификаторы (ISBN, OCLC, LCCN, OLID, ID) (
get_book_cover).Получить книгу по идентификатору : получить подробную информацию о книге, используя различные идентификаторы (ISBN, LCCN, OCLC, OLID) (
get_book_by_id).
Установка
Установка через Smithery
Чтобы автоматически установить MCP Open Library для Claude Desktop через Smithery :
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 inspectorОткройте MCP Inspector и протестируйте инструмент, например:

Использование с клиентом MCP
Этот сервер реализует протокол контекста модели, что означает, что он может использоваться любым совместимым с MCP помощником или клиентом AI, например, Claude Desktop . Сервер предоставляет следующие инструменты:
get_book_by_title: Поиск информации о книге по названиюget_authors_by_name: Поиск информации об авторе по имениget_author_info: Получить подробную информацию об авторе, используя его ключ Open Library Authorget_author_photo: получить URL-адрес фотографии автора, используя его идентификатор автора Open Library (OLID)get_book_cover: получить URL-адрес изображения обложки книги, используя определенный идентификатор (ISBN, OCLC, LCCN, OLID или ID)get_book_by_id: Получить подробную информацию о книге, используя определенный идентификатор (ISBN, LCCN, OCLC или OLID)
Пример ввода
{
"title": "The Hobbit"
}Пример вывода
[
{
"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"
}
]Пример ввода
{
"name": "J.R.R. Tolkien"
}Пример вывода
[
{
"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
}
]Пример ввода
{
"author_key": "OL26320A"
}Пример вывода
{
"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"
}
}Пример ввода
{
"olid": "OL26320A"
}Пример вывода
https://covers.openlibrary.org/a/olid/OL26320A-L.jpgПример входных данных
{
"key": "ISBN",
"value": "9780547928227",
"size": "L"
}Пример вывода
https://covers.openlibrary.org/b/isbn/9780547928227-L.jpgИнструмент get_book_cover принимает следующие параметры:
key: Тип идентификатора (один из:ISBN,OCLC,LCCN,OLIDилиID)value: значение идентификатораsize: Дополнительный размер обложки (Sдля маленького,Mдля среднего,Lдля большого, по умолчаниюL)
Пример ввода
{
"idType": "isbn",
"idValue": "9780547928227"
}Пример вывода
{
"title": "The Hobbit",
"authors": [
"J. R. R. Tolkien"
],
"publishers": [
"Houghton Mifflin Harcourt"
],
"publish_date": "October 21, 2012",
"number_of_pages": 300,
"isbn_13": [
"9780547928227"
],
"isbn_10": [
"054792822X"
],
"oclc": [
"794607877"
],
"olid": [
"OL25380781M"
],
"open_library_edition_key": "/books/OL25380781M",
"open_library_work_key": "/works/OL45883W",
"cover_url": "https://covers.openlibrary.org/b/id/8231496-M.jpg",
"info_url": "https://openlibrary.org/books/OL25380781M/The_Hobbit",
"preview_url": "https://archive.org/details/hobbit00tolkien"
}Инструмент get_book_by_id принимает следующие параметры:
idType: Тип идентификатора (один из:isbn,lccn,oclc,olid)idValue: значение идентификатора
Пример использования этого инструмента в 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— определения типов TypeScriptsrc/index.test.ts— Тестовый набор
Доступные сценарии
npm run build— сборка кода TypeScriptnpm run watch— отслеживание изменений и пересборкаnpm test— запуск тестового набораnpm run format- Форматирование кода с помощью Prettiernpm run inspector— запуск MCP Inspector на сервере
Проведение тестов
npm testВнося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.