Skip to main content
Glama

PubTator-MCP-Server

MIT License
6
  • Linux
  • Apple

PubTator MCP ์„œ๋ฒ„

๐Ÿ” PubTator3 ๊ธฐ๋ฐ˜์˜ ์ƒ๋ฌผ์˜ํ•™ ๋ฌธํ—Œ ์ฃผ์„ ๋ฐ ๊ด€๊ณ„ ๋งˆ์ด๋‹ ์„œ๋ฒ„๋กœ, MCP ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ํŽธ๋ฆฌํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

PubTator MCP ์„œ๋ฒ„๋Š” AI ์–ด์‹œ์Šคํ„ดํŠธ์—๊ฒŒ ๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ(MCP)์„ ํ†ตํ•ด PubTator3 ์ƒ๋ฌผ์˜ํ•™ ๋ฌธํ—Œ ์ฃผ์„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AI ๋ชจ๋ธ์€ ๊ณผํ•™ ๋ฌธํ—Œ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ , ์ฃผ์„ ์ •๋ณด๋ฅผ ์–ป๊ณ , ๊ฐœ์ฒด ๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿค ๊ธฐ์—ฌ โ€ข ๐Ÿ“ ๋ฌธ์ œ ๋ณด๊ณ 

โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ๐Ÿ”Ž ๋ฌธํ—Œ ์ฃผ์„ ๋‚ด๋ณด๋‚ด๊ธฐ: PubTator ์ฃผ์„ ๊ฒฐ๊ณผ๋ฅผ ์—ฌ๋Ÿฌ ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์› โœ…
  • ๐Ÿš€ ์—”ํ„ฐํ‹ฐ ID ์กฐํšŒ: ์ž์œ  ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ƒ๋ฌผํ•™์  ๊ฐœ๋…์— ๋Œ€ํ•œ ํ‘œ์ค€ ์‹๋ณ„์ž๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. โœ…
  • ๐Ÿ“Š ๊ด€๊ณ„ ๋งˆ์ด๋‹: ๊ฐœ์ฒด ๊ฐ„ ์ƒ๋ฌผํ•™์  ๊ด€๊ณ„๋ฅผ ๋ฐœ๊ฒฌํ•˜์„ธ์š” โœ…
  • ๐Ÿ“„ ๋ฌธํ—Œ ๊ฒ€์ƒ‰: ํ‚ค์›Œ๋“œ ๋ฐ ์—”ํ„ฐํ‹ฐ ID๋กœ ๋ฌธํ—Œ ๊ฒ€์ƒ‰ ์ง€์› โœ…
  • ๐Ÿง  ์ผ๊ด„ ์ฒ˜๋ฆฌ: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ์ฃผ์„ ์ •๋ณด์˜ ์ผ๊ด„ ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์› โœ…

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

์š”๊ตฌ ์‚ฌํ•ญ

  • ํŒŒ์ด์ฌ 3.10+
  • FastMCP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์„ค์น˜

์Šค๋ฏธ์„œ๋ฆฌ๋ฅผ ํ†ตํ•ด

Smithery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PubTator Server๋ฅผ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•˜์„ธ์š”.

ํด๋กœ๋“œ

์ง€์—‘์Šคํ”ผ1

์ปค์„œ

์„ค์ • โ†’ ์ปค์„œ ์„ค์ • โ†’ MCP โ†’ ์ƒˆ ์„œ๋ฒ„ ์ถ”๊ฐ€์— ๋ถ™์—ฌ๋„ฃ๊ธฐ:

  • ๋งฅ/๋ฆฌ๋ˆ…์Šค
npx -y @smithery/cli@latest run @JackKuo666/pubtator-mcp-server --client cursor --config "{}"
์œˆ๋“œ์„œํ•‘
npx -y @smithery/cli@latest install @JackKuo666/pubtator-mcp-server --client windsurf --config "{}"
C๋ผ์ธ
npx -y @smithery/cli@latest install @JackKuo666/pubtator-mcp-server --client cline --config "{}"
์ˆ˜๋™ ์„ค์น˜
  1. ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.
    git clone https://github.com/JackKuo666/PubTator-MCP-Server.git cd PubTator-MCP-Server
  2. ์ข…์†์„ฑ ์„ค์น˜:
    pip install -r requirements.txt

๐Ÿ“Š ์‚ฌ์šฉ๋ฒ•

์„œ๋ฒ„๋ฅผ ์ง์ ‘ ์‹คํ–‰

MCP ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

python pubtator_server.py

์ด์ œ ์„œ๋ฒ„๋Š” stdio์™€ TCP ์ „์†ก์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ TCP ์ „์†ก์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MCP_TRANSPORT : TCP ์ „์†ก์˜ ๊ฒฝ์šฐ "tcp"๋กœ ์„ค์ •ํ•˜๊ณ  stdio ์ „์†ก์˜ ๊ฒฝ์šฐ "stdio"๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’์€ "tcp").
  • MCP_HOST : ๋ฐ”์ธ๋”ฉํ•  ํ˜ธ์ŠคํŠธ(๊ธฐ๋ณธ๊ฐ’์€ "0.0.0.0")
  • MCP_PORT : ์ˆ˜์‹ ํ•  ํฌํŠธ(๊ธฐ๋ณธ๊ฐ’์€ 8080)

์‚ฌ์šฉ์ž ์ •์˜ ์„ค์ •์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์˜ˆ:

MCP_TRANSPORT=tcp MCP_HOST=127.0.0.1 MCP_PORT=8888 python pubtator_server.py

์„œ๋ฒ„๋Š” ์ง€์—ฐ ์ดˆ๊ธฐํ™”์™€ ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฃŒ ์‹ ํ˜ธ(SIGINT ๋ฐ SIGTERM)๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹œ์ž‘ ๋˜๋Š” ์ž‘๋™ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

Docker ์‚ฌ์šฉ

๊ฐ„ํŽธํ•œ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด Dockerfile์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
    docker build -t pubtator-mcp-server .
  2. Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    docker run -p 8080:8080 pubtator-mcp-server

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ PubTator MCP ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜์–ด ํฌํŠธ 8080์— ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ:

  1. ์ฝ˜์†” ์ถœ๋ ฅ์—์„œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  2. ๋ชจ๋“  ํ•„์ˆ˜ ์ข…์†์„ฑ์ด ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”(์š”๊ตฌ ์‚ฌํ•ญ ์„น์…˜ ์ฐธ์กฐ).
  3. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
  4. ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์œผ๋ฉด ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹คํ–‰ํ•ด๋ณด์„ธ์š”.
python -v pubtator_server.py

์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ์˜ ๊ทผ์›์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋”์šฑ ์ž์„ธํ•œ ๋กœ๊น… ์ •๋ณด๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ํ†ตํ•ด ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker logs <container_id>

๊ตฌ์„ฑ

ํด๋กœ๋“œ ๋ฐ์Šคํฌํ†ฑ ๊ตฌ์„ฑ

claude_desktop_config.json ์— ์ถ”๊ฐ€:

(๋งฅ OS)

{ "mcpServers": { "pubtator": { "command": "python", "args": ["-m", "pubtator-mcp-server"] } } }

(์œˆ๋„์šฐ)

{ "mcpServers": { "pubtator": { "command": "C:\\Users\\YOUR\\PATH\\miniconda3\\envs\\mcp_server\\python.exe", "args": [ "D:\\code\\YOUR\\PATH\\PubTator-MCP-Server\\pubtator_server.py" ], "env": {}, "disabled": false, "autoApprove": [] } } }
CLine ๊ตฌ์„ฑ
{ "mcpServers": { "pubtator": { "command": "bash", "args": [ "-c", "source /home/YOUR/PATH/mcp-server-pubtator/.venv/bin/activate && python /home/YOUR/PATH/pubtator_server.py" ], "env": { "MCP_TRANSPORT": "stdio" }, "disabled": false, "autoApprove": [] } } }

TCP ์ „์†ก์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ์„ ์ˆ˜์ •ํ•˜์„ธ์š”.

{ "mcpServers": { "pubtator": { "command": "bash", "args": [ "-c", "source /home/YOUR/PATH/mcp-server-pubtator/.venv/bin/activate && python /home/YOUR/PATH/pubtator_server.py" ], "env": { "MCP_TRANSPORT": "tcp", "MCP_HOST": "127.0.0.1", "MCP_PORT": "8888" }, "disabled": false, "autoApprove": [] } } }

๐Ÿ›  API ๊ธฐ๋Šฅ

PubTator MCP ์„œ๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

1. ์ถœํŒ๋ฌผ ๋‚ด๋ณด๋‚ด๊ธฐ(export_publications)

์ง€์ •๋œ PMID ๋ฌธํ—Œ์— ๋Œ€ํ•œ PubTator ์ฃผ์„ ๊ฒฐ๊ณผ ๋‚ด๋ณด๋‚ด๊ธฐ:

result = await export_publications( ids=["32133824", "34170578"], id_type="pmid", format="biocjson", # Supported: pubtator, biocxml, biocjson full_text=False # Whether to include full text )

2. ์—”ํ„ฐํ‹ฐ ID ์กฐํšŒ(find_entity_id)

์ž์œ  ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ƒ๋ฌผํ•™์  ๊ฐœ๋…์— ๋Œ€ํ•œ ํ‘œ์ค€ ์‹๋ณ„์ž๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

result = await find_entity_id( query="COVID-19", concept="disease", # Optional: gene, disease, chemical, species, mutation limit=5 # Optional: limit number of results )

์ง€์ •๋œ ์—”ํ„ฐํ‹ฐ์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ ์ฐพ๊ธฐ:

result = await find_related_entities( entity_id="@DISEASE_COVID_19", relation_type="treat", # Optional: treat, cause, interact, etc. target_entity_type="chemical", # Optional: gene, disease, chemical max_results=5 # Optional: limit number of results )

4. ๋ฌธํ—Œ ๊ฒ€์ƒ‰(search_pubtator)

PubTator ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰:

results = await search_pubtator( query="COVID-19", max_pages=1 # Optional: maximum number of pages to retrieve )

๋ฌธํ—Œ ์ฃผ์„ ๊ฒ€์ƒ‰ ๋ฐ ์ผ๊ด„ ๋‚ด๋ณด๋‚ด๊ธฐ:

results = await batch_export_from_search( query="COVID-19", format="biocjson", max_pages=1, full_text=False, batch_size=5 )

์ฐธ๊ณ : ์‹ค์ œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ ๊ตฌํ˜„ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ๋Š” ์ตœ๊ทผ ํ…Œ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์‹ค์ œ API์— ๋งž๊ฒŒ ์กฐ์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โš ๏ธ ์‚ฌ์šฉ ์ œํ•œ

  • API ์š”์ฒญ ์†๋„ ์ œํ•œ: ์ดˆ๋‹น ์ตœ๋Œ€ 3๊ฐœ ์š”์ฒญ
  • ์ผ๊ด„ ๋‚ด๋ณด๋‚ด๊ธฐ ์‹œ ์š”์ฒญ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ batch_size๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ๊ด€๊ณ„ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ ์—”ํ„ฐํ‹ฐ ID๋Š” "@"๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: "@DISEASE_COVID-19").

๐Ÿ“„ ๋ผ์ด์„ผ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โš ๏ธ ๋ฉด์ฑ… ์กฐํ•ญ

์ด ๋„๊ตฌ๋Š” ์—ฐ๊ตฌ ๋ชฉ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. PubTator์˜ ์„œ๋น„์Šค ์•ฝ๊ด€์„ ์ค€์ˆ˜ํ•˜๊ณ  ์ฑ…์ž„๊ฐ ์žˆ๊ฒŒ ์‚ฌ์šฉํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    Server to search PubMed (PubMed is a free, online database that allows users to search for biomedical and life sciences literature). I have created on a day MCP came out but was on vacation, I saw someone post similar server in your DB, but figured to post mine.
    Last updated -
    1
    30
    Python
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    An MCP server implementation that enables searching and retrieving research articles from PubMed with specific focus on open access content filtering and full-text link retrieval.
    Last updated -
    4
    3
    JavaScript
  • A
    security
    A
    license
    A
    quality
    Provides LLMs with structured access to critical biomedical databases including PubTator3 (PubMed/PMC), ClinicalTrials.gov, and MyVariant.info through the Model Context Protocol.
    Last updated -
    14
    237
    Python
    MIT License
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    A comprehensive Model Context Protocol server that enables advanced PubMed literature search, citation formatting, and research analysis through natural language interactions.
    Last updated -
    12
    6
    Python
    MIT License

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JackKuo666/PubTator-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server