Skip to main content
Glama

MCP-OPENAPI-DOCX

Enterprise-grade document editing and management server supporting MCP (Model Context Protocol) and OpenAPI protocols for DOCX documents.

CI/CD Pipeline Deploy Python Version License

🌟 Features

  • Complete DOCX Support: Full support for reading, writing, and editing Microsoft Word documents

  • MCP Protocol: Implements the Model Context Protocol for AI-powered document operations

  • RESTful API: Comprehensive OpenAPI-compliant REST API with Swagger documentation

  • Async Architecture: Built with FastAPI and async/await for high performance

  • Document Processing: Paragraphs, tables, lists, images, styles, and more

  • Version Control: Track document versions and compare changes

  • Template Management: Create and manage document templates

  • Export Options: Export to PDF, HTML, Markdown, and plain text

  • Comments & Revisions: Add comments and track changes

  • Security: Document encryption, password protection, and permissions

  • Background Tasks: Celery integration for long-running operations

  • Containerized: Docker and Kubernetes ready

πŸ“‹ Table of Contents

πŸš€ Installation

Prerequisites

  • Python 3.10 or higher

  • Docker and Docker Compose (optional)

  • PostgreSQL (optional, SQLite available for development)

  • Redis (for Celery tasks)

# Clone the repository git clone https://github.com/Fu-Jie/MCP-OPENAPI-DOCX.git cd MCP-OPENAPI-DOCX # Create virtual environment python -m venv venv # Activate virtual environment # On Linux/macOS: source venv/bin/activate # On Windows (Command Prompt): venv\Scripts\activate.bat # On Windows (PowerShell): venv\Scripts\Activate.ps1 # Upgrade pip pip install --upgrade pip # Install dependencies pip install -r requirements.txt # Copy environment configuration cp .env.example .env # Run the application python main.py

Using Docker

# Clone the repository git clone https://github.com/Fu-Jie/MCP-OPENAPI-DOCX.git cd MCP-OPENAPI-DOCX # Start with Docker Compose docker-compose up -d # View logs docker-compose logs -f api

πŸƒ Quick Start

Start the API Server

# Method 1: Using main.py (Recommended) python main.py # Method 2: Using uvicorn directly python -m uvicorn src.api.main:app --reload --port 8000 # Production mode with multiple workers python -m uvicorn src.api.main:app --host 0.0.0.0 --port 8000 --workers 4

Access the API

Start the MCP Server

# Run MCP server (for AI integrations) python main.py --mcp

πŸ“– API Documentation

The API provides comprehensive endpoints for document management:

Core Endpoints

Endpoint

Method

Description

/api/v1/documents

GET

List all documents

/api/v1/documents

POST

Create a new document

/api/v1/documents/{id}

GET

Get document details

/api/v1/documents/{id}

PUT

Update document

/api/v1/documents/{id}

DELETE

Delete document

Text Operations

Endpoint

Method

Description

/api/v1/text/{doc_id}/paragraphs

GET

List paragraphs

/api/v1/text/{doc_id}/paragraphs

POST

Add paragraph

/api/v1/text/{doc_id}/paragraphs/{idx}

PUT

Update paragraph

/api/v1/text/{doc_id}/format

POST

Apply formatting

Table Operations

Endpoint

Method

Description

/api/v1/tables/{doc_id}

GET

List tables

/api/v1/tables/{doc_id}

POST

Create table

/api/v1/tables/{doc_id}/{idx}/cell

PUT

Update cell

/api/v1/tables/{doc_id}/{idx}/row

POST

Add row

See the full API Documentation for complete details.

πŸ”Œ MCP Protocol

This server implements the Model Context Protocol for AI integrations:

Available Tools

  • create_document - Create a new DOCX document

  • open_document - Open an existing document

  • add_paragraph - Add a paragraph to a document

  • add_table - Add a table to a document

  • format_text - Apply text formatting

  • search_replace - Search and replace text

  • export_document - Export to various formats

  • And 80+ more tools...

Example Usage

# Using MCP client async with MCPClient("http://localhost:8000/mcp") as client: result = await client.call_tool( "create_document", {"name": "My Document"} )

See the MCP Protocol Guide for detailed usage.

βš™οΈ Configuration

Configuration is managed through environment variables. Copy .env.example to .env:

cp .env.example .env

Key Configuration Options

Variable

Description

Default

DATABASE_URL

Database connection URL

sqlite+aiosqlite:///./docx_db.sqlite

REDIS_URL

Redis connection URL

redis://localhost:6379/0

SECRET_KEY

JWT secret key

(required in production)

DEBUG

Enable debug mode

false

ENVIRONMENT

Environment name

development

UPLOAD_DIR

Upload directory

./uploads

MAX_UPLOAD_SIZE

Max upload size (bytes)

104857600

See .env.example for all available options.

πŸ› οΈ Development

Project Structure

mcp-openapi-docx/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ api/ # FastAPI application β”‚ β”‚ β”œβ”€β”€ routes/ # API endpoints β”‚ β”‚ └── dependencies.py β”‚ β”œβ”€β”€ core/ # Core configuration β”‚ β”œβ”€β”€ database/ # Database setup β”‚ β”œβ”€β”€ handlers/ # DOCX file handlers β”‚ β”œβ”€β”€ mcp/ # MCP server β”‚ β”œβ”€β”€ middleware/ # HTTP middleware β”‚ β”œβ”€β”€ models/ # Data models β”‚ β”œβ”€β”€ services/ # Business logic β”‚ β”œβ”€β”€ tasks/ # Celery tasks β”‚ └── utils/ # Utility functions β”œβ”€β”€ tests/ # Test suite β”œβ”€β”€ docs/ # Documentation β”œβ”€β”€ alembic/ # Database migrations β”œβ”€β”€ kubernetes/ # K8s configurations └── scripts/ # Utility scripts

Running Locally

# Activate virtual environment source venv/bin/activate # On Windows: venv\Scripts\activate # Install dev dependencies pip install -r requirements.txt # Run linting ruff check src/ black --check src/ isort --check-only src/ # Run type checking mypy src/ # Start development server python main.py # Or with auto-reload: python -m uvicorn src.api.main:app --reload

Database Migrations

# Create a new migration alembic revision --autogenerate -m "description" # Apply migrations alembic upgrade head # Rollback alembic downgrade -1

πŸ§ͺ Testing

# Run all tests pytest # Run with coverage pytest --cov=src --cov-report=html # Run specific test file pytest tests/unit/handlers/test_document_handler.py # Run integration tests pytest tests/integration/ -v

🚒 Deployment

docker-compose up -d

Kubernetes

# Apply configurations kubectl apply -f kubernetes/ # Check status kubectl get pods -n docx

Manual Deployment

# Build the image docker build -t mcp-openapi-docx:latest . # Run the container docker run -p 8000:8000 mcp-openapi-docx:latest

See the Deployment Guide for production recommendations.

🀝 Contributing

Contributions are welcome! Please read our contributing guidelines before submitting a pull request.

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Support


Made with ❀️ for the document automation community

-
security - not tested
A
license - permissive license
-
quality - not tested

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/Fu-Jie/MCP-OPENAPI-DOCX'

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