[ADD]mcp market: Obtain the list of MCP services from MCP Market Source - ModelScope

This commit is contained in:
lixiangcheng1
2026-02-25 10:27:16 +08:00
parent b4f69f2cff
commit 5ca397befa
15 changed files with 1106 additions and 0 deletions

View File

@@ -8,6 +8,8 @@ from .file_schema import File, FileCreate, FileUpdate
from .tenant_schema import Tenant, TenantCreate, TenantUpdate
from .chunk_schema import ChunkCreate, ChunkUpdate, ChunkRetrieve
from .knowledgeshare_schema import KnowledgeShare, KnowledgeShareCreate
from .mcp_market_schema import McpMarketCreate, McpMarketUpdate, McpMarket
from .mcp_market_config_schema import McpMarketConfigCreate, McpMarketConfigUpdate, McpMarketConfig
from .order_schema import CreateOrderRequest, OrderResponse, ExternalOrderResponse
from .app_schema import (
AppChatRequest,
@@ -78,6 +80,12 @@ __all__ = [
"ChunkRetrieve",
"KnowledgeShare",
"KnowledgeShareCreate",
"McpMarketCreate",
"McpMarketUpdate",
"McpMarket",
"McpMarketConfigCreate",
"McpMarketConfigUpdate",
"McpMarketConfig",
"CreateOrderRequest",
"OrderResponse",
"ExternalOrderResponse",

View File

@@ -0,0 +1,31 @@
from pydantic import BaseModel, Field, field_serializer, ConfigDict
import datetime
import uuid
class McpMarketConfigBase(BaseModel):
mcp_market_id: uuid.UUID
token: str | None = None
status: int | None = None
tenant_id: uuid.UUID | None = None
created_by: uuid.UUID | None = None
class McpMarketConfigCreate(McpMarketConfigBase):
pass
class McpMarketConfigUpdate(BaseModel):
token: str | None = None
status: int | None = None
class McpMarketConfig(McpMarketConfigBase):
id: uuid.UUID
created_at: datetime.datetime
model_config = ConfigDict(from_attributes=True)
@field_serializer("created_at", when_used="json")
def _serialize_created_at(self, dt: datetime.datetime):
return int(dt.timestamp() * 1000) if dt else None

View File

@@ -0,0 +1,37 @@
from pydantic import BaseModel, Field, field_serializer, ConfigDict
import datetime
import uuid
class McpMarketBase(BaseModel):
name: str
description: str | None = None
logo_url: str | None = None
mcp_count: int
url: str
category: str
created_by: uuid.UUID | None = None
class McpMarketCreate(McpMarketBase):
pass
class McpMarketUpdate(BaseModel):
name: str | None = Field(None)
description: str | None = Field(None)
logo_url: str | None = Field(None)
mcp_count: int | None = Field(None)
url: str | None = Field(None)
category: str | None = Field(None)
class McpMarket(McpMarketBase):
id: uuid.UUID
created_at: datetime.datetime
model_config = ConfigDict(from_attributes=True)
@field_serializer("created_at", when_used="json")
def _serialize_created_at(self, dt: datetime.datetime):
return int(dt.timestamp() * 1000) if dt else None