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. |
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. |
inspect_docx_template_styles |
List paragraph and character styles in a .docx template. |
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)
↓
store_feature(db_path, feature_data) ← one call per PRD page
↓
render_srs_docx(template_path, output_path, db_path)
or
render_urs_docx(template_path, output_path, db_path)
The agent never assembles the full context dict. The render tools read directly from the DB.
Requirements
- Python 3.12+
- A classic (non-scoped) Atlassian API token — generate one at id.atlassian.com/manage-profile/security/api-tokens
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",
"feature_name": "Partial Prepayment",
"feature_description": "Partial Prepayment merupakan fitur ...",
"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.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| adins_prd_mcp-0.5.2.tar.gz | 108.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| adins_prd_mcp-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 139.5 kB
Release files / adins_prd_mcp-0.5.2.tar.gz
| Download URL | adins_prd_mcp-0.5.2.tar.gz |
|---|---|
| Size | 108.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bbc89d693dcc00c4f21d0346f7d1ca53b02866904c2073ca0aebbb0979e5fff3
|
|
BLAKE2b-256 checksum How to use checksums |
01f5f5ac701b966df2b7ec69676ae71c65c944a67b98edcb6b92afd54cbae2e2
|
| 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.2-py3-none-any.whl
| Download URL | adins_prd_mcp-0.5.2-py3-none-any.whl |
|---|---|
| Size | 30.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c425a63fc50db54b7dc11c42398e6f2d2d8888073180686e1e684827d0cd5e06
|
|
BLAKE2b-256 checksum How to use checksums |
a727797598f825a9bf63eaed759e1d6a38ee84d724b2281918e39be9564d7e05
|
| 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}
|