Repositories

The Smarter Project’s GitHub repositories, which the Smarter Project MCP server reads.

Each ProjectRepository is one public repository of the smarter-sh GitHub organization. The MCP server serves each repository at its own endpoint, /api/v1/mcp/smarter-project/<name>/, and all of them together at /api/v1/mcp/smarter-project/. The repositories are a fixed part of the platform, declared here rather than in a manifest, because the MCP server is an internal utility of the platform, not a resource that accounts create.

Note

Experimental. The MCPServer was designed and coded by Claude Code (Anthropic’s Claude Opus 5.5), with Lawrence McDaniel as co-author. It is experimental, and will be documented.

class smarter.apps.mcpserver.repositories.ProjectRepository(**data)[source]

Bases: BaseModel

A public GitHub repository of The Smarter Project.

Example usage:

repository = get_repository("smarter-cli")
repository.github_url  # 'https://github.com/smarter-sh/smarter-cli'
repository.file_url("0123abc", "README.md", 1, 20)
archive_url(commit_sha)[source]

Return the url of the repository’s gzipped tar archive at a commit.

Parameters:

commit_sha (str) – The commit.

Return type:

str

Returns:

The url.

property commit_api_url: str

The GitHub api url of the latest commit of ref.

description: str
docs_root: str | None
docs_url: str | None
documentation_url(path)[source]

Return the url of the published documentation page that a source file becomes.

Parameters:

path (str) – The file’s path in the repository, e.g. docs/source/smarter-resources/smarter-mcpclient.rst.

Return type:

str | None

Returns:

The page’s url, e.g. https://docs.smarter.sh/en/latest/smarter-resources/smarter-mcpclient.html, or None if the file is not a page of the repository’s published documentation.

file_url(commit_sha, path, start_line=None, end_line=None)[source]

Return the GitHub url of a file, optionally of a range of its lines.

Parameters:
  • commit_sha (str | None) – The commit, for a permanent link. Defaults to ref.

  • path (str) – The file’s path in the repository.

  • start_line (int | None) – The first line to highlight.

  • end_line (int | None) – The last line to highlight.

Return type:

str

Returns:

The url.

property full_name: str

The repository’s GitHub name, e.g. smarter-sh/smarter-cli.

property github_url: str

The repository’s GitHub url.

model_config = {'extra': 'forbid', 'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
owner: str
ref: str
title: str
smarter.apps.mcpserver.repositories.SMARTER_PROJECT_REPOSITORIES: tuple[ProjectRepository, ...] = (ProjectRepository(name='smarter', title='the Smarter platform, and its documentation', description='The Smarter platform: its Django backend, SAM manifests and resources (LLMClients, Plugins, MCPClients, Guardrails, Secrets, ...), its api, its React web console, its Helm chart, and the source of its documentation, https://docs.smarter.sh, in docs/source.', owner='smarter-sh', ref='main', docs_root='docs/source', docs_url='https://docs.smarter.sh/en/latest/'), ProjectRepository(name='smarter-cli', title='the Smarter command-line interface', description='The smarter command-line interface, written in Go, which applies, gets, describes and deletes manifests.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-python', title='the Smarter Python SDK', description="The official Python library for the Smarter platform's api, published to PyPI as smarter-api.", owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-nodejs', title='the Smarter Node.js SDK', description="The official Node.js library for the Smarter platform's api, written in TypeScript, published to npm as @smarter.sh/api.", owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-golang', title='the Smarter Go SDK', description="The official Go library for the Smarter platform's api, the module github.com/smarter-sh/smarter-golang.", owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-vscode-yaml', title='the VS Code extension for Smarter manifests', description='The VS Code extension that validates and completes Smarter yaml manifests.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-infrastructure', title='the Smarter cloud infrastructure', description='The Terraform and Kubernetes code of the cloud infrastructure that the Smarter platform runs on.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-chat', title='the SmarterChat React component', description='SmarterChat, the React chat component of Smarter LLMClients, published to npm.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None), ProjectRepository(name='smarter-deploy', title='the Smarter platform quick start, with Docker', description='The quick start that runs the Smarter platform on a computer with Docker Compose.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None))

Every repository that the MCP server reads.

(
    ProjectRepository(name='smarter', title='the Smarter platform, and its documentation', description='The Smarter platform: its Django backend, SAM manifests and resources (LLMClients, Plugins, MCPClients, Guardrails, Secrets, ...), its api, its React web console, its Helm chart, and the source of its documentation, https://docs.smarter.sh, in docs/source.', owner='smarter-sh', ref='main', docs_root='docs/source', docs_url='https://docs.smarter.sh/en/latest/'),
    ProjectRepository(name='smarter-cli', title='the Smarter command-line interface', description='The smarter command-line interface, written in Go, which applies, gets, describes and deletes manifests.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-python', title='the Smarter Python SDK', description="The official Python library for the Smarter platform's api, published to PyPI as smarter-api.", owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-nodejs', title='the Smarter Node.js SDK', description="The official Node.js library for the Smarter platform's api, written in TypeScript, published to npm as @smarter.sh/api.", owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-golang', title='the Smarter Go SDK', description="The official Go library for the Smarter platform's api, the module github.com/smarter-sh/smarter-golang.", owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-vscode-yaml', title='the VS Code extension for Smarter manifests', description='The VS Code extension that validates and completes Smarter yaml manifests.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-infrastructure', title='the Smarter cloud infrastructure', description='The Terraform and Kubernetes code of the cloud infrastructure that the Smarter platform runs on.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-chat', title='the SmarterChat React component', description='SmarterChat, the React chat component of Smarter LLMClients, published to npm.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
    ProjectRepository(name='smarter-deploy', title='the Smarter platform quick start, with Docker', description='The quick start that runs the Smarter platform on a computer with Docker Compose.', owner='smarter-sh', ref='main', docs_root=None, docs_url=None),
)
smarter.apps.mcpserver.repositories.get_repository(name)[source]

Return one of SMARTER_PROJECT_REPOSITORIES, by name.

Parameters:

name (str) – The repository’s name, e.g. smarter-cli.

Return type:

ProjectRepository | None

Returns:

The repository, or None if there is no such repository.

smarter.apps.mcpserver.repositories.project_repositories()[source]

Return SMARTER_PROJECT_REPOSITORIES.

Every module reads the repositories through this function, so that tests can replace them with throwaway repositories, whose indexes do not collide with the real ones.

Return type:

tuple[ProjectRepository, ...]

smarter.apps.mcpserver.repositories.repository_names()[source]

Return the names of SMARTER_PROJECT_REPOSITORIES.

Return type:

list[str]