Skip to main content
Glama
KazKozDev
by KazKozDev

create_file

Create new Markdown files with specified content and file paths for structured document management in the Markdown Editor MCP Server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
contentNo

Implementation Reference

  • Core implementation of the create_file tool handler. Validates path safety, creates parent directories if needed, writes content to the file, and returns success or error status.
    async def create_file(self, path: str, content: str = "") -> Dict[str, Any]:
        """Create file"""
        # Validate path safety
        error = self._validate_path(path)
        if error:
            return {"error": error}
    
        try:
            abs_path = self._get_abs_path(path)
            # Create parent directories if they don't exist
            parent_dir = os.path.dirname(abs_path)
            if parent_dir:
                os.makedirs(parent_dir, exist_ok=True)
            with open(abs_path, "w", encoding="utf-8") as f:
                f.write(content)
            return {"success": True, "path": path, "size": len(content)}
        except Exception as e:
            return {"error": str(e)}
  • Defines the input schema (path: string required, content: string optional) and output schema (success, path, size) for the create_file tool in the MCP server tool list.
    Tool(
        name="create_file",
        title="Create File",
        inputSchema={
            "type": "object",
            "properties": {
                "path": {
                    "type": "string",
                    "examples": ["./new_document.md", "./notes/todo.md"],
                },
                "content": {
                    "type": "string",
                    "default": "",
                    "examples": ["# New Document\n\nContent here", ""],
                },
            },
            "required": ["path"],
            "additionalProperties": False,
        },
        outputSchema={
            "type": "object",
            "properties": {
                "success": {"type": "boolean"},
                "path": {"type": "string"},
                "size": {"type": "integer"},
            },
        },
    ),
  • Registers and dispatches the create_file tool call by invoking the imported create_file function and wrapping the result in CallToolResult.
    elif name == "create_file":
        res = await create_file(arguments["path"], arguments.get("content", ""))
        return CallToolResult(
            content=[TextContent(type="text", text="File created")],
            structuredContent=res,
            isError="error" in res,
        )
  • Global async wrapper function that delegates to the FileOperationsTool instance's create_file method, used by the server dispatch.
    async def create_file(path: str, content: str = ""):
        return await _instance.create_file(path, content)

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/KazKozDev/markdown-editor-mcp-server'

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