#!/usr/bin/env python3
"""
测试金十数据MCP API
"""

import json
import requests

TOKEN = "sk-rxxce9SpTSYXWdYtyGPvEEQ22kizv8Nt_qPunm8ASOo"
URL = "https://mcp.jin10.com/mcp"

headers = {
    "Content-Type": "application/json",
    "Accept": "application/json, text/event-stream",
    "Authorization": f"Bearer {TOKEN}"
}

def test_connection():
    """测试基本连接"""
    print("🔍 测试金十数据MCP连接...")
    print(f"Token: {TOKEN[:10]}...")
    print(f"URL: {URL}")
    
    # 测试1: 简单请求
    print("\n1. 测试基本请求...")
    try:
        response = requests.post(URL, headers=headers, json={"test": "connection"}, timeout=10)
        print(f"   状态码: {response.status_code}")
        print(f"   响应头: {dict(response.headers)}")
        
        if response.status_code == 200:
            print("   ✅ 连接成功")
            return True
        else:
            print(f"   ❌ 连接失败: {response.text[:100]}")
            return False
    except Exception as e:
        print(f"   ❌ 请求异常: {e}")
        return False

def test_mcp_flow():
    """测试完整MCP流程"""
    print("\n2. 测试MCP流程...")
    
    # 初始化
    print("   a. 初始化...")
    init_data = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "initialize",
        "params": {
            "protocolVersion": "2025-11-25",
            "capabilities": {},
            "clientInfo": {
                "name": "情报大师",
                "version": "1.0.0"
            }
        }
    }
    
    try:
        response = requests.post(URL, headers=headers, json=init_data, timeout=10, stream=True)
        
        if response.status_code == 200:
            print("      ✅ 初始化请求成功")
            
            # 解析SSE响应
            for line in response.iter_lines():
                if line:
                    line_str = line.decode('utf-8')
                    if line_str.startswith('data: '):
                        data = line_str[6:]
                        try:
                            json_data = json.loads(data)
                            if 'result' in json_data:
                                print("      ✅ 初始化完成")
                                print(f"      服务器: {json_data['result'].get('serverInfo', {})}")
                                return True
                        except:
                            pass
        else:
            print(f"      ❌ 初始化失败: {response.status_code}")
            print(f"      响应: {response.text[:200]}")
            
    except Exception as e:
        print(f"      ❌ 初始化异常: {e}")
    
    return False

def main():
    """主函数"""
    print("=" * 50)
    print("金十数据MCP API测试")
    print("=" * 50)
    
    # 测试连接
    if not test_connection():
        print("\n❌ 连接测试失败，请检查网络或Token")
        return
    
    # 测试MCP流程
    if test_mcp_flow():
        print("\n🎉 MCP流程测试成功！")
        
        # 可以继续测试工具调用
        print("\n3. 下一步可以测试:")
        print("   • get_quote - 获取实时报价")
        print("   • list_calendar - 获取财经日历")
        print("   • list_flash - 获取最新快讯")
    else:
        print("\n❌ MCP流程测试失败")

if __name__ == "__main__":
    main()