#!/usr/bin/env python3
import os
import sys
from pprint import pprint
try:
from mgnify_mcp.mgnify_client import MGnifyClient
except Exception as e:
print("Import failed. Did you install the package? Run: pip install -e .", file=sys.stderr)
raise
def main():
print("Running MGnify MCP local smoke test...")
print("Base URL:", os.getenv("MG_BASE_URL", "https://www.ebi.ac.uk/metagenomics/api/v2"))
client = MGnifyClient()
# 1) Biomes endpoint
print("Fetching biomes...")
biomes = client.biomes()
print("Biomes top-level keys:", list(biomes.keys()))
# 2) Study search
print("Searching studies (query='soil')...")
studies = client.search_studies(query="soil", biome=None, page=1, size=5)
data = studies.get("data", [])
print("Studies returned:", len(data))
if data:
print("First study id/type:", data[0].get("id"), data[0].get("type"))
# 3) Try fetching a known run (if it exists); handle errors gracefully
accession = os.getenv("MG_SAMPLE_RUN", "ERR5993397")
print(f"Fetching run {accession}...")
try:
run = client.run(accession)
print("Run type:", run.get("data", {}).get("type"))
except Exception as e:
print("Run fetch failed (this can be normal if accession not found):", e)
print("Smoke test completed.")
if __name__ == "__main__":
main()