#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
直接使用 HTTP 请求调用小红书 MCP - 完整会话版
"""

import json
import requests

MCP_URL = "http://localhost:18060/mcp"

# 小红书 cookies
COOKIES = "acw_tc=0a0bb41a17726804792802066ef22266fb6b0216da2a3e9f089735f8353b77; abRequestId=b5346cbb-6db3-5645-accc-df5d27fd9362; webBuild=5.13.1; xsecappid=xhs-pc-web; a1=19cbbfd8f46tok3grdu3mmi72tpiihd7co02rf9oa30000122754; webId=68ac71cf3f14eb4a280b442b71aad7e5; gid=yjSDDifj0fSfyjSDDifYilij4K9lTqkFf7q68l063WJ9UJq833xfWF888yJJW248dDqfjJ0Y; web_session=040069b8dcb7aa9bcf6957bd9d3b4b7b5c866c; id_token=VjEAAPwuVKkxM5M3tgTrefheWsAsAIisJtFuRYQM3EFnhkneE3Zag62PzVeUMmRAgCOznnJXrYICwToncTBIL4u7bKSd7M8QMVA0TgyLKo+Oknjg00IY1MQziJXeiutd2NTcUd+B; unread={%22ub%22:%2269a8d5d3000000002801e4e2%22%2C%22ue%22:%2269a85762000000002603e4ef%22%2C%22uc%22:30}; loadts=1772680707856"

session = requests.Session()
session.headers.update({
    "Content-Type": "application/json",
    "Cookie": COOKIES
})

def initialize():
    """初始化 MCP 会话"""
    payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "initialize",
        "params": {
            "protocolVersion": "2024-11-05",
            "capabilities": {},
            "clientInfo": {"name": "travel-agent", "version": "1.0.0"}
        }
    }
    response = session.post(MCP_URL, json=payload, timeout=30)
    return response.json()


def list_tools():
    """列出可用工具"""
    payload = {
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/list",
        "params": {}
    }
    response = session.post(MCP_URL, json=payload, timeout=30)
    return response.json()


def search_feeds(keyword):
    """搜索笔记"""
    payload = {
        "jsonrpc": "2.0",
        "id": 3,
        "method": "tools/call",
        "params": {
            "name": "search_feeds",
            "arguments": {"keyword": keyword}
        }
    }
    response = session.post(MCP_URL, json=payload, timeout=60)
    return response.json()


if __name__ == "__main__":
    print("初始化 MCP 会话...")
    init_result = initialize()
    print(f"初始化结果：{json.dumps(init_result, ensure_ascii=False, indent=2)}")
    
    print("\n列出可用工具...")
    tools_result = list_tools()
    print(f"工具列表：{json.dumps(tools_result, ensure_ascii=False, indent=2)}")
    
    print("\n搜索：北京看展 2026")
    search_result = search_feeds("北京看展 2026")
    print(f"搜索结果：{json.dumps(search_result, ensure_ascii=False, indent=2)}")
    
    # 保存结果
    with open("data/xiaohongshu_result.json", "w", encoding="utf-8") as f:
        json.dump({
            "init": init_result,
            "tools": tools_result,
            "search": search_result
        }, f, ensure_ascii=False, indent=2)
    
    print("\n结果已保存到：data/xiaohongshu_result.json")
