Skip to main content
Glama

GitHub Stars MCP Server

by Dustyposa
models.py3.27 kB
"""Data models for GitHub Stars MCP Server.""" from datetime import datetime from pydantic import BaseModel, ConfigDict, Field class StartedRepository(BaseModel): """GitHub repository model.""" model_config = ConfigDict(populate_by_name=True) repo_id: str = Field(description="Repository ID", alias="id") name_with_owner: str = Field( alias="nameWithOwner", description="Repository full name (owner/repo)" ) name: str = Field(description="Repository name") owner: str = Field(description="Repository owner") description: str | None = Field(default=None, description="Repository description") stargazer_count: int = Field(alias="stargazerCount", description="Number of stars") url: str = Field(description="Repository URL") primary_language: str | None = Field( default=None, alias="primaryLanguage", description="Primary programming language", ) starred_at: datetime | None = Field( default=None, alias="starredAt", description="Time when starred" ) pushed_at: datetime | None = Field( default=None, alias="pushedAt", description="Last push time" ) disk_usage: int | None = Field( default=None, alias="diskUsage", description="Repository disk usage in KB" ) repository_topics: list[str] = Field( default=[], alias="repositoryTopics", description="Repository topics" ) languages: list[str] = Field( default=[], description="Programming languages used in the repository" ) class StartedRepoWithReadme(StartedRepository): """GitHub repository model with README content.""" model_config = ConfigDict(populate_by_name=True) readme_content: str | None = Field( default=None, description="Repository README content", alias="readmeContent" ) class StarredRepositoriesResponse(BaseModel): """Response model for starred repositories.""" model_config = ConfigDict(populate_by_name=True) repositories: list[StartedRepository] = Field( description="List of starred repositories" ) total_count: int = Field(description="Total count of starred repositories") has_next_page: bool = Field( default=False, description="Whether there are more pages" ) end_cursor: str | None = Field( default=None, description="End cursor for pagination" ) class StarredRepositoriesWithReadmeResponse(BaseModel): """Response model for starred repositories with readme.""" model_config = ConfigDict(populate_by_name=True) repositories: list[StartedRepoWithReadme] = Field( description="List of starred repositories" ) total_count: int = Field(description="Total count of starred repositories") class RepositoryDetails(BaseModel): """Detailed repository information including README content.""" model_config = ConfigDict(populate_by_name=True) readme_content: str | None = Field(default=None, description="README content", alias="readmeContent") class BatchRepositoryDetailsResponse(BaseModel): """Response model for batch repository details.""" model_config = ConfigDict(populate_by_name=True) data: dict[str, RepositoryDetails] = Field(description="List of repository details")

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/Dustyposa/github-stars-mcp-server'

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