Files
hunjing/backend/app/repositories/mcp_servers.py
T
2026-08-21 16:00:13 +08:00

33 lines
1.0 KiB
Python

"""MCP server 数据访问。"""
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.models.mcp_servers import McpServer
async def add_server(session: AsyncSession, server: McpServer) -> None:
session.add(server)
await session.flush()
async def get_server(session: AsyncSession, server_id: str) -> McpServer | None:
return await session.get(McpServer, server_id)
async def get_server_by_name(session: AsyncSession, name: str) -> McpServer | None:
result = await session.execute(select(McpServer).where(McpServer.name == name))
return result.scalar_one_or_none()
async def list_servers(session: AsyncSession, *, status: str | None = None) -> list[McpServer]:
conditions = []
if status is not None:
conditions.append(McpServer.status == status)
stmt = select(McpServer)
if conditions:
stmt = stmt.where(*conditions)
stmt = stmt.order_by(McpServer.created_at.desc())
result = await session.execute(stmt)
return list(result.scalars().all())