MCP_PDF_Server

MCP_PDF_Server

3.4

If you are the rightful owner of MCP_PDF_Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

MCP PDF Server๋Š” PDF ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Model Context Protocol(MCP) ๊ธฐ๋ฐ˜ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

MCP PDF Server

MCP PDF Server๋Š” PDF ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Model Context Protocol(MCP) ๊ธฐ๋ฐ˜ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ์ž์ธ ์ œ๊ฐ€, Cursor์™€ ๊ฐ™์€ AI ์ฝ”๋”ฉ ๋„๊ตฌ์—์„œ PDF ๋ฐ์ดํ„ฐ์‹œํŠธ ๋ฌธ์„œ๋ฅผ ์ง์ ‘ ์ฝ๊ณ  ์š”์•ฝํ•˜๊ฑฐ๋‚˜, ์งˆ์˜์‘๋‹ต ๋“ฑ์œผ๋กœ ๊ฐœ๋ฐœ ์—…๋ฌด๋ฅผ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, AI๊ฐ€ PDF ๋ฐ์ดํ„ฐ์‹œํŠธ์˜ ๋‚ด์šฉ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฐ”๋กœ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋œ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‘ ๊ฐœ์˜ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • manager_server: FastAPI ๊ธฐ๋ฐ˜์˜ ์›นํŽ˜์ด์ง€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์›น UI๋ฅผ ํ†ตํ•ด PDF ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ํŒŒ์ผ ๋ชฉ๋ก์„ ์กฐํšŒยท๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™์„ ์œ„ํ•œ RESTful API๋„ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • mcp_server: manager_server์—์„œ ๊ด€๋ฆฌํ•˜๋Š” PDF ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ํŒŒ์ผ๋ช… ๊ฒ€์ƒ‰ ๋ฐ ํ…์ŠคํŠธ ์ถ”์ถœ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ถœ๋œ ํ…์ŠคํŠธ๋Š” MCP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์™ธ๋ถ€ ์‹œ์Šคํ…œ(์˜ˆ: Cursor ๋“ฑ)๊ณผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ:

  • PDF ํ…์ŠคํŠธ ์ถ”์ถœ (๋กœ์ปฌ ํŒŒ์ผ ๋ฐ URL ์ง€์›)
  • ํŒŒ์ผ๋ช… ๊ธฐ๋ฐ˜ PDF ๊ฒ€์ƒ‰
  • PDF ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ๊ด€๋ฆฌ
  • PDF ํŒŒ์ผ ์›น ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ ์ง€์›
  • RESTful API ๋ฐ ์›น ์„œ๋น„์Šค ์ œ๊ณต
  • MCP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ ์™ธ๋ถ€ ์‹œ์Šคํ…œ(Curator, Cursor ๋“ฑ) ์—ฐ๋™

RESTful API์™€ ์›น UI๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ ์‰ฝ๊ฒŒ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Docker์™€ ๋กœ์ปฌ ํ™˜๊ฒฝ ๋ชจ๋‘์—์„œ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌ ๋ฐ ์šด์˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์‹œํŠธยท๋…ผ๋ฌธยท๊ณ„์•ฝ์„œ ๋“ฑ ๋‹ค์–‘ํ•œ PDF ๋ฌธ์„œ์˜ ์ž๋™ํ™”๋œ ๊ด€๋ฆฌ์™€ ๊ฒ€์ƒ‰์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•

  • ๋กœ์ปฌ PDF ํŒŒ์ผ ๋ฐ URL๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ PDF์—์„œ ํ…์ŠคํŠธ ์ถ”์ถœ
  • /app/datasheets ํ•˜์œ„์˜ PDF ํŒŒ์ผ ๋ชฉ๋ก ์ œ๊ณต
  • ํŒŒ์ผ๋ช…์œผ๋กœ PDF ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ œ๊ณต
  • PyPDF2 ๊ธฐ๋ฐ˜์˜ ์•ˆ์ •์ ์ธ ํ…์ŠคํŠธ ์ถ”์ถœ ๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
  • FastMCP ๊ธฐ๋ฐ˜์˜ ํ‘œ์ค€ํ™”๋œ MCP ํˆด ์ œ๊ณต

๋„์ปค(Docker)๋กœ ์‹คํ–‰ํ•˜๊ธฐ

  1. ์ด๋ฏธ์ง€ ๋นŒ๋“œ

    docker build -t mcp-pdf-server:1.0.0 .
    
  2. ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

    docker run -d \
      -v /ํ˜ธ์ŠคํŠธ/๊ฒฝ๋กœ/๋ฐ์ดํ„ฐ:/app/datasheets \
      -p 5050:5050 \
      -p 5080:5080 \
      --name mcp-pdf-server \
      mcp-pdf-server:1.0.0
    
    • /ํ˜ธ์ŠคํŠธ/๊ฒฝ๋กœ/๋ฐ์ดํ„ฐ์— PDF ํŒŒ์ผ์„ ๋„ฃ์œผ๋ฉด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ /app/datasheets์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • 5050, 5080 ํฌํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  3. docker-compose ์‚ฌ์šฉ์‹œ

    # docker-compose.yml์˜ /path/to/your/datasheets๋ฅผ ์‹ค์ œ PDF ํด๋” ๊ฒฝ๋กœ๋กœ ์ˆ˜์ •ํ•˜์„ธ์š”.
    docker-compose up -d --build
    

๋กœ์ปฌ(Python)์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ธฐ

  1. ์˜์กด์„ฑ ์„ค์น˜

    pip install -r requirements.txt
    
  2. ์„œ๋ฒ„ ์‹คํ–‰

    python mcp_server/mcp_pdf_server.py
    # ๋˜๋Š”
    uvicorn manager_server.main:app --host 0.0.0.0 --port 5080
    

MCP ํˆด(API) ์„ค๋ช…

  • read_local_pdf
    ๋กœ์ปฌ PDF ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

  • read_url_pdf
    PDF ํŒŒ์ผ์˜ URL์„ ์ž…๋ ฅ๋ฐ›์•„ ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

  • server_pdf_list
    /app/datasheets ํ•˜์œ„์˜ ๋ชจ๋“  PDF ํŒŒ์ผ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • server_pdf_search
    ํŒŒ์ผ๋ช…์„ ์ž…๋ ฅ๋ฐ›์•„ ์„œ๋ฒ„์— ์žˆ๋Š” PDF ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ , ํ•ด๋‹น PDF์˜ ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์•ˆ๋‚ด

  • PDF ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜๋“œ์‹œ /app/datasheets ๊ฒฝ๋กœ(๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€)์— ์œ„์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋„์ปค ์‚ฌ์šฉ ์‹œ, ํ˜ธ์ŠคํŠธ์˜ PDF ํด๋”๋ฅผ /app/datasheets๋กœ ๋งˆ์šดํŠธํ•˜์„ธ์š”.
  • ์†Œ์Šค์ฝ”๋“œ๋Š” /app/mcp_server์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค(์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๊ธฐ์ค€).

๋ผ์ด์„ ์Šค

Apache License 2.0
์ €์ž: Dev91