Skip to main content
Glama

list_docx

Lists all Word documents in a specified directory to help users quickly locate and manage DOCX files within their projects.

Instructions

List all Word documents in a directory.

Args: directory: Directory path to list (defaults to project directory)

Returns: Dictionary with list of documents

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
directoryNo

Implementation Reference

  • The `list_docx` tool handler, which lists Word documents in a directory.
    def list_docx(directory: Optional[str] = None) -> dict[str, Any]:
        """
        List all Word documents in a directory.
    
        Args:
            directory: Directory path to list (defaults to project directory)
    
        Returns:
            Dictionary with list of documents
        """
        logger.info("Listing documents", extra={"tool": "list_docx", "directory": directory})
    
        try:
            if directory is None:
                dir_path = config.project_dir
            else:
                dir_path = normalize_path(directory)
    
            if not dir_path.is_dir():
                raise InvalidParameterError("directory", "Path is not a directory")
    
            documents = []
            for ext in [".docx", ".doc", ".dotx", ".dot"]:
                for file in dir_path.glob(f"**/*{ext}"):
                    try:
                        file_info = get_safe_file_info(str(file))
                        documents.append(file_info)
                    except Exception:
                        # Skip files that can't be accessed
                        continue
    
            logger.info(f"Found {len(documents)} documents", extra={"tool": "list_docx"})
    
            return {
                "status": "success",
                "directory": str(dir_path),
                "count": len(documents),
                "documents": documents,
            }
        except DocxMcpError as e:
            logger.warning(e.message, extra={"tool": "list_docx", "error_code": e.error_code})
            return {"status": "error", "error": e.message, "error_code": e.error_code}
        except Exception as e:
            logger.error(f"Unexpected error listing documents: {str(e)}")
            return {"status": "error", "error": str(e)}
  • The handler for the `list_docx` tool which scans a directory for various Word document file extensions and returns their metadata.
    @app.tool()
    def list_docx(directory: Optional[str] = None) -> dict[str, Any]:
        """
        List all Word documents in a directory.
    
        Args:
            directory: Directory path to list (defaults to project directory)
    
        Returns:
            Dictionary with list of documents
        """
        logger.info("Listing documents", extra={"tool": "list_docx", "directory": directory})
    
        try:
            if directory is None:
                dir_path = config.project_dir
            else:
                dir_path = normalize_path(directory)
    
            if not dir_path.is_dir():
                raise InvalidParameterError("directory", "Path is not a directory")
    
            documents = []
            for ext in [".docx", ".doc", ".dotx", ".dot"]:
                for file in dir_path.glob(f"**/*{ext}"):
                    try:
                        file_info = get_safe_file_info(str(file))
                        documents.append(file_info)
                    except Exception:
                        # Skip files that can't be accessed
                        continue
    
            logger.info(f"Found {len(documents)} documents", extra={"tool": "list_docx"})
    
            return {
                "status": "success",
                "directory": str(dir_path),
                "count": len(documents),
                "documents": documents,
            }
        except DocxMcpError as e:
            logger.warning(e.message, extra={"tool": "list_docx", "error_code": e.error_code})
            return {"status": "error", "error": e.message, "error_code": e.error_code}
        except Exception as e:
            logger.error(f"Unexpected error listing documents: {str(e)}")
            return {"status": "error", "error": str(e)}
  • The tool is registered using `@app.tool()` decorator on the `list_docx` function.
    @app.tool()
    def list_docx(directory: Optional[str] = None) -> dict[str, Any]:

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/Andrew82106/LLM_Docx_Agent_MCP'

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