Skip to main content
Glama
ZeroPathAI

ZeroPath MCP Server

Official
by ZeroPathAI

archive_issue

Archive security issues to remove them from active view in the ZeroPath MCP Server. Use this tool to manage and organize security findings by archiving specific issues.

Instructions

Archive a security issue to remove it from active view.

Args:
    issue_id: The ID of the issue to archive

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_idYes

Implementation Reference

  • The handler function for the 'archive_issue' tool. It validates the issue_id, makes an authenticated POST request to the ZeroPath API endpoint 'issues/archive', and returns success or error messages based on the response.
    @mcp.tool()
    def archive_issue(issue_id: str) -> str:
        """
        Archive a security issue to remove it from active view.
    
        Args:
            issue_id: The ID of the issue to archive
        """
        if not issue_id:
            return "Error: Issue ID is required"
    
        response, error = make_api_request(
            "issues/archive",
            {"issueId": issue_id}
        )
    
        if error:
            return error
    
        if response.status_code == 200:
            return f"Issue {issue_id} archived successfully"
        elif response.status_code == 401:
            return "Error: Unauthorized - check API credentials"
        elif response.status_code == 400:
            return f"Error: Bad request - {response.text}"
        else:
            return f"Error: API returned status {response.status_code}: {response.text}"
  • The @mcp.tool() decorator registers the archive_issue function as an MCP tool.
    @mcp.tool()
  • Helper function used by archive_issue to perform authenticated API requests to the ZeroPath service.
    def make_api_request(endpoint, payload=None, include_org=True):
        """Make authenticated API request to ZeroPath."""
        if not token_id or not token_secret:
            return None, "Error: Zeropath API credentials not found in environment variables"
    
        headers = {
            "X-ZeroPath-API-Token-Id": token_id,
            "X-ZeroPath-API-Token-Secret": token_secret,
            "Content-Type": "application/json"
        }
    
        if payload is None:
            payload = {}
    
        if include_org and org_id:
            payload["organizationId"] = org_id
    
        try:
            response = requests.post(
                f"{API_BASE_URL}/{endpoint}",
                headers=headers,
                json=payload
            )
            return response, None
        except Exception as e:
            return None, f"Error: {str(e)}"
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('archive') and outcome ('remove from active view'), but doesn't cover critical aspects like whether archiving is reversible (though 'unarchive_issue' exists as a sibling), permission requirements, side effects, or what happens to archived data.

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

Conciseness4/5

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

The description is appropriately concise with two sentences: one stating the purpose and outcome, and another documenting the parameter. It's front-loaded with the core functionality. The 'Args' section is clear but could be integrated more seamlessly.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain the archival process, whether it's permanent or temporary, what 'active view' means, error conditions, or return values. The existence of 'unarchive_issue' as a sibling suggests reversibility, but this isn't stated.

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?

The description includes an 'Args' section that documents the single parameter 'issue_id' with a brief explanation ('The ID of the issue to archive'). With 0% schema description coverage and only one parameter, this adequately compensates for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('archive') and resource ('security issue'), and explains the outcome ('remove it from active view'). It doesn't explicitly differentiate from sibling tools like 'unarchive_issue', but the purpose is unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, consequences, or when to choose 'archive_issue' over other mutation tools like 'mark_false_positive' or 'mark_true_positive'.

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/ZeroPathAI/zeropath-mcp-server'

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