list_artifacts
Retrieve a paginated list of stored HTML artifacts from the in-memory repository. Specify a limit to control the number of results.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| artifacts | Yes |
Implementation Reference
- src/web_gui_mcp/mcp_tools.py:151-166 (handler)The main handler function for the list_artifacts tool. Takes ListArtifactsInput and a MemoryArtifactStore, calls store.list(limit) to retrieve stored artifacts sorted by updated_at descending, and returns ListArtifactsOutput.
def list_artifacts_handler( input_data: ListArtifactsInput, store: MemoryArtifactStore, ) -> ListArtifactsOutput: return ListArtifactsOutput( artifacts=[ ArtifactListItem( artifact_id=item.artifact_id, title=item.spec.title, artifact=item.spec.artifact, created_at=item.created_at.isoformat(), revision=item.revision, ) for item in store.list(limit=input_data.limit) ] ) - src/web_gui_mcp/mcp_tools.py:196-198 (registration)Registration of the list_artifacts tool via @mcp.tool() decorator. Delegates to list_artifacts_handler with the shared store instance.
@mcp.tool() def list_artifacts(input: ListArtifactsInput) -> ListArtifactsOutput: return list_artifacts_handler(input, store) - Input schema for list_artifacts with an optional 'limit' field (default 20, range 1-100).
class ListArtifactsInput(ToolBaseModel): limit: int = Field(default=20, ge=1, le=100) class ArtifactListItem(ToolBaseModel): artifact_id: str title: str artifact: str created_at: str revision: int class ListArtifactsOutput(ToolBaseModel): artifacts: list[ArtifactListItem] - ArtifactListItem model used in ListArtifactsOutput, containing artifact_id, title, artifact type, created_at timestamp, and revision number.
class ArtifactListItem(ToolBaseModel): artifact_id: str title: str artifact: str created_at: str revision: int class ListArtifactsOutput(ToolBaseModel): artifacts: list[ArtifactListItem] - Output schema for list_artifacts containing a list of ArtifactListItem objects.
class ListArtifactsOutput(ToolBaseModel): artifacts: list[ArtifactListItem] - The store.list() method used by list_artifacts_handler. Returns up to `limit` artifacts sorted by updated_at descending.
def list(self, limit: int = 20) -> list[StoredArtifact]: return sorted( self._artifacts.values(), key=lambda item: item.updated_at, reverse=True, )[:limit]