31 lines
980 B
Python
31 lines
980 B
Python
from typing import List, Dict, Optional, Literal
|
|
from pydantic import BaseModel, Field
|
|
|
|
class MCPServerBase(BaseModel):
|
|
name: str
|
|
type: Literal["stdio", "sse", "streamableHttp"]
|
|
command: Optional[str] = None
|
|
args: Optional[List[str]] = Field(default_factory=list)
|
|
env: Optional[Dict[str, str]] = Field(default_factory=dict)
|
|
url: Optional[str] = None
|
|
headers: Optional[Dict[str, str]] = Field(default_factory=dict)
|
|
project_id: int
|
|
status: str = "disconnected"
|
|
|
|
class MCPServerCreate(MCPServerBase):
|
|
pass
|
|
|
|
class MCPServerUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
type: Optional[Literal["stdio", "sse", "streamableHttp"]] = None
|
|
command: Optional[str] = None
|
|
args: Optional[List[str]] = None
|
|
env: Optional[Dict[str, str]] = None
|
|
url: Optional[str] = None
|
|
headers: Optional[Dict[str, str]] = None
|
|
project_id: Optional[int] = None
|
|
status: Optional[str] = None
|
|
|
|
class MCPServer(MCPServerBase):
|
|
id: str
|