#!/usr/bin/env python3
"""Debug API connectivity and response"""
import os
import sys
from pathlib import Path
import httpx
import json
sys.path.insert(0, str(Path(__file__).parent / "src"))
from mcp_opinion.config import OpinionConfig
async def test_api_connectivity():
"""Test direct API connectivity"""
print("\n" + "="*60)
print("OPINION.TRADE API - DEBUG TEST")
print("="*60)
config = OpinionConfig.from_env()
print(f"\nConfiguration:")
print(f" API Host: {config.api_host}")
print(f" API Key: {config.api_key[:20]}...")
print(f" Chain ID: {config.chain_id}")
# Test direct HTTP request
print(f"\nTesting direct API request...")
try:
async with httpx.AsyncClient(timeout=30) as client:
# Try to reach the API
headers = {
"Authorization": f"Bearer {config.api_key}",
"Content-Type": "application/json"
}
url = f"{config.api_host}/openapi/market"
print(f" URL: {url}")
print(f" Headers: Authorization: Bearer {config.api_key[:20]}...")
response = await client.get(url, headers=headers)
print(f"\n Status Code: {response.status_code}")
print(f" Response Headers: {dict(response.headers)}")
print(f" Response Body:\n{response.text[:500]}")
if response.status_code == 200:
try:
data = response.json()
print(f"\n✓ API Response is valid JSON")
if isinstance(data, dict):
print(f" Keys: {list(data.keys())}")
except:
print(f"\n⚠ Response is not valid JSON")
else:
print(f"\n✗ API returned status {response.status_code}")
except Exception as e:
print(f"\n✗ Network Error: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
import asyncio
asyncio.run(test_api_connectivity())