Data4Library MCP Server
Provides comprehensive access to South Korea's National Library information system, enabling searches across 1,000+ public libraries, real-time book availability checks, borrowing trends, and location-based library discovery.
README
<div align="center"> <img src="https://firebasestorage.googleapis.com/v0/b/rottenbridge-e6efa.appspot.com/o/logo.jpg?alt=media&token=68d16fd2-799f-4aba-8c1e-da6977e2949e" alt="Data4Library MCP Server Logo" width="300"/> </div>
π μ 보λ루 λμκ²μ MCP (data4library-mcp)
λμκ΄ μ 보λ루 MCPλ κ΅λ¦½μ€μλμκ΄μμ μ 곡νλ λμκ΄ μ 보λ루 APIλ₯Ό μμ ν νμ©ν μ μλλ‘ κ°λ°λ ν¬κ΄μ μΈ MCP(Model Context Protocol) μλ²μ λλ€. νκ΅μ λͺ¨λ 곡곡λμκ΄ μ 보, λμ κ²μ, λμΆ νν©, λ μ ν΅κ³ λ±μ AI λͺ¨λΈμμ μ½κ² μ κ·Όνκ³ νμ©ν μ μκ² ν΄μ€λλ€.
πΊπΈ English Documentation: README-en.md
π λΉ λ₯Έ μ€μΉ (Smithery κΆμ₯)
κ°μ₯ μ¬μ΄ μ€μΉ λ°©λ²μ Smitheryλ₯Ό μ¬μ©νλ κ²μ λλ€:
π Smitheryμμ μ€μΉνκΈ°
- μ λ§ν¬λ₯Ό ν΄λ¦νμ¬ Smithery νμ΄μ§λ‘ μ΄λ
- "Install" λ²νΌ ν΄λ¦
- API ν€ μ λ ₯ (μλ API ν€ λ°κΈ λ°©λ² μ°Έμ‘°)
- Claude Desktopμμ λ°λ‘ μ¬μ© κ°λ₯!
π λμκ΄ μ 보λ루(Data4Library)λ?
λμκ΄ μ 보λ루λ κ΅λ¦½μ€μλμκ΄μ΄ μ΄μνλ μ κ΅ κ³΅κ³΅λμκ΄ ν΅ν© μ 보 μλΉμ€μ λλ€. μ κ΅ 1,000μ¬ κ° κ³΅κ³΅λμκ΄μ μ€μκ° λ°μ΄ν°λ₯Ό ν΅ν©νμ¬ μ 곡νλ©°, λ€μκ³Ό κ°μ μ 보λ₯Ό ν¬ν¨ν©λλ€:
- π μ κ΅ κ³΅κ³΅λμκ΄ μμΉ λ° μ΄μμ 보 (1,000+ κ°κ΄)
- π λμ μμ₯ λ° λμΆ νν© (μ€μκ°)
- π λμΆ ν΅κ³ λ° νΈλ λ λΆμ
- π₯ μΈκΈ°λμ λ° κΈμμΉ λμ
- π μ§μλ³/μ°λ Ήλ³ λ μλ ν΅κ³
- π μ μ°©λμ μ 보
π― μ£Όμ κΈ°λ₯ (25κ° λꡬ)
π λμκ΄ & λμ κ²μ
- ποΈ μ κ΅ κ³΅κ³΅λμκ΄ κ²μ (
search_libraries): μ§μλ³, λμκ΄λͺ μΌλ‘ κ²μ - π λμ ν΅ν© κ²μ (
search_books): μ λͺ©, μ μ, μΆνμ¬, μ£Όμ λ³ λμ κ²μ - π λμκ΄λ³ μμ₯λμ κ²μ (
search_libraries_by_book): νΉμ λμλ₯Ό μμ₯ν λμκ΄ μ°ΎκΈ° - π λμ μμΈμ 보 (
get_book_detail): ISBNμΌλ‘ μμΈ μ 보 μ‘°ν - β
λμΆ κ°λ₯ μ¬λΆ (
check_book_availability): μ€μκ° λμΆ κ°λ₯ μν νμΈ
π μΈκΈ°λμ & νΈλ λ λΆμ
- π₯ μΈκΈ° λμΆλμ (
search_popular_books): μ κ΅/μ§μλ³ λ² μ€νΈμ λ¬ - π λμκ΄λ³ μΈκΈ°λμ (
search_popular_books_by_library): νΉμ λμκ΄μ μΈκΈ°λμ - π λμΆ κΈμμΉ λμ (
get_hot_trend): νΈλ λ© λμ μ€μκ° μ‘°ν - π μ μ°©λμ (
get_new_arrival_books): λμκ΄λ³ μλ‘ λ€μ΄μ¨ λμ - π·οΈ μ΄λ¬μ ν€μλ (
get_monthly_keywords): λ μ νΈλ λ ν€μλ
π ν΅κ³ & λΆμ λꡬ
- π λμΆλ°λ© μΆμ΄ (
get_usage_trend): λμκ΄λ³ μ΄μ© ν΅κ³ κ·Έλν - π μ§μλ³ λ
μλ (
get_reading_quantity): λ μμ¨ λ° λ μλ λΉκ΅ - π μ₯μ/λμΆ λ°μ΄ν° (
search_items): λμκ΄λ³ μμΈ ν΅κ³ - π λμ μ΄μ© λΆμ (
get_book_usage_analysis): νΉμ λμμ μ΄μ© ν¨ν΄
π― κ°μΈν μΆμ² μμ€ν
- π λ§λμ μΆμ²λμ (
get_mania_recommendations): μ λ¬Έκ°μ© μ¬ν λμ - π λ€λ
μ μΆμ²λμ (
get_reader_recommendations): μ°μ λ μμ© λμ - π·οΈ λμ ν€μλ λΆμ (
get_book_keywords): λμλ³ ν΅μ¬ ν€μλ
πΊοΈ μμΉ κΈ°λ° μλΉμ€ (λ μμ ꡬν)
- π λ΄ μ£Όλ³ λμκ΄ κ²μ (
search_nearby_libraries): GPS κΈ°λ° κ°κΉμ΄ λμκ΄ μλ κ²μ- 거리μ μ λ ¬: μ€μκ° κ±°λ¦¬ κ³μ° λ° κ°κΉμ΄ μμλ‘ μ λ ¬
- μμΈ κ±°λ¦¬ μ 보: κ° λμκ΄κΉμ§μ μ νν 거리(km) νμ
π§ μ½λ κ²μ λꡬ (API μ°λ μ§μ)
- ποΈ λμκ΄ μ½λ κ²μ (
search_library_codes): λμκ΄λͺ μΌλ‘ libCode μ°ΎκΈ° - π μ§μμ½λ μ‘°ν (
get_region_codes,get_detailed_region_codes): μ κ΅/μΈλΆ μ§μμ½λ - π μ£Όμ λΆλ₯μ½λ (
get_subject_codes,get_detailed_subject_codes): KDC λ/μΈλΆλ₯ - π ν΅ν©μ 보 μ‘°ν (
get_library_info,get_popular_books_by_library): λμκ΄λ³ μ’ ν© μ 보
π οΈ μΈμ κ΄λ¦¬
- π μ¬μ©λ ν΅κ³ (
session_stats): μ€μκ° λꡬ νΈμΆ ν΅κ³ λ° μΈμ μ 보
π‘ μ€μ μ¬μ© μλ리μ€
π λμκ΄ μ°ΎκΈ°
- "λ΄ μ£Όλ³ λμκ΄ μ΄λ μμ΄?" β
search_nearby_librariesμ¬μ© - "μμΈ κ°λ¨κ΅¬ λμκ΄ μ°Ύμμ€" β
search_detailed_region_codes+search_librariesμμ°¨ μ¬μ©
π λμ κ²μ
- "ν΄λ¦¬ν¬ν° μ±
μ΄λμ λΉλ¦΄ μ μμ΄?" β
search_books+search_libraries_by_bookμ°κ³ - "κΉμν μκ° μμ€ μ°Ύμμ€" β
search_books(μ μλͺ κ²μ)
π νΈλ λ λΆμ
- "μμ¦ μΈκΈ° μλ μ±
λμΌ?" β
search_popular_booksλλget_hot_trend - "κ°λ¨λμκ΄μμ μΈκΈ° μλ μ±
" β
search_library_codes+search_popular_books_by_library
π ν΅κ³ λΆμ
- "μμΈ μ¬λλ€μ΄ μ±
μ μΌλ§λ λ§μ΄ μ½μ΄?" β
get_reading_quantity - "λμκ΄ μ΄μ© κ·Έλν 보μ¬μ€" β
get_usage_trend
π― λ³΅ν© μΏΌλ¦¬ μμ
-
"λ΄ μ£Όλ³ λμκ΄λ€μ μ κ° λμ νν©"
search_nearby_libraries(μμΉ κΈ°λ° λμκ΄ κ²μ)get_new_arrival_books(κ° λμκ΄λ³λ‘ μ κ° μ‘°ν)
-
"κ°λ¨κ΅¬ λμκ΄μμ κ²½μ μμ μΈκΈ° μμ 보μ¬μ€"
search_detailed_region_codes(κ°λ¨κ΅¬ μ½λ μ‘°ν)get_subject_codes(κ²½μ λΆμΌ μ½λ μ‘°ν)search_popular_books_by_library(νν° μ μ©νμ¬ κ²μ)
π κΈ°μ μ νΉμ§
- β μμ ν API λν: λμκ΄ μ 보λ루 API 25κ° μλν¬μΈνΈ μ 체 μ§μ
- π μ€λ§νΈ 체μ΄λ: λꡬ κ° μλ μ°κ³λ‘ 볡μ‘ν 쿼리 μ²λ¦¬
- β‘ μ€μκ° λ°μ΄ν°: λμκ΄ μ 보λ루μ μ€μκ° λκΈ°ν
- πΊοΈ μμΉ κΈ°λ° μκ³ λ¦¬μ¦: μ체 ꡬνν Haversine 곡μ κΈ°λ° κ±°λ¦¬ κ³μ° λ° μ λ ¬
- π‘οΈ Zod μ€ν€λ§ κ²μ¦: λͺ¨λ μ λ ₯κ° νμ μμ μ± λ³΄μ₯
- π μΈμ ν΅κ³: λꡬ μ¬μ©λ μ€μκ° λͺ¨λν°λ§
- π§ μ€λ₯ μ²λ¦¬: μμΈν λ‘κΉ λ° λλ²κΉ μ 보
- π― μλλ¦¬μ€ κΈ°λ° μ€λͺ : LLMμ΄ μν©μ λ§λ λꡬλ₯Ό μ½κ² μ νν μ μλλ‘ κ΅¬μ²΄μ μΈ μ¬μ© μλλ¦¬μ€ μ 곡
π¬ νμ© μ¬λ‘
ποΈ μλ―Ό/κΈ°κ΄ ν¬νΈ
- λλ€ λμκ΄ νν© λ° μ΄μ μ 보 μ±λ΄
- μ κ°/μΈκΈ°λμ μλ¦Ό μλΉμ€
π κ΅μ‘/μ°κ΅¬
- KDC μ£Όμ λ³ λ μ νΈλ λ λΆμ
- μ°λ Ή/μ§μλ³ λ μ ν΅κ³ 리ν¬νΈ
π μΆν/λ§μΌν
- μΈκΈ° μ₯λ₯΄/λμ λ°κ΅΄ (μ°λ Ή/μ±λ³/μ§μλ³)
- νΈλ λ λ³ν λͺ¨λν°λ§
π± μ±/μλΉμ€
- ISBN κΈ°λ° μ€μκ° μμ₯/λμΆ κ°λ₯ μ¬λΆ UX
- μμΉ κΈ°λ° λμκ΄ μΆμ²
π μμνκΈ°
1οΈβ£ μ μ 쑰건
- Node.js 18+
- λμκ΄ μ 보λ루 API ν€
2οΈβ£ API ν€ λ°κΈ λ°©λ²
- λμκ΄ μ 보λ루 νμκ°μ
- λ‘κ·ΈμΈ ν μ°μλ¨ [λ§μ΄νμ΄μ§] ν΄λ¦
- λ§μ΄νμ΄μ§ λ©λ΄μμ μΈμ¦ν€ μ ν
- μ μ ν μ΄μ©λͺ©μ μ²΄ν¬ λ° κ°μΈμ 보 μμ§ μ΄μ© λμ 체ν¬
- μμ μλ£ λ²νΌ ν΄λ¦
- μνκ° μΉμΈλκΈ°μ€μΌλ‘ νμ - μΉμΈκΉμ§ μκ° μμ
- μΉμΈ ν λ°κΈλ API ν€λ₯Ό 볡μ¬νμ¬ νκ²½λ³μμ μ μ₯
π‘ μ°Έκ³ : μΉμΈ μ²λ¦¬μ μκ°μ΄ 걸릴 μ μμ΅λλ€. λ³΄ν΅ μ μ² ν μ΅μΌ μ€μ μ μΉμΈλ©λλ€.
π API νΈμΆ μ ν
- κΈ°λ³Έ: ν루 500ν μ ν
- IP λ±λ‘ ν: ν루 30,000ν μ ν
IP λ±λ‘ λ°©λ²: λ§μ΄νμ΄μ§ β μΈμ¦ν€ κ΄λ¦¬μμ μλ²IP νλμ MCP μλ²κ° μ€νλ μ»΄ν¨ν°μ IP μ£Όμλ₯Ό μ λ ₯νλ©΄ νΈμΆ μ νμ΄ 500νμμ 30,000νλ‘ νλλ©λλ€.
β οΈ μ€μ: 2023λ 11μ 20μΌλΆν° 무μ ν νΈμΆμ΄ μ€λ¨λμμΌλ©° μ΅λ μ νμ ν루 30,000νμ λλ€.
3οΈβ£ νκ²½ λ³μ μ€μ
- LIBRARY_API_KEY (νμ): λμκ΄ μ 보λ루μμ λ°κΈλ°μ API ν€
Windows PowerShell (νμ¬ μΈμ μ©):
$env:LIBRARY_API_KEY="your-api-key"
macOS/Linux:
export LIBRARY_API_KEY="your-api-key"
π¦ μ€μΉ λ°©λ²
Installing via Smithery
To install data4library-mcp automatically via Smithery:
npx -y @smithery/cli install @isnow890/data4library-mcp
λ°©λ² 1: NPX μ€μΉ (κΆμ₯)
κ°μ₯ μ¬μ΄ λ°©λ²μ NPXλ₯Ό ν΅ν μ€μΉμ λλ€. μμΈν ν¨ν€μ§ μ 보λ NPM ν¨ν€μ§ νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.
Claude Desktop μ€μ
Claude Desktop μ€μ νμΌ (Windows: %APPDATA%\Claude\claude_desktop_config.json, macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json)μ λ€μμ μΆκ°:
{
"mcpServers": {
"data4library-mcp": {
"command": "npx",
"args": ["-y", "@isnow890/data4library-mcp"],
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}
Cursor AI μ€μ
mcp.jsonμ μΆκ°:
{
"mcpServers": {
"data4library-mcp": {
"command": "npx",
"args": ["-y", "@isnow890/data4library-mcp"],
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}
λ°©λ² 2: λ‘컬 μ€μΉ
λ‘컬 κ°λ°μ΄λ 컀μ€ν μμ μ μν μ€μΉ:
Step 1: μμ€μ½λ λ€μ΄λ‘λ λ° λΉλ
GitμΌλ‘ ν΄λ‘
git clone https://github.com/isnow890/data4library-mcp.git
cd data4library-mcp
npm install
npm run build
ZIP νμΌ λ€μ΄λ‘λ
- GitHub Releases νμ΄μ§μμ μ΅μ λ²μ λ€μ΄λ‘λ
- ZIP νμΌμ μνλ μμΉμ μμΆ ν΄μ
- ν°λ―Έλμμ μμΆ ν΄μ λ ν΄λλ‘ μ΄λ:
cd /path/to/data4library-mcp
npm install
npm run build
β οΈ μ€μ: μ€μΉ ν λ°λμ npm run buildλ₯Ό μ€ννμ¬ dist ν΄λμ μ»΄νμΌλ JavaScript νμΌλ€μ μμ±ν΄μΌ ν©λλ€.
Step 2: Claude Desktop μ€μ
λΉλ μλ£ ν νμν κ²λ€:
- LIBRARY_API_KEY: λμκ΄ μ 보λ루μμ λ°κΈλ°μ API ν€
- μ€μΉ κ²½λ‘: λ€μ΄λ‘λν ν΄λμ μ λ κ²½λ‘
Windows μ€μ
Claude Desktop μ€μ νμΌ (%APPDATA%\Claude\claude_desktop_config.json)μ λ€μμ μΆκ°:
{
"mcpServers": {
"data4library-mcp": {
"type": "stdio",
"command": "cmd",
"args": [
"/c",
"node",
"C:\\path\\to\\data4library-mcp\\dist\\src\\index.js"
],
"cwd": "C:\\path\\to\\data4library-mcp",
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}
macOS/Linux μ€μ
Claude Desktop μ€μ νμΌ (~/Library/Application Support/Claude/claude_desktop_config.json)μ λ€μμ μΆκ°:
{
"mcpServers": {
"data4library-mcp": {
"type": "stdio",
"command": "node",
"args": ["/path/to/data4library-mcp/dist/src/index.js"],
"cwd": "/path/to/data4library-mcp",
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}
κ²½λ‘ μ€μ μ£Όμμ¬ν
β οΈ μ€μ: μ μ€μ μμ λ€μ κ²½λ‘λ€μ μ€μ μ€μΉ κ²½λ‘λ‘ λ°κΏμ£ΌμΈμ:
- Windows:
C:\\path\\to\\data4library-mcpλ₯Ό μ€μ λ€μ΄λ‘λν ν΄λ κ²½λ‘λ‘ λ³κ²½ - macOS/Linux:
/path/to/data4library-mcpλ₯Ό μ€μ λ€μ΄λ‘λν ν΄λ κ²½λ‘λ‘ λ³κ²½ - λΉλ κ²½λ‘: κ²½λ‘κ°
dist/src/index.jsλ₯Ό κ°λ¦¬ν€λλ‘ νμΈ (λ¨μνindex.jsκ° μλ)
κ²½λ‘ μ°ΎκΈ°:
# νμ¬ μμΉ νμΈ
pwd
# μ λ κ²½λ‘ μμ
# Windows: C:\Users\YourName\Downloads\data4library-mcp
# macOS: /Users/YourName/Downloads/data4library-mcp
# Linux: /home/YourName/Downloads\data4library-mcp
Step 3: Claude Desktop μ¬μμ
μ€μ μλ£ ν Claude Desktopμ μμ ν μ’ λ£νκ³ μ¬μμνμ¬ Data4Library MCP μλ²λ₯Ό νμ±ννμΈμ.
π§ λ‘컬 μ€ν (κ°λ°/ν μ€νΈμ©)
Claude Desktop ν΅ν© μμ΄ μ§μ μ€ννκΈ°:
npm start
# λλ
node dist/src/index.js
Docker (μ νμ¬ν):
docker build -t data4library-mcp .
docker run -i --rm -e LIBRARY_API_KEY=$LIBRARY_API_KEY data4library-mcp
MCP ν΄λΌμ΄μΈνΈ ν΅ν© (.mcp.json μμ, λ‘컬 μ€ν):
{
"mcpServers": {
"data4library-mcp": {
"type": "stdio",
"command": "node",
"args": ["dist/src/index.js"],
"env": {
"LIBRARY_API_KEY": "your-api-key"
}
}
}
}
π‘ μ¬μ© ν
- νΌμ§ κ²μ:
search_library_codesλ₯Ό μ¬μ©νμ¬ λΆλΆ μ΄λ¦/μ£Όμλ‘ λμκ΄ μ°ΎκΈ° - μ½λ ν¬νΌ:
get_subject_codes,search_detailed_kdc_codes,search_detailed_region_codesλ‘ νμν νλΌλ―Έν° μ½λ μ‘°ν - μΈμ
λͺ¨λν°λ§:
session_statsλ‘ μΈμ λ³ λꡬ μ¬μ©λ/μ ν νμΈ - λꡬ μ°κ³: 볡μ‘ν 쿼리λ μ¬λ¬ λꡬλ₯Ό μμ°¨μ μΌλ‘ μ¬μ©νμ¬ ν΄κ²°
π λΌμ΄μ μ€ λ° κ³ μ§μ¬ν
- λΌμ΄μ μ€: MIT (LICENSE νμΌ μ°Έμ‘°)
- λ°μ΄ν° μΆμ²: λμκ΄ μ 보λ루 곡곡 API
- μ¬μ©λ²: 곡곡 API μ μ± /ν λΉλμ μ€μνμΈμ. κ°μΈμ 보λ₯Ό μ μ₯/λ ΈμΆνμ§ λ§μΈμ.
π¬ μ§λ¬Έμ΄λ νΌλλ°±μ΄ μμΌμλ©΄ GitHub μ΄μλ₯Ό μ΄μ΄μ£ΌμΈμ!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.
