Aladin Books Server
MCP server: Aladin Books Server
Installation
npx mcp-aladin-books-serverAsk AI about Aladin Books Server
Powered by Claude ยท Grounded in docs
I know everything about Aladin Books Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
์๋ผ๋ ๋์ ๊ฒ์ MCP ์๋ฒ (Node.js)
์๋ผ๋ ๋์ ๊ฒ์ API๋ฅผ ํ์ฉํ MCP(Model Context Protocol) ์๋ฒ์ ๋๋ค.
ํน์ง
- ๋์ ๊ฒ์: ์ ๋ชฉ, ์ ์, ์ถํ์ฌ, ํค์๋๋ก ๋์ ๊ฒ์
- ์์ธ ์ ๋ณด: ISBN์ผ๋ก ๋์ ์์ธ ์ ๋ณด ์กฐํ
- ๋ฒ ์คํธ์ ๋ฌ: ์๋ผ๋ ๋ฒ ์คํธ์ ๋ฌ ๋ชฉ๋ก ์กฐํ (์นดํ ๊ณ ๋ฆฌ๋ณ ๊ฒ์ ์ง์)
- ์นดํ ๊ณ ๋ฆฌ ๊ฒ์: ๋์ ์นดํ ๊ณ ๋ฆฌ ๊ฒ์ ๋ฐ ์กฐํ (์์ ๋ ๋ฒจ ์ฐ์ ํ์)
์๋ผ๋ API ํค ๋ฐ๊ธ
์ด MCP ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋ผ๋์ API ํค๊ฐ ํ์ํฉ๋๋ค.
- ์๋ผ๋ TTB ์ฌ์ดํธ์ ์ ์
- ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
- API ํค ๋ฐ๊ธ ์ ์ฒญ
DXT ์ค์น
- ํด๋ก๋ ๋ฐ์คํฌํฑ์์ [์ค์ ] - [ํ์ฅํ๋ก๊ทธ๋จ]์ ์ ํ
- ๋ค์ด ๋ฐ์ DXT ํ์ผ์ ๋๋๊ทธ ์ค ๋๋กญ
- 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
๋์ ๋ฒ ์คํธ์ ๋ฌ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค. ์นดํ ๊ณ ๋ฆฌ๋ณ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
maxResults(number): ์ต๋ ๊ฒฐ๊ณผ ๊ฐ์ (1-100, ๊ธฐ๋ณธ๊ฐ: 10)start(number): ๊ฒ์ ์์ ๋ฒํธ (๊ธฐ๋ณธ๊ฐ: 1)categoryId(string, optional): ์นดํ ๊ณ ๋ฆฌ ID (CID) - ํน์ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ฒ์ ์ ํ
4. get_new_books
์ ๊ฐ ์ ์ฒด ๋ฆฌ์คํธ๋ฅผ ์กฐํํฉ๋๋ค. ์นดํ ๊ณ ๋ฆฌ๋ณ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
maxResults(number): ์ต๋ ๊ฒฐ๊ณผ ๊ฐ์ (1-100, ๊ธฐ๋ณธ๊ฐ: 10)start(number): ๊ฒ์ ์์ ๋ฒํธ (๊ธฐ๋ณธ๊ฐ: 1)categoryId(string, optional): ์นดํ ๊ณ ๋ฆฌ ID (CID) - ํน์ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ฒ์ ์ ํ
5. get_special_new_books
์ฃผ๋ชฉํ ๋งํ ์ ๊ฐ ๋ฆฌ์คํธ๋ฅผ ์กฐํํฉ๋๋ค. ์นดํ ๊ณ ๋ฆฌ๋ณ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
maxResults(number): ์ต๋ ๊ฒฐ๊ณผ ๊ฐ์ (1-100, ๊ธฐ๋ณธ๊ฐ: 10)start(number): ๊ฒ์ ์์ ๋ฒํธ (๊ธฐ๋ณธ๊ฐ: 1)categoryId(string, optional): ์นดํ ๊ณ ๋ฆฌ ID (CID) - ํน์ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ฒ์ ์ ํ
6. get_editor_choice
ํธ์ง์ ์ถ์ฒ ๋ฆฌ์คํธ๋ฅผ ์กฐํํฉ๋๋ค. ์นดํ ๊ณ ๋ฆฌ๋ณ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
maxResults(number): ์ต๋ ๊ฒฐ๊ณผ ๊ฐ์ (1-100, ๊ธฐ๋ณธ๊ฐ: 10)start(number): ๊ฒ์ ์์ ๋ฒํธ (๊ธฐ๋ณธ๊ฐ: 1)categoryId(string, optional): ์นดํ ๊ณ ๋ฆฌ ID (CID) - ํน์ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ฒ์ ์ ํ
7. get_blogger_best
๋ธ๋ก๊ฑฐ ๋ฒ ์คํธ์ ๋ฌ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค. ๊ตญ๋ด๋์๋ง ์กฐํ ๊ฐ๋ฅํ๋ฉฐ, ์นดํ ๊ณ ๋ฆฌ๋ณ ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
maxResults(number): ์ต๋ ๊ฒฐ๊ณผ ๊ฐ์ (1-100, ๊ธฐ๋ณธ๊ฐ: 10)start(number): ๊ฒ์ ์์ ๋ฒํธ (๊ธฐ๋ณธ๊ฐ: 1)categoryId(string, optional): ์นดํ ๊ณ ๋ฆฌ ID (CID) - ํน์ ์นดํ ๊ณ ๋ฆฌ๋ก ๊ฒ์ ์ ํ
8. search_categories
๋์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๊ฒ์ํฉ๋๋ค. ์์ ๋ ๋ฒจ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ฐ์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
searchTerm(string): ๊ฒ์ํ ์นดํ ๊ณ ๋ฆฌ ์ด๋ฆmaxResults(number): ์ต๋ ๊ฒฐ๊ณผ ๊ฐ์ (1-50, ๊ธฐ๋ณธ๊ฐ: 20)
9. get_popular_categories
์์ฃผ ์ฌ์ฉ๋๋ ์ฃผ์ ์นดํ ๊ณ ๋ฆฌ ๋ชฉ๋ก์ ์กฐํํฉ๋๋ค. ์์ ๋ ๋ฒจ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ฐ์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
limit(number): ํ์ํ ์นดํ ๊ณ ๋ฆฌ ๊ฐ์ (1-50, ๊ธฐ๋ณธ๊ฐ: 20)
10. format_books_table
๋์ ์ ๋ณด๋ฅผ ํ ํํ๋ก ์ ๋ฆฌํ์ฌ ํ์ํฉ๋๋ค. ๊ฒ์, ISBN ์กฐํ, ๊ฐ์ข ๋์ ๋ฆฌ์คํธ ์กฐํ๋ฅผ ์ง์ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
type(enum): ์กฐํ ํ์ (search, isbn, bestseller, new_books, special_new_books, editor_choice, blogger_best)query(string, optional): ๊ฒ์์ด (type์ด search์ธ ๊ฒฝ์ฐ ํ์)isbn(string, optional): ISBN (type์ด isbn์ธ ๊ฒฝ์ฐ ํ์)searchType(enum): ๊ฒ์ ํ์ (Title, Author, Publisher, Keyword, ๊ธฐ๋ณธ๊ฐ: Title)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', {
maxResults: 10
});
// ์นดํ
๊ณ ๋ฆฌ๋ณ ๋์ ๋ฒ ์คํธ์
๋ฌ ์กฐํ
await callTool('get_bestsellers', {
maxResults: 10,
categoryId: '798' // ์: ์ปดํจํฐ ์นดํ
๊ณ ๋ฆฌ
});
// ์ ๊ฐ ์ ์ฒด ๋ฆฌ์คํธ ์กฐํ
await callTool('get_new_books', {
maxResults: 10
});
// ์นดํ
๊ณ ๋ฆฌ๋ณ ์ ๊ฐ ์กฐํ
await callTool('get_new_books', {
maxResults: 10,
categoryId: '798' // ์: ์ปดํจํฐ ์นดํ
๊ณ ๋ฆฌ
});
// ์ฃผ๋ชฉํ ๋งํ ์ ๊ฐ ๋ฆฌ์คํธ ์กฐํ
await callTool('get_special_new_books', {
maxResults: 10
});
// ํธ์ง์ ์ถ์ฒ ๋ฆฌ์คํธ ์กฐํ
await callTool('get_editor_choice', {
maxResults: 10
});
// ๋ธ๋ก๊ฑฐ ๋ฒ ์คํธ์
๋ฌ ์กฐํ (๊ตญ๋ด๋์๋ง)
await callTool('get_blogger_best', {
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',
maxResults: 10,
categoryId: '798'
});
// ๋์ ์ ๋ณด ํ ํํ ํ์ (์ ๊ฐ ์ ์ฒด)
await callTool('format_books_table', {
type: 'new_books',
maxResults: 10
});
// ๋์ ์ ๋ณด ํ ํํ ํ์ (์ฃผ๋ชฉํ ๋งํ ์ ๊ฐ)
await callTool('format_books_table', {
type: 'special_new_books',
maxResults: 10
});
// ๋์ ์ ๋ณด ํ ํํ ํ์ (ํธ์ง์ ์ถ์ฒ)
await callTool('format_books_table', {
type: 'editor_choice',
maxResults: 10
});
// ๋์ ์ ๋ณด ํ ํํ ํ์ (๋ธ๋ก๊ฑฐ ๋ฒ ์คํธ์
๋ฌ)
await callTool('format_books_table', {
type: 'blogger_best',
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
๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค๋ก ๋ฐฐํฌ๋ฉ๋๋ค.
