confluence-assistant
$
npx mdskill add tech-leads-club/agent-skills/confluence-assistantPerform Confluence operations using Atlassian MCP tools
- Search, create, update, and comment on Confluence pages
- Uses Atlassian MCP API for Confluence site interactions
- Determines actions based on user commands and context
- Provides results directly through conversational responses
SKILL.md
.github/skills/confluence-assistantView on GitHub ↗
---
name: confluence-assistant
description: Expert in Confluence operations using Atlassian MCP. Use when the user says "search Confluence", "create a Confluence page", "update a page", "find documentation in Confluence", "list spaces", or "add a comment to a page". Do NOT use for Jira issues, general web search, or local file creation.
license: CC-BY-4.0
metadata:
author: Waldemar Neto - github.com/waldemarnt
version: '1.0.0'
---
# Confluence Assistant
You are an expert in using Atlassian MCP tools to interact with Confluence.
## When to Use
Use this skill when the user asks to:
- Search for Confluence pages or documentation
- Create new Confluence pages
- Update existing Confluence pages
- Navigate or list Confluence spaces
- Add comments to pages
- Get details about specific pages
## Configuration
**Project Detection Strategy (Automatic):**
1. **Check conversation context first**: Look for Cloud ID or Confluence URL already mentioned
2. **If not found**: Ask the user to provide their Cloud ID or Confluence site URL
3. **Use detected values** for all Confluence operations in this conversation
### Configuration Detection Workflow
When you activate this skill:
1. Check if Cloud ID or Confluence URL is already available in the conversation context
2. If not found, ask: "Which Confluence site should I use? Please provide a Cloud ID (UUID) or site URL (e.g. `https://example.atlassian.net/`)"
3. Use the provided value for all operations in this conversation
**Cloud ID format:**
- Can be a site URL (e.g., `https://example.atlassian.net/`)
- Can be a UUID from `getAccessibleAtlassianResources`
## Workflow
### 1. Finding Content (Always Start Here)
**Use `search` (Rovo Search) first** - it's the most efficient way:
```
search("natural language query about the content")
```
- Works with natural language
- Returns relevant pages quickly
- Most efficient first step
### 2. Getting Page Details
Depending on what you have:
- **If you have ARI** (Atlassian Resource Identifier): `fetch(ari)`
- **If you have page ID**: `getConfluencePage(cloudId, pageId)`
- **To list spaces**: `getConfluenceSpaces(cloudId, keys=["SPACE_KEY"])`
- **For pages in a space**: `getPagesInConfluenceSpace(cloudId, spaceId)`
### 3. Creating Pages
```
createConfluencePage(
cloudId,
spaceId="123456",
title="Page Title",
body="# Markdown Content\n\n## Section\nContent here..."
)
```
Always use **Markdown** in the `body` field — never HTML.
### 4. Updating Pages
```
updateConfluencePage(
cloudId,
pageId="123456",
title="Updated Title",
body="# Updated Markdown Content\n\n..."
)
```
Always use **Markdown** in the `body` field — never HTML.
## Best Practices
### ✅ DO
- **Always use Markdown** for page `body` field
- **Use `search` first** before other lookup methods
- **Use natural language** in search queries
- **Validate space exists** before creating pages
- **Include clear structure** in page content (headings, lists, etc.)
### ⚠️ IMPORTANT
- **Don't confuse:**
- Page ID (numeric) vs Space Key (string)
- Space ID (numeric) vs Space Key (CAPS_STRING)
- **CloudId** can be URL or UUID - both work
- **Use detected configuration** - Check conversation context or ask user for Cloud ID / URL
- **ARI format**: `ari:cloud:confluence:site-id:page/page-id`
## Examples
### Example 1: Search and Update a Page
```
User: "Find the API documentation page and add a new section"
1. search("API documentation")
2. getConfluencePage(cloudId, pageId="found-id")
3. updateConfluencePage(
cloudId,
pageId="found-id",
title="API Documentation",
body="# API Documentation\n\n## Existing Content\n...\n\n## New Section\nNew content here..."
)
```
### Example 2: Create a New Page in a Space
```
User: "Create a new architecture decision record"
1. getConfluenceSpaces(cloudId, keys=["TECH"])
2. createConfluencePage(
cloudId,
spaceId="space-id-from-step-1",
title="ADR-001: Use Microservices Architecture",
body="# ADR-001: Use Microservices Architecture\n\n## Status\nAccepted\n\n## Context\n...\n\n## Decision\n...\n\n## Consequences\n..."
)
```
### Example 3: Find and Read Page Content
```
User: "What's in our onboarding documentation?"
1. search("onboarding documentation")
2. getConfluencePage(cloudId, pageId="id-from-results")
3. Summarize the content for the user
```
## Output Format
When creating or updating pages, use well-structured Markdown:
```markdown
# Main Title
## Introduction
Brief overview of the topic.
## Sections
Organize content logically with:
- Clear headings (##, ###)
- Bullet points for lists
- Code blocks for examples
- Tables when appropriate
## Key Points
- Point 1
- Point 2
- Point 3
## Next Steps
1. Step 1
2. Step 2
3. Step 3
```
## Important Notes
- **Markdown is mandatory** — never use HTML or other formats in `body`
- **Search first** — most efficient way to find content
- **Validate IDs** — ensure space/page IDs exist before operations
- **Natural language** — Rovo Search understands intent, not just keywords
- **ID types** — don't confuse page ID (numeric) vs space key (string) vs space ID (numeric)