agent-Specialization/modules/mcp_client_manager/models.py

46 lines
961 B
Python

"""MCP 客户端管理:工具发现、调用与 OpenAI 工具映射。"""
from __future__ import annotations
import hashlib
import json
import os
import select
import shutil
import subprocess
import threading
import time
from dataclasses import dataclass
from pathlib import Path
from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, TYPE_CHECKING
import httpx
from config import MCP_PROTOCOL_VERSION, MCP_DEFAULT_TIMEOUT_SECONDS
from modules.mcp_server_registry import MCPServerRegistry
if TYPE_CHECKING:
from modules.user_container_manager import ContainerHandle
@dataclass
class MCPToolBinding:
alias: str
server_id: str
server_name: str
remote_name: str
transport: str
timeout_seconds: int
@dataclass
class MCPClientPoolEntry:
"""长连接 MCP 客户端池条目。"""
server_id: str
signature: str
client: Any
timeout_seconds: int
created_at: float
last_used_at: float