from __future__ import annotations
import argparse
import asyncio
import json
import os
import sys
from bigbugai_mcp.models import TrendingReq
from bigbugai_mcp.tools import get_trending_tokens
async def _run(limit: int) -> None:
# Ensure server guard has a key and HTTP calls have a token
token = (
os.getenv("BIGBUGAI_API_KEY")
or os.getenv("BIGBUGAI_API_TOKEN")
or os.getenv("BIGBUGAI_MCP_API_KEY")
)
if not token:
print(
"Error: set BIGBUGAI_API_KEY (or BIGBUGAI_API_TOKEN / BIGBUGAI_MCP_API_KEY) in env to run",
file=sys.stderr,
)
sys.exit(1)
# Ensure the guarded() decorator sees a server key
os.environ.setdefault("BIGBUGAI_MCP_API_KEY", token)
# Optionally, you can force a specific endpoint path with BTUNIFIED_TRENDING_PATH
# os.environ.setdefault("BTUNIFIED_TRENDING_PATH", "/api/tokens/newly-ingested")
data = await get_trending_tokens(TrendingReq(limit=limit))
print(json.dumps(data, indent=2, sort_keys=True))
def main() -> None:
parser = argparse.ArgumentParser(description="Smoke test for trending tokens tool")
parser.add_argument("-l", "--limit", type=int, default=10, help="number of tokens to fetch")
args = parser.parse_args()
asyncio.run(_run(args.limit))
if __name__ == "__main__":
main()