Skip to main content
Glama
AgentWong
by AgentWong

delete_entity

Remove an entity and its relationships from the knowledge graph to manage Infrastructure-as-Code components.

Instructions

Remove an entity and its relationships from the knowledge graph

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesEntity ID

Implementation Reference

  • The MCP tool handler for delete_entity. It validates, logs the operation, calls execute_delete_entity, and handles errors by raising McpError.
    async def handle_delete_entity(db: Any, arguments: Dict[str, Any], operation_id: str) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
        """Handle delete_entity tool."""
        try:
            logger.info(
                "Deleting entity",
                extra={
                    "entity_id": arguments.get("entity_id"),
                    "operation_id": operation_id,
                },
            )
    
            # Execute deletion
            return execute_delete_entity(db, arguments)
    
        except Exception as e:
            error_msg = f"Failed to delete entity: {str(e)}"
            logger.error(error_msg, extra={"operation_id": operation_id})
            raise McpError(
                types.ErrorData(
                    code=types.INTERNAL_ERROR,
                    message=error_msg,
                    data={
                        "tool": "delete_entity",
                        "operation_id": operation_id,
                    },
                )
            )
  • JSON schema defining the input parameters for the delete_entity tool, requiring an 'id' string.
    "delete_entity": {
        "type": "object",
        "description": "Remove an entity and its relationships from the knowledge graph",
        "required": ["id"],
        "properties": {"id": {"type": "string", "description": "Entity ID"}},
    },
  • Dictionary registering the delete_entity tool handler along with other entity tools.
    entity_tool_handlers = {
        "create_entity": handle_create_entity,
        "update_entity": handle_update_entity,
        "delete_entity": handle_delete_entity,
        "view_relationships": handle_view_relationships,
    }
  • Helper function called by the handler to perform the deletion logic, invoking the core delete_entity function and returning a TextContent response.
    def execute_delete_entity(
        db: DatabaseManager, arguments: Dict[str, Any]
    ) -> List[TextContent]:
        """Execute delete entity operation."""
        logger.info("Deleting entity", extra={"args": arguments})
    
        success = delete_entity(db, arguments["id"])
        if not success:
            raise DatabaseError(f"Entity not found: {arguments['id']}")
    
        return [TextContent(type="text", text=f"Deleted entity {arguments['id']}")]
  • Core database operation that deletes observations and the entity from the SQLite database, returning success boolean.
    def delete_entity(db: DatabaseManager, entity_id: str) -> bool:
        """Delete an entity and its related observations."""
        try:
            with db.get_connection() as conn:
                conn.execute("BEGIN TRANSACTION")
                conn.execute("DELETE FROM observations WHERE entity_id = ?", (entity_id,))
                cursor = conn.execute("DELETE FROM entities WHERE id = ?", (entity_id,))
                affected = cursor.rowcount > 0
                conn.commit()
                return affected
        except sqlite3.Error as e:
            raise DatabaseError(f"Delete failed: {str(e)}")

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/AgentWong/iac-memory-mcp-server-project'

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