Skip to main content
Glama
PiwikPRO

Piwik PRO MCP Server

Official
by PiwikPRO

apps_delete

Permanently delete an app and all associated data from Piwik PRO analytics. This irreversible action removes the specified app by its UUID.

Instructions

Delete an app from Piwik PRO analytics.

    Warning: This action is irreversible and will permanently delete
    all data associated with the app.

    Args:
        app_id: UUID of the app to delete

    Returns:
        Dictionary containing deletion status:
        - status: "success" if deletion was successful
        - message: Descriptive message about the deletion
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusYesOperation status (success, error, etc.)
messageYesDescriptive message about the operation

Implementation Reference

  • The MCP tool handler function 'apps_delete' decorated with @mcp.tool, which delegates to the delete_app helper.
    @mcp.tool(annotations={"title": "Piwik PRO: Delete App"})
    def apps_delete(app_id: str) -> OperationStatusResponse:
        """Delete an app from Piwik PRO analytics.
    
        Warning: This action is irreversible and will permanently delete
        all data associated with the app.
    
        Args:
            app_id: UUID of the app to delete
    
        Returns:
            Dictionary containing deletion status:
            - status: "success" if deletion was successful
            - message: Descriptive message about the deletion
        """
        return delete_app(app_id)
  • Core helper function implementing the app deletion logic via Piwik PRO API client, handling errors.
    def delete_app(app_id: str) -> OperationStatusResponse:
        try:
            client = create_piwik_client()
            client.apps.delete_app(app_id)
    
            return OperationStatusResponse(status="success", message=f"App {app_id} deleted successfully")
    
        except NotFoundError:
            raise RuntimeError(f"App with ID {app_id} not found")
        except BadRequestError as e:
            raise RuntimeError(f"Failed to delete app: {e.message}")
        except Exception as e:
            raise RuntimeError(f"Failed to delete app: {str(e)}")
  • Registration call to register_app_tools(mcp), which defines and registers the apps_delete tool among app management tools.
    register_app_tools(mcp)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond what annotations provide. While annotations only give a title ('Piwik PRO: Delete App'), the description explicitly warns about irreversible and permanent deletion of all associated data, which is crucial for a destructive operation. It also documents the return format (dictionary with status and message), providing transparency about outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise: it starts with the core purpose, immediately follows with a critical warning, then provides clear parameter and return documentation. Every sentence earns its place with no wasted words, and information is front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a destructive operation with no annotations covering safety, the description provides complete context: purpose, irreversible nature, parameter meaning, and return format. The output schema existence means the description doesn't need to detail return structure, and it adequately addresses the tool's complexity and risks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by clearly explaining the single parameter (app_id as a UUID of the app to delete). It adds semantic meaning that the schema lacks, though it doesn't provide format examples or validation details for the UUID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Delete an app from Piwik PRO analytics') and resource ('app'), distinguishing it from sibling tools like apps_create, apps_get, apps_list, and apps_update. It uses precise language that leaves no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance with a warning about irreversibility and permanent data deletion, clearly indicating when to use this tool (for permanent removal) versus alternatives like apps_update for modifications. It also distinguishes from read-only siblings like apps_get and apps_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/PiwikPRO/mcp'

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