Skip to main content
Glama

MCP MixSearch

by geosp
models.py3.68 kB
""" Models for the web search feature """ from typing import List, Optional, Dict, Any from pydantic import BaseModel, Field class SearchResultModel(BaseModel): """Individual search result""" title: str = Field(..., description="Page title") url: str = Field(..., description="Page URL") description: str = Field(..., description="Search result description") full_content: Optional[str] = Field(None, description="Full extracted content") content_preview: Optional[str] = Field(None, description="Content preview") word_count: Optional[int] = Field(None, description="Word count of content") timestamp: Optional[str] = Field(None, description="Timestamp") fetch_status: str = Field(default="success", description="Content extraction status") error: Optional[str] = Field(None, description="Error message if extraction failed") class WebSearchRequest(BaseModel): """Request model for web search""" query: str = Field(..., min_length=1, max_length=200, description="Search query") limit: Optional[int] = Field(default=5, ge=1, le=10, description="Number of results (1-10)") include_content: Optional[bool] = Field(default=True, description="Whether to extract full content") max_content_length: Optional[int] = Field(default=None, ge=0, description="Maximum content length per result") class WebSearchResponse(BaseModel): """Response model for web search""" query: str = Field(..., description="Original search query") results: List[SearchResultModel] = Field(..., description="Search results") total_results: int = Field(..., description="Total number of results") status: str = Field(..., description="Search status") class SearchSummaryModel(BaseModel): """Search result summary (no content)""" title: str = Field(..., description="Page title") url: str = Field(..., description="Page URL") description: str = Field(..., description="Search result description") timestamp: Optional[str] = Field(None, description="Timestamp") class SearchSummariesRequest(BaseModel): """Request model for search summaries""" query: str = Field(..., min_length=1, max_length=200, description="Search query") limit: Optional[int] = Field(default=5, ge=1, le=10, description="Number of results (1-10)") class SearchSummariesResponse(BaseModel): """Response model for search summaries""" query: str = Field(..., description="Original search query") results: List[SearchSummaryModel] = Field(..., description="Search result summaries") total_results: int = Field(..., description="Total number of results") status: str = Field(..., description="Search status") class SinglePageRequest(BaseModel): """Request model for single page content extraction""" url: str = Field(..., description="URL to extract content from") max_content_length: Optional[int] = Field(default=None, ge=0, description="Maximum content length") class SinglePageResponse(BaseModel): """Response model for single page content""" url: str = Field(..., description="Original URL") content: str = Field(..., description="Extracted content") word_count: int = Field(..., description="Word count") timestamp: str = Field(..., description="Extraction timestamp") fetch_status: str = Field(..., description="Extraction status") error: Optional[str] = Field(None, description="Error message if extraction failed")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/geosp/mcp-mixsearch'

If you have feedback or need assistance with the MCP directory API, please join our Discord server