Skip to main content
Glama

get_tag

Retrieve a specific tag by its ID or abid from ArchiveBox, including associated snapshots for organized web archive management.

Instructions

Get a specific Tag by id or abid.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tag_idYesThe ID or abid of the tag
with_snapshotsNoWhether to include snapshots

Implementation Reference

  • MCP tool handler for 'get_tag' that creates an ArchiveBox Api client instance with provided credentials and calls its get_tag method to fetch the tag data as JSON.
    def get_tag(
        tag_id: str = Field(
            description="The ID or abid of the tag",
        ),
        with_snapshots: bool = Field(True, description="Whether to include snapshots"),
        archivebox_url: str = Field(
            default=os.environ.get("ARCHIVEBOX_URL", None),
            description="The URL of the ArchiveBox instance",
        ),
        username: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_USERNAME", None),
            description="Username for authentication",
        ),
        password: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_PASSWORD", None),
            description="Password for authentication",
        ),
        token: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_TOKEN", None),
            description="Bearer token for authentication",
        ),
        api_key: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_API_KEY", None),
            description="API key for authentication",
        ),
        verify: Optional[bool] = Field(
            default=to_boolean(os.environ.get("ARCHIVEBOX_VERIFY", "True")),
            description="Whether to verify SSL certificates",
        ),
    ) -> dict:
        """
        Get a specific Tag by id or abid.
        """
        client = Api(
            url=archivebox_url,
            username=username,
            password=password,
            token=token,
            api_key=api_key,
            verify=verify,
        )
        response = client.get_tag(
            tag_id=tag_id,
            with_snapshots=with_snapshots,
        )
        return response.json()
  • Registration of the 'get_tag' tool using FastMCP's @mcp.tool decorator, excluding auth parameters from the tool schema and tagging it as core.
    @mcp.tool(
        exclude_args=[
            "archivebox_url",
            "username",
            "password",
            "token",
            "api_key",
            "verify",
        ],
        tags={"core"},
    )
  • Input schema for the get_tag tool defined using Pydantic Field with descriptions, defaults from environment variables for authentication parameters.
        tag_id: str = Field(
            description="The ID or abid of the tag",
        ),
        with_snapshots: bool = Field(True, description="Whether to include snapshots"),
        archivebox_url: str = Field(
            default=os.environ.get("ARCHIVEBOX_URL", None),
            description="The URL of the ArchiveBox instance",
        ),
        username: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_USERNAME", None),
            description="Username for authentication",
        ),
        password: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_PASSWORD", None),
            description="Password for authentication",
        ),
        token: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_TOKEN", None),
            description="Bearer token for authentication",
        ),
        api_key: Optional[str] = Field(
            default=os.environ.get("ARCHIVEBOX_API_KEY", None),
            description="API key for authentication",
        ),
        verify: Optional[bool] = Field(
            default=to_boolean(os.environ.get("ARCHIVEBOX_VERIFY", "True")),
            description="Whether to verify SSL certificates",
        ),
    ) -> dict:
  • Supporting Api.get_tag method in the ArchiveBox client class that performs an authenticated HTTP GET request to retrieve the specific tag from the ArchiveBox API endpoint.
    def get_tag(self, tag_id: str, with_snapshots: bool = True) -> requests.Response:
        """
        Get a specific Tag by id or abid
    
        Args:
            tag_id: The ID or abid of the tag.
            with_snapshots: Whether to include snapshots (default: True).
    
        Returns:
            Response: The response object from the GET request.
    
        Raises:
            ParameterError: If the provided parameters are invalid.
        """
        try:
            response = self._session.get(
                url=f"{self.url}/api/v1/core/tag/{tag_id}",
                params={"with_snapshots": with_snapshots},
                headers=self.headers,
                verify=self.verify,
            )
        except ValidationError as e:
            raise ParameterError(f"Invalid parameters: {e.errors()}")
        return response

Latest Blog Posts

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/Knuckles-Team/archivebox-api'

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