| name | pubmed-article-search |
| description | Search PubMed database for scientific articles and publications to retrieve biomedical literature. |
| license | MIT license |
| metadata | {"skill-author":"PJLab"} |
PubMed Article Search
Usage
import asyncio
import json
from contextlib import AsyncExitStack
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
class ToolUniverseClient:
def __init__(self, server_url: str, api_key: str):
self.server_url = server_url
self.api_key = api_key
self.session = None
async def connect():
:
.transport = streamablehttp_client(url=.server_url, headers={: .api_key})
._stack = AsyncExitStack()
._stack.__aenter__()
.read, .write, .get_session_id = ._stack.enter_async_context(.transport)
.session_ctx = ClientSession(.read, .write)
.session = ._stack.enter_async_context(.session_ctx)
.session.initialize()
Exception e:
():
:
(, ):
._stack.aclose()
()
Exception e:
()
():
:
(result, ) result.content:
content = result.content[]
(content, ):
json.loads(content.text)
(result)
Exception e:
{: , : (result)}
client = ToolUniverseClient(, )
client.connect()
result = client.session.call_tool(, arguments={: , : })
result_data = client.parse_result(result)
i, article (result_data, ):
()
()
()
()
()
client.disconnect()