Skip to main content
Glama
README.md
# iaas-conversion-mcp

A Model Context Protocol (MCP) server that converts Confluence pages into standardized formats for the IaaS Storage team.

## What it does

Exposes tools to GitHub Copilot (or any MCP client) that provide:
- Template scaffolds in Confluence HTML format
- Section mapping rules for converting unstructured How-To pages
- Label taxonomies for each document type
- Step-by-step conversion workflows that pair with the [Atlassian MCP](https://mcp.atlassian.com)

## Templates included

| Template | Use for |
|---|---|
| `playbook` | Deployment/rebuild procedures with CHG, phases, validation, rollback |
| `runbook` | Recurring operational tasks and on-call procedures |
| `how-to` | Reference guides, tooling docs — no change control required |

## Tools exposed

| Tool | Description |
|---|---|
| `list_templates` | List all available templates with descriptions and label sets |
| `get_template` | Get the HTML scaffold and section guide for a template |
| `get_conversion_guidance` | Get section mapping rules and workflow for a specific conversion |
| `get_labels` | Get the recommended label set for a template type |

## Setup

### Prerequisites
- Python 3.11+
- A Python virtual environment
- The [Atlassian MCP](https://mcp.atlassian.com) connected in VS Code for publishing

### Install

```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```

### Wire into VS Code `mcp.json`

```json
"iaas-conversion-mcp": {
  "type": "stdio",
  "command": "/path/to/.venv/bin/python",
  "args": ["/path/to/iaas-conversion-mcp/server.py"]
}
```

## Usage

In GitHub Copilot chat:

```
Using the playbook template, convert page https://yoursite.atlassian.net/wiki/spaces/SPACE/pages/12345/Page+Title
```

Copilot will:
1. Call `get_conversion_guidance` to load the mapping rules
2. Fetch the source page via the Atlassian MCP
3. Map and transform the content
4. Create a draft page in Confluence via the Atlassian MCP
5. Return the draft URL for review before publishing

## Adding templates

Drop a new `.json` file into `templates/` following the schema of any existing template. The server picks it up automatically — no code changes needed.

### Template schema

```json
{
  "name": "Human-readable template name",
  "description": "When to use this template",
  "labels": [
    { "name": "label-name", "rationale": "Why this label belongs here" }
  ],
  "sections": [
    { "heading": "Section Title", "description": "What goes here", "required": true }
  ],
  "section_mappings": [
    {
      "target_section": "Section Title",
      "source_hints": "What to look for in the source page",
      "if_missing": "What to do if no matching content is found"
    }
  ],
  "conversion_instructions": "Overall rules for the conversion",
  "html_scaffold": "<h1>Template HTML...</h1>"
}
```