obsidian_delete_file
Delete files or directories from your Obsidian vault using the MCP server. Specify the filepath and confirm to remove unwanted content.
Instructions
Delete a file or directory from the vault.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | Path to the file or directory to delete (relative to vault root) | |
| confirm | Yes | Confirmation to delete the file (must be true) |
Implementation Reference
- src/mcp_obsidian/tools.py:356-371 (handler)The `run_tool` method executes the tool logic: validates input arguments `filepath` and `confirm`, calls the Obsidian API to delete the file, and returns a success message.def run_tool(self, args: dict) -> Sequence[TextContent | ImageContent | EmbeddedResource]: if "filepath" not in args: raise RuntimeError("filepath argument missing in arguments") if not args.get("confirm", False): raise RuntimeError("confirm must be set to true to delete a file") api = obsidian.Obsidian(api_key=api_key, host=obsidian_host) api.delete_file(args["filepath"]) return [ TextContent( type="text", text=f"Successfully deleted {args['filepath']}" ) ]
- src/mcp_obsidian/tools.py:334-354 (schema)The `get_tool_description` method defines the tool's schema, including input parameters `filepath` (string, path) and `confirm` (boolean, required).def get_tool_description(self): return Tool( name=self.name, description="Delete a file or directory from the vault.", inputSchema={ "type": "object", "properties": { "filepath": { "type": "string", "description": "Path to the file or directory to delete (relative to vault root)", "format": "path" }, "confirm": { "type": "boolean", "description": "Confirmation to delete the file (must be true)", "default": False } }, "required": ["filepath", "confirm"] } )
- src/mcp_obsidian/server.py:51-51 (registration)Registers an instance of `DeleteFileToolHandler` (named 'obsidian_delete_file') with the MCP server via `add_tool_handler`.add_tool_handler(tools.DeleteFileToolHandler())
- src/mcp_obsidian/tools.py:331-332 (registration)The `__init__` method sets the tool name to 'obsidian_delete_file' by calling the base class constructor.def __init__(self): super().__init__("obsidian_delete_file")