Skip to main content
Glama
README.md
# Word MCP Server

A FastAPI-based Word document generation server with full MCP (Model Context Protocol) support.

## Features

- **REST API** for document creation and management
- **MCP Protocol Support** for integration with MCP-compatible clients
- **Markdown Support** in documents
- **Multiple Templates** (standard, report, memo, letter)
- **Chat Export** functionality to convert conversations to Word documents
- **Health Check** endpoint for monitoring

## API Endpoints

### Health Check
- `GET /health` - Service health status

### Document Operations
- `POST /word/create` - Create a new Word document
- `POST /word/create-from-chat` - Create a document from chat messages
- `GET /word/list` - List all documents
- `GET /word/download/{filename}` - Download a document
- `DELETE /word/delete/{filename}` - Delete a document

### MCP Protocol
- `POST /mcp` - MCP JSON-RPC 2.0 endpoint

### Service Info
- `GET /` - Root endpoint with service information
- `GET /tools` - Get available tools

## Deployment

### Docker Compose

```bash
cd word-mcp-server
docker-compose build
docker-compose up -d
```

The service will be available at `https://word.mac.mndambuki.me.ke` via Traefik.

### Local Development

```bash
pip install -r requirements.txt
python server.py
```

The server will run on `http://localhost:8004`

## MCP Protocol Support

The server implements the MCP JSON-RPC 2.0 protocol with the following methods:

- `initialize` - Initialize the MCP connection
- `tools/list` - List available tools
- `tools/call` - Call a tool
- `resources/list` - List available resources
- `resources/read` - Read a resource

## Example Requests

### Create a Document (REST)

```bash
curl -X POST http://localhost:8004/word/create \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My Document",
    "content": "# Heading\n\nThis is a paragraph.",
    "author": "John Doe",
    "template": "standard"
  }'
```

### Create a Document (MCP Protocol)

```bash
curl -X POST http://localhost:8004/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "create_document",
      "arguments": {
        "title": "My Document",
        "content": "# Heading\n\nThis is a paragraph."
      }
    },
    "id": 1
  }'
```

## Environment Variables

- `TZ` - Timezone (default: Africa/Nairobi)
- `PORT` - Server port (default: 8004)

## Requirements

- Python 3.11+
- Docker (for containerized deployment)
- External Traefik network (for Docker Compose)

## Configuration

Documents are stored in `/app/documents` inside the container. In Docker Compose, this can be mounted to a local directory.

## License

MIT