Skip to main content

adins-prd-mcp

MCP server for reading Confluence PRD pages and rendering SRS/URS documents as Word files. Built for use with AI agents in the AdIns SDLC toolchain.

Tools

Confluence tools

Tool Description
get_confluence_page Fetch a page by numeric ID. Returns markdown or raw HTML in context.
get_confluence_page_to_file Fetch a page and write content directly to a local file. Returns path and size only.
search_confluence Search using CQL.
list_confluence_attachments List attachments on a page.
download_confluence_attachment Download an attachment to a local path.
get_confluence_page_ancestors Return the ancestor chain (root → immediate parent).
get_confluence_page_siblings Return sibling pages sharing the same parent.

Database tools

Tool Description
init_document_db Create the SQLite DB and store module-level metadata.
store_feature Parse and store one PRD feature (and its menus) into the DB.
store_feature_from_file Same as store_feature but reads the payload from a local JSON file.
raw_query_exec Execute a raw SQL statement against the DB. Read-only by default; pass write=True for DML/DDL. Results capped at 200 rows.

Render tools

Tool Description
render_srs_docx Render an SRS Word document from the DB.
render_urs_docx Render a URS Word document from the DB.

Workflow

init_document_db(db_path, meta)
  ↓
get_confluence_page_to_file(page_id, output_path)   ← subagent fetches its page to disk
  ↓
store_feature(db_path, feature_data)                ← subagent stores parsed data
  ↓ (up to 5 parallel subagents, one per feature page)
render_srs_docx(template_path, output_path, db_path)
  or
render_urs_docx(template_path, output_path, db_path)

The main agent sets service_order. Each subagent sets feature_order from its sibling position in the Confluence page tree. Menu order is derived from list position. The agent never assembles the full context dict. The render tools read directly from the DB.


Requirements


Configuration

Set these environment variables before running:

Variable Description Example
CONFLUENCE_BASE_URL Your Atlassian site URL https://yourcompany.atlassian.net
CONFLUENCE_EMAIL Account email you@yourcompany.com
CONFLUENCE_API_TOKEN Classic API token ATATT3x...

Usage

With uvx (recommended)

{
  "mcpServers": {
    "adins-prd-mcp": {
      "command": "uvx",
      "args": ["adins-prd-mcp"],
      "env": {
        "CONFLUENCE_BASE_URL": "https://yourcompany.atlassian.net",
        "CONFLUENCE_EMAIL": "you@yourcompany.com",
        "CONFLUENCE_API_TOKEN": "your-token-here"
      }
    }
  }
}

With a local install

{
  "mcpServers": {
    "adins-prd-mcp": {
      "command": "python",
      "args": ["-m", "adins_prd_mcp.server"],
      "cwd": "/path/to/mcp",
      "env": {
        "CONFLUENCE_BASE_URL": "https://yourcompany.atlassian.net",
        "CONFLUENCE_EMAIL": "you@yourcompany.com",
        "CONFLUENCE_API_TOKEN": "your-token-here"
      }
    }
  }
}

store_feature payload shape

{
  "db_path": "output/LMS-1.5.db",
  "feature_data": {
    "source_id": "935559172",
    "source_version": 24,
    "raw_content_path": "output/LMS-1.5/935559172/raw.md",
    "service_name": "Amendment",
    "service_style": "standard",
    "service_order": 0,
    "feature_name": "Partial Prepayment",
    "feature_description": "Partial Prepayment merupakan fitur ...",
    "feature_order": 2,
    "process_flow_image_path": "output/LMS-1.5/935559172/process-flow.png",
    "menus": [
      {
        "title": "Partial Prepayment Request",
        "actor": "Operation Staff",
        "description": "Menu for submitting a partial prepayment request.",
        "figma_url": "[Figma - Partial Prepayment Request](https://www.figma.com/proto/...)",
        "constraints": [
          {
            "group": "Ada beberapa persyaratan:",
            "children": [
              {"text": "Status agreement tidak sedang dalam proses lain."},
              {"text": "Belum mencapai maksimal amendment limit."}
            ]
          }
        ],
        "boundaries": [
          {"group": "", "children": [{"text": "Fitur ini belum support untuk kontrak syariah."}]}
        ],
        "actions": [
          {"action": "Submit", "description": "Submit the prepayment request for approval."}
        ],
        "scenarios": [
          {"no": "1", "scenario": "Submit with valid data.", "expectation": "Request saved with status Pending."}
        ],
        "gaps": [
          {
            "number": "GAP-001",
            "title": "Prepayment amount validation",
            "summary": "Current system does not validate prepayment amount.",
            "current_system": "No validation exists.",
            "system_solution": "Add server-side validation."
          }
        ]
      }
    ]
  }
}

Development

uv sync
uv run adins-prd-mcp

Publishing

uv build
uv publish

Release files for adins-prd-mcp 0.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adins-prd-mcp 0.5.5
File Size Uploaded
adins_prd_mcp-0.5.5.tar.gz 113.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for adins-prd-mcp 0.5.5
File Interpreter ABI Platform
adins_prd_mcp-0.5.5-py3-none-any.whl Python 3 none any Details

Total release size: 148.7 kB

Release files / adins_prd_mcp-0.5.5.tar.gz

Download URL adins_prd_mcp-0.5.5.tar.gz
Size 113.2 kB
Tags Source
SHA-256 checksum
How to use checksums
51181d2259aca1a3323320e0b5fc6e35edf57a2f139b0dc7e155c9eacb98503c
BLAKE2b-256 checksum
How to use checksums
97949edaec748438f3db36f93a9b1eda1444f43fac6a55256b9fb7cdd9eb1b8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / adins_prd_mcp-0.5.5-py3-none-any.whl

Download URL adins_prd_mcp-0.5.5-py3-none-any.whl
Size 35.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2528a86e791e929c30c6087cc9903c5fec8f725a3c1f484d3c211c2a9172a96d
BLAKE2b-256 checksum
How to use checksums
8132293342f5a6b75e4430d6c7a39569d728d17475ddcda3559323e442eb5dea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.5.7

2 release files

0.5.6

2 release files

This release

0.5.5 This release

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page