npm package: @iflow-mcp/aem-mcp-server
Description: MCP server for Adobe Experience Manager (AEM) local instance management
Author: Your Name
Latest version: 1.0.0

# AEM MCP Server

A Model Context Protocol (MCP) server for Adobe Experience Manager (AEM) local instance management. This server provides tools to interact with AEM instances, manage packages, check status, and perform common development tasks.

## Features

The AEM MCP server provides the following tools:

### 1. `aem_status`
Check the status of an AEM instance including version, bundle count, and overall health.

**Parameters:**
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

### 2. `aem_install_package`
Install a package (.zip file) in AEM.

**Parameters:**
- `packagePath` (required): Path to the package file (.zip)
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)
- `force` (optional): Force installation (default: false)

### 3. `aem_list_packages`
List all installed packages in AEM.

**Parameters:**
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

### 4. `aem_create_page`
Create a new page in AEM.

**Parameters:**
- `parentPath` (required): Parent path where to create the page
- `pageName` (required): Name of the new page
- `pageTitle` (required): Title of the new page
- `template` (required): Template path for the page
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

### 5. `aem_replicate_content`
Replicate content to publish instance (activate/deactivate).

**Parameters:**
- `path` (required): Content path to replicate
- `action` (optional): Replication action - 'activate' or 'deactivate' (default: activate)
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

### 6. `aem_query_content`
Query content using JCR-SQL2 or XPath.

**Parameters:**
- `query` (required): Query string (JCR-SQL2 or XPath)
- `type` (optional): Query type - 'JCR-SQL2' or 'xpath' (default: JCR-SQL2)
- `limit` (optional): Maximum number of results (default: 20)
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

### 7. `aem_bundle_status`
Check OSGi bundle status.

**Parameters:**
- `bundleId` (optional): Specific bundle ID or symbolic name
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

### 8. `aem_clear_cache`
Clear various AEM caches.

**Parameters:**
- `cacheType` (optional): Type of cache to clear - 'dispatcher', 'clientlibs', or 'all' (default: all)
- `host` (optional): AEM host (default: localhost)
- `port` (optional): AEM port (default: 4502)
- `username` (optional): AEM username (default: admin)
- `password` (optional): AEM password (default: admin)

## Installation

1. Clone or download this repository
2. Install dependencies:
   ```bash
   npm install
   ```
3. Build the project:
   ```bash
   npm run build
   ```

## Usage

### Running the Server
```bash
npm start
```

### Development Mode
```bash
npm run dev
```

## Configuration

The server uses default AEM credentials (admin/admin) and connects to localhost:4502 by default. You can override these settings by providing different parameters when calling the tools.

## Example Usage

Once the MCP server is configured and running, you can use the tools through your MCP client:

- Check AEM status: `aem_status`
- Install a package: `aem_install_package` with `packagePath: "/path/to/package.zip"`
- Create a page: `aem_create_page` with required parameters
- Query content: `aem_query_content` with `query: "SELECT * FROM [cq:Page]"`

## Requirements

- Node.js 18+
- TypeScript
- Running AEM instance (local or remote)
- Appropriate AEM credentials

## License

MIT License