# mcp/mygene.py from functools import lru_cache from mcp.clients import BaseClient from typing import Dict class MyGeneClient(BaseClient): def __init__(self): super().__init__("https://mygene.info/v3", api_key_env="MYGENE_KEY") @lru_cache(512) async def fetch(self, symbol: str) -> Dict: q = {"q": symbol, "fields": "symbol,name,summary,alias,entrezgene,location", "size": 1} return (await self.request("GET", "query", params=q))["hits"][0] mygene = MyGeneClient()