# Siteleaf

```json
{
  "name": "Siteleaf",
  "slug": "siteleaf",
  "url": "https://composio.dev/toolkits/siteleaf",
  "markdown_url": "https://composio.dev/toolkits/siteleaf.md",
  "logo_url": "https://logos.composio.dev/api/siteleaf",
  "categories": [
    "developer tools & devops"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-08-20T15:34:09.115Z"
}
```

![Siteleaf logo](https://logos.composio.dev/api/siteleaf)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Siteleaf MCP or direct API to list sites, manage pages, update posts, and publish static content through natural language.

## Summary

Siteleaf is a friendly CMS for static sites powered by Jekyll and GitHub sync.
Use it to manage content in a clean editor while keeping fast, versioned static sites.

## Categories

- developer tools & devops

## Toolkit Details

- Tools: 35

## Images

- Logo: https://logos.composio.dev/api/siteleaf

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Siteleaf.
  - Setup:
    - Configure Api Key credentials for Siteleaf.
    - Use the credentials when creating an auth config in Composio.
- **Basic**
  - Type: `basic_auth`
  - Description: Basic authentication for Siteleaf.
  - Setup:
    - Configure Basic credentials for Siteleaf.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- List all Siteleaf pages needing review
- Create Siteleaf post from release notes
- Publish latest Siteleaf draft to site

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SITELEAF_CANCEL_JOB` | Cancel Job | Cancel an active Siteleaf job by job ID. This irreversibly requests that the job stop. |
| `SITELEAF_CREATE_COLLECTION` | Create Collection | Create a content collection in a Siteleaf site. |
| `SITELEAF_CREATE_COLLECTION_FILE` | Create Collection File | Upload one static file to a Siteleaf collection identified by its path. This action cannot create collection documents or content files with YAML front matter. |
| `SITELEAF_CREATE_DOCUMENT` | Create Document | Create a document in a Siteleaf collection with content, taxonomy, metadata, and visibility. |
| `SITELEAF_CREATE_PAGE` | Create Page | Create a page in a Siteleaf site. |
| `SITELEAF_CREATE_ROLE` | Create Role | Grant a Siteleaf user an admin, publisher, or writer role on a site. |
| `SITELEAF_CREATE_SITE` | Create Site | Create a Siteleaf site with its domain, timezone, metadata, and defaults. |
| `SITELEAF_DELETE_COLLECTION` | Delete Collection | Permanently delete a Siteleaf collection by site ID and collection path. This cannot be undone. |
| `SITELEAF_DELETE_DOCUMENT` | Delete Document | Permanently delete a Siteleaf document by ID. This cannot be undone. |
| `SITELEAF_DELETE_PAGE` | Delete Page | Permanently delete a Siteleaf page by ID. This cannot be undone. |
| `SITELEAF_DELETE_ROLE` | Delete Role | Delete a Siteleaf role by ID, removing the user's access to its site. |
| `SITELEAF_DELETE_SITE` | Delete Site | Permanently delete a Siteleaf site by ID. This cannot be undone. |
| `SITELEAF_DELETE_SOURCE` | Delete Source File | Permanently delete one raw source file from a Siteleaf site. Directories and _config.yml are protected and cannot be deleted. |
| `SITELEAF_GET_COLLECTION` | Get Collection | Get a collection by site ID and collection path. |
| `SITELEAF_GET_CURRENT_USER` | Get Current User | Return the Siteleaf user authenticated by the connected API key. |
| `SITELEAF_GET_DOCUMENT` | Get Document | Get a Siteleaf document by ID. |
| `SITELEAF_GET_JOB` | Get Job | Get the complete buffered status stream for a Siteleaf job, including all status events and the latest status details. The call waits until Siteleaf closes the event stream. |
| `SITELEAF_GET_PAGE` | Get Page | Get a Siteleaf page by ID. |
| `SITELEAF_GET_ROLE` | Get Role | Get a Siteleaf site-access role by ID. |
| `SITELEAF_GET_SITE` | Get Site | Get one Siteleaf site by ID, including its settings and current or most recent preview, publish, and synchronization job states. |
| `SITELEAF_GET_SITE_TAXONOMY` | Get Site Taxonomy | Return the unique post tags and categories used by a Siteleaf site. |
| `SITELEAF_GET_SOURCE` | Get Source | Get raw source-file metadata or list a source directory for a Siteleaf site. |
| `SITELEAF_LIST_COLLECTION_FILES` | List Collection Files | Search and list static files in a Siteleaf collection with sorting and agent-controlled pagination. |
| `SITELEAF_LIST_COLLECTIONS` | List Collections | List content collections in a Siteleaf site with agent-controlled pagination. |
| `SITELEAF_LIST_DOCUMENTS` | List Documents | Search and list documents in a Siteleaf collection with visibility, extension, sorting, and pagination filters. |
| `SITELEAF_LIST_PAGES` | List Pages | Search and list pages in a Siteleaf site with visibility, extension, sorting, and pagination filters. |
| `SITELEAF_LIST_SITES` | List Sites | List sites accessible to the connected Siteleaf account, with optional sorting and agent-controlled pagination. |
| `SITELEAF_LIST_SITE_USERS` | List Site Users | List users who have access to a Siteleaf site with agent-controlled pagination. |
| `SITELEAF_PUBLISH_SITE` | Publish Site | Start an asynchronous compile-and-publish job for a Siteleaf site and return its job ID. This publishes externally visible site content and does not wait for job completion. |
| `SITELEAF_UPDATE_COLLECTION` | Update Collection | Update at least one of a collection's title, path, permalink, output behavior, or metadata. |
| `SITELEAF_UPDATE_DOCUMENT` | Update Document | Update at least one of a document's content, path, taxonomy, visibility, metadata, or date. |
| `SITELEAF_UPDATE_PAGE` | Update Page | Update at least one of a page's content, path, visibility, metadata, or publication date. |
| `SITELEAF_UPDATE_ROLE` | Update Role | Change an existing Siteleaf role to admin, publisher, or writer. |
| `SITELEAF_UPDATE_SITE` | Update Site | Update at least one of a site's title, domain, timezone, metadata, or Jekyll content defaults. Hosting credentials and repository sync are intentionally not accepted as agent inputs. |
| `SITELEAF_UPSERT_SOURCE` | Create or Replace Source File | Create or replace one raw source file in a Siteleaf site. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Siteleaf Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Siteleaf actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'List all sites in my Siteleaf account and summarize their names.'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'List all sites in my Siteleaf account and summarize their names.'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Siteleaf
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Siteleaf tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('List all sites in my Siteleaf account and summarize their names.')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'List all sites in my Siteleaf account and summarize their names.'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Siteleaf Integration

- Supports both Siteleaf MCP and direct API based integrations
- Structured, LLM-friendly schemas help agents manage sites, pages, posts, and content with fewer mistakes
- Rich coverage for reading, writing, and querying Siteleaf CMS data without custom integration glue

### 2. Managed Auth

- Secure handling for Siteleaf API key and Basic Auth credentials
- Central place to manage, scope, and revoke Siteleaf access for each user or environment
- No hard-coded CMS credentials inside your agent code, prompts, or deployment scripts

### 3. Agent Optimized Design

- Siteleaf tools are shaped so language models can understand what to call and when
- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs show what content action ran, when it ran, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC controls which agents and users can access Siteleaf
- Scoped, least privilege access to Siteleaf resources like sites, pages, and posts
- Full audit trail of agent actions so teams can review content changes before they become a problem

## Use Siteleaf with any AI Agent Framework

Choose a framework you want to connect Siteleaf with:

None listed.

## Related Toolkits

- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Codeinterpreter](https://composio.dev/toolkits/codeinterpreter) - Codeinterpreter is a Python-based coding environment with built-in data analysis and visualization. It lets you instantly run scripts, plot results, and prototype solutions inside supported platforms.
- [GitHub](https://composio.dev/toolkits/github) - GitHub is a code hosting platform for version control and collaborative software development. It streamlines project management, code review, and team workflows in one place.
- [1password](https://composio.dev/toolkits/_1password) - 1Password is a password manager and digital vault for storing logins, secrets, notes, and secure documents. It helps individuals and teams protect credentials, share access safely, and reduce password risk.
- [Ably](https://composio.dev/toolkits/ably) - Ably is a real-time messaging platform for live chat and data sync in modern apps. It offers global scale and rock-solid reliability for seamless, instant experiences.
- [Abuselpdb](https://composio.dev/toolkits/abuselpdb) - Abuselpdb is a central database for reporting and checking IPs linked to malicious online activity. Use it to quickly identify and report suspicious or abusive IP addresses.
- [Alchemy](https://composio.dev/toolkits/alchemy) - Alchemy is a blockchain development platform offering APIs and tools for Ethereum apps. It simplifies building and scaling Web3 projects with robust infrastructure.
- [Algolia](https://composio.dev/toolkits/algolia) - Algolia is a hosted search API that powers lightning-fast, relevant search experiences for web and mobile apps. It helps developers deliver instant, typo-tolerant, and scalable search without complex infrastructure.
- [Anchor browser](https://composio.dev/toolkits/anchor_browser) - Anchor browser is a developer platform for AI-powered web automation. It transforms complex browser actions into easy API endpoints for streamlined web interaction.
- [Apiflash](https://composio.dev/toolkits/apiflash) - Apiflash is a website screenshot API for programmatically capturing web pages. It delivers high-quality screenshots on demand for automation, monitoring, or reporting.
- [Apiverve](https://composio.dev/toolkits/apiverve) - Apiverve delivers a suite of powerful APIs that simplify integration for developers. It's designed for reliability and scalability so you can build faster, smarter applications without the integration headache.
- [Appcircle](https://composio.dev/toolkits/appcircle) - Appcircle is an enterprise-grade mobile CI/CD platform for building, testing, and publishing mobile apps. It streamlines mobile DevOps so teams ship faster and with more confidence.
- [Appdrag](https://composio.dev/toolkits/appdrag) - Appdrag is a cloud platform for building websites, APIs, and databases with drag-and-drop tools and code editing. It accelerates development and iteration by combining hosting, database management, and low-code features in one place.
- [Appveyor](https://composio.dev/toolkits/appveyor) - AppVeyor is a cloud-based continuous integration service for building, testing, and deploying applications. It helps developers automate and streamline their software delivery pipelines.
- [AWS Marketplace MCP](https://composio.dev/toolkits/aws_marketplace_mcp) - AWS Marketplace MCP provides MCP access to AWS Marketplace's cloud software, data, and services catalog. Use it to discover, compare, and evaluate 30K+ AWS Marketplace listings faster.
- [Backendless](https://composio.dev/toolkits/backendless) - Backendless is a backend-as-a-service platform for mobile and web apps, offering database, file storage, user authentication, and APIs. It helps developers ship scalable applications faster without managing server infrastructure.
- [Baserow](https://composio.dev/toolkits/baserow) - Baserow is an open-source no-code database platform for building collaborative data apps. It makes it easy for teams to organize data and automate workflows without writing code.
- [Bench](https://composio.dev/toolkits/bench) - Bench is a benchmarking tool for automated performance measurement and analysis. It helps you quickly evaluate, compare, and track your systems or workflows.
- [Better stack](https://composio.dev/toolkits/better_stack) - Better Stack is a monitoring, logging, and incident management solution for apps and services. It helps teams ensure application reliability and performance with real-time insights.
- [Bitbucket](https://composio.dev/toolkits/bitbucket) - Bitbucket is a Git-based code hosting and collaboration platform for teams. It enables secure repository management and streamlined code reviews.

## Frequently Asked Questions

### Do I need my own developer credentials to use Siteleaf with Composio?

Yes, Siteleaf requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
