Skip to main content
Glama
nickweedon

Skeleton MCP Server

by nickweedon

delete_item

Remove items from the Skeleton MCP Server by specifying their unique identifier. This tool helps manage data by deleting specific entries when they are no longer needed.

Instructions

Delete an item.

Args: item_id: The unique identifier of the item to delete

Returns: A confirmation message

Raises: ValueError: If the item is not found

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
item_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function for the 'delete_item' tool. It takes an item_id, checks if it exists in mock storage, deletes it, and returns a confirmation dictionary.
    async def delete_item(item_id: str) -> dict[str, Any]:
        """
        Delete an item.
    
        Args:
            item_id: The unique identifier of the item to delete
    
        Returns:
            A confirmation message
    
        Raises:
            ValueError: If the item is not found
        """
        # In a real implementation:
        # client = get_client()
        # return client.delete(f"items/{item_id}")
    
        if item_id not in MOCK_ITEMS:
            raise ValueError(f"Item not found: {item_id}")
    
        del MOCK_ITEMS[item_id]
        return {"status": "deleted", "id": item_id}
  • Registers the delete_item function from the example API module as an MCP tool.
    mcp.tool()(example.delete_item)
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 tool deletes an item and raises an error if not found, which covers basic error handling. However, it lacks critical details: whether deletion is permanent or reversible, what permissions are required, if there are rate limits, what side effects occur (e.g., cascading deletions), or the exact format of the confirmation message. For a destructive operation, this is a significant gap.

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 highly concise and well-structured. It starts with a clear purpose statement, followed by organized sections for Args, Returns, and Raises. Every sentence earns its place by providing essential information without redundancy. The formatting with bullet-like sections enhances readability and front-loads key details effectively.

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

Completeness3/5

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

Given the tool's complexity (a destructive operation with one parameter) and the presence of an output schema (which should cover return values), the description is partially complete. It covers the basic operation and error case but lacks context on behavioral traits like permanence, permissions, or side effects. With no annotations and an output schema, it should do more to compensate for the destructive nature, but the structure is adequate for minimal use.

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

Parameters3/5

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

The description adds minimal semantics beyond the input schema. It explains that 'item_id' is 'The unique identifier of the item to delete', which clarifies the parameter's purpose. However, with 0% schema description coverage and only one parameter, the baseline is 4 for zero parameters, but since there is one parameter, this compensates slightly. The description doesn't provide format examples (e.g., UUID, numeric ID) or constraints beyond what the schema implies.

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 verb ('Delete') and resource ('an item'), making the purpose immediately understandable. It distinguishes from siblings like 'create_item', 'get_item', and 'update_item' by specifying deletion rather than creation, retrieval, or modification. However, it doesn't specify what type of item (e.g., file, record, object) or in what system, leaving some ambiguity.

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 (e.g., the item must exist), exclusions (e.g., cannot delete system items), or comparisons with siblings like 'update_item' for modifications. The only implied usage is when deletion is needed, but no contextual boundaries are defined.

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/nickweedon/mcp_server_template'

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