Confluence CLI for AI Agents

Framework Integration Gradient
Confluence Logo
CLI Logo
divider

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 850+ SaaS applications. With Confluence, agents can create a project documentation page in marketing space, add 'urgent' label to q3 planning page, publish team meeting summary as a blog post, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Confluence automation.

Also integrate Confluence with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 850+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Confluence to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Confluence"
  3. Complete the authentication and authorization flow and your Confluence integration is all set.
  4. Start asking anything you want.

Supported Tools & Triggers

Tools
Add Content LabelTool to add labels to a piece of content.
Get Space by IDTool to retrieve a confluence space by its id.
Create BlogpostTool to create a new confluence blog post.
Create Blogpost PropertyTool to create a property on a specified blog post.
Create Whiteboard PropertyTool to create a new content property on a whiteboard.
Create PageTool to create a new confluence page in a specified space.
Create Page PropertyTool to create a property on a confluence page.
Create Private SpaceTool to create a private confluence space.
Create SpaceTool to create a new confluence space.
Create Space PropertyTool to create a new property on a confluence space.
Create WhiteboardTool to create a new confluence whiteboard.
Delete Blogpost PropertyTool to delete a blog post property.
Delete Page Content PropertyTool to delete a content property from a page by property id.
Delete Whiteboard Content PropertyTool to delete a content property from a whiteboard by property id.
Delete PageTool to delete a confluence page.
Delete SpaceTool to delete a confluence space by its key.
Delete Space PropertyTool to delete a space property.
Get Attachment LabelsTool to list labels on an attachment.
Get AttachmentsTool to retrieve attachments of a confluence page.
Get Audit LogsTool to retrieve confluence audit records.
Get Blogpost by IDTool to retrieve a specific confluence blog post by its id.
Get Blogpost LabelsTool to retrieve labels of a specific confluence blog post by id.
Get Blogpost Like CountTool to get like count for a confluence blog post.
Get Blogpost OperationsTool to retrieve permitted operations for a confluence blog post.
Get BlogpostsTool to retrieve a list of blog posts.
Get Blog PostsTool to retrieve a list of blog posts.
Get Blog Posts For LabelTool to list all blog posts under a specific label.
Get Blogpost Version DetailsTool to retrieve details for a specific version of a blog post.
Get Blogpost VersionsTool to retrieve all versions of a specific blog post.
Get Child PagesTool to list all direct child pages of a given confluence page.
Get Blog Post Content PropertiesTool to retrieve all content properties on a blog post.
Get Page Content PropertiesTool to retrieve all content properties on a page.
Get Content RestrictionsTool to retrieve restrictions on a confluence content item.
Get Current UserTool to get information about the currently authenticated user.
Get Inline Comments for Blog PostTool to retrieve inline comments for a confluence blog post.
Get LabelsTool to retrieve all labels in a confluence site.
Get Page LabelsTool to retrieve labels of a specific confluence page by id.
Get Labels for SpaceTool to list labels on a space.
Get Labels for Space ContentTool to list labels on all content in a space.
Get Page AncestorsTool to retrieve all ancestors for a given confluence page by its id.
Get Page by IDTool to retrieve a confluence page by its id.
Get Page Like CountTool to get like count for a confluence page.
Get PagesTool to retrieve a list of pages.
Get Page VersionsTool to retrieve all versions of a specific confluence page.
Get Space by IDTool to retrieve a confluence space by its id.
Get Space ContentsTool to retrieve content in a confluence space.
Get Space PropertiesTool to get properties of a confluence space.
Get SpacesTool to retrieve a list of confluence spaces.
Get Anonymous UserTool to retrieve information about the anonymous user.
Search ContentSearches for content by filtering pages from the confluence v2 api with intelligent ranking.
Search UsersSearches for users using user-specific queries from the confluence query language (cql).
Update BlogpostTool to update a confluence blog post's title or content.
Update Blogpost PropertyTool to update a property of a specified blog post.
Update Page Content PropertyTool to update a content property on a confluence page.
Update Whiteboard Content PropertyTool to update a content property on a whiteboard.
Update PageTool to update an existing confluence page.
Update Space PropertyTool to update a space property.

Universal CLI Commands for Confluence

You can also manually execute CLI commands to interact with your Confluence.

Connect your Confluence account

Link your Confluence account and verify the connection:

bash
# Connect your Confluence account (opens OAuth flow)
composio connected-accounts link confluence

# Verify the connection
composio connected-accounts list --toolkits confluence

Discover Confluence tools

Search and inspect available Confluence tools:

bash
# List all available Confluence tools
composio tools list --toolkit confluence

# Search for Confluence tools by action
composio tools search "confluence"

# Inspect a tool's input schema
composio tools info CONFLUENCE_ADD_CONTENT_LABEL

Common Confluence Actions

Add Content LabelTool to add labels to a piece of content

bash
composio tools execute CONFLUENCE_ADD_CONTENT_LABEL \
  --id "12345678-90ab-cdef-1234-567890abcdef" \
  --labels "<array>"

Get Space by IDTool to retrieve a confluence space by its id

bash
composio tools execute CONFLUENCE_CONFLUENCE_GET_SPACE_BY_ID \
  --id "6278fe1e-d18f-4b2c-8a1a-2c3d4e5f6g7h"

Create BlogpostTool to create a new confluence blog post

bash
composio tools execute CONFLUENCE_CREATE_BLOGPOST \
  --body "<object>" \
  --title "Quarterly Update" \
  --status "current" \
  --spaceId "5f8e8a1d0a7b9c"

Create Blogpost PropertyTool to create a property on a specified blog post

bash
composio tools execute CONFLUENCE_CREATE_BLOGPOST_PROPERTY \
  --id "6278fe1e-d18f-4b2c-8a1a-2c3d4e5f6g7h" \
  --key "customMeta" \
  --value '{"exampleKey":"exampleValue"}'

Set up Confluence Triggers

Listen for events in real time using triggers:

New Attachment AddedTriggers when a new attachment is uploaded to a Confluence page

bash
# Find your connected account ID
composio connected-accounts list --toolkits confluence

# Create a trigger
composio triggers create CONFLUENCE_ATTACHMENT_ADDED_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "limit": 25,
  "interval": 2,
  "mediaType": "image/jpeg"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits confluence --table

Blog Post Added to LabelTriggers when a new blog post is added to a specific label in Confluence

bash
# Find your connected account ID
composio connected-accounts list --toolkits confluence

# Create a trigger
composio triggers create CONFLUENCE_BLOG_POST_ADDED_TO_LABEL_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "limit": 25,
  "interval": 2,
  "label_id": "50888706"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits confluence --table

Blogpost Inline Comment AddedTriggers when a new inline comment is added to a Confluence blog post

bash
# Find your connected account ID
composio connected-accounts list --toolkits confluence

# Create a trigger
composio triggers create CONFLUENCE_BLOGPOST_INLINE_COMMENT_ADDED_TRIGGER \
  --connected-account-id <your-connected-account-id> \
  --trigger-config '{
  "interval": 2,
  "body_format": "storage",
  "blog_post_id": "123456789"
}'

# Listen for trigger events in real time
composio triggers listen --toolkits confluence --table

Generate Type Definitions

Generate typed schemas for Confluence tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits confluence

# TypeScript
composio ts generate --toolkits confluence

# Python
composio py generate --toolkits confluence

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Confluence operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects

How to build Confluence MCP Agent with another framework

FAQ

What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 850+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Confluence and other connected apps.

How is the CLI different from using an MCP server for Confluence?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

How safe is my Confluence data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Confluence data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.