Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AEM Assets MCP ServerSearch for assets related to 'Electric Vehicle' and show their details."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AEM Assets MCP Server
A Model Context Protocol (MCP) server for Adobe Experience Manager (AEM) Assets Author API built with Python and FastAPI. Can be deployed to Vercel (Phase 1) or Google Cloud Run (Phase 2) and used with ChatGPT.
๐ Features
This MCP server provides tools to interact with AEM Assets:
List folders - Browse folders in your AEM Assets repository
List published assets - Find all assets that have been published
Search assets - Search for assets by keywords (e.g., "Electric Vehicle")
List assets by folder - Get all assets within a specific folder
Bulk update metadata - Update metadata for all assets in a folder
List assets by creator - Find assets uploaded by a specific user
Get asset details - Retrieve detailed information about a specific asset
๐ Prerequisites
General Requirements
Adobe Experience Manager Assets Author API Access
AEM base URL
OAuth Server-to-Server credentials:
Client ID (API Key)
Client Secret
Scopes
See GET_CREDENTIALS.md for how to obtain these
Python 3.11+
Phase 1 Requirements (Vercel)
Vercel account
ChatGPT Plus/Pro (to use MCP servers)
Phase 2 Requirements (Google Cloud Run)
Google Cloud Platform account
gcloudCLI installedTerraform installed (for infrastructure as code)
Docker installed
GitHub account (for CI/CD)
๐ ๏ธ Tech Stack
Python 3.11 - Core language
FastAPI - Modern async web framework
HTTPX - Async HTTP client
Pydantic - Data validation
OAuth Server-to-Server - Automatic token refresh
Docker - Containerization
Terraform - Infrastructure as Code
GitHub Actions - CI/CD
๐ Project Structure
๐ Quick Start
Local Development
Clone the repository:
Create virtual environment:
Install dependencies:
Configure environment:
See GET_CREDENTIALS.md for how to get your OAuth credentials.
Run locally:
Visit http://localhost:8000 to see the server info.
Docker Development
๐ฆ Phase 1: Deploy to Vercel
See DEPLOYMENT_VERCEL.md for detailed instructions.
Quick steps:
Your API will be available at: https://your-project.vercel.app/api/mcp
๐๏ธ Phase 2: Deploy to Google Cloud Run
See DEPLOYMENT_CLOUDRUN.md for detailed instructions.
Option 1: Using GitHub Actions (Recommended)
Set up GCP and GitHub Secrets
Push to main branch - Automatically deploys
Service URL will be shown in Actions log
Option 2: Using Terraform
Option 3: Manual Docker Deployment
๐ง Configuration
Environment Variables
Create a .env file with:
Get AEM Credentials
Quick Setup:
Manual Setup:
See GET_CREDENTIALS.md for detailed instructions.
Summary:
Go to Adobe Developer Console
Create/select project
Add "AEM Assets Author API"
Configure "OAuth Server-to-Server" authentication
Copy Client ID and Client Secret
Copy Scopes from the credential page
Key Benefits:
โ Automatic token refresh (every ~1 hour)
โ No manual token management
โ Production-ready authentication
โ Based on Adobe's OAuth S2S guide
๐ค Connect to ChatGPT
See CHATGPT_SETUP.md for complete integration guide.
Quick summary:
Create Custom GPT in ChatGPT
Add Action with OpenAPI schema
Point to your deployed URL
Test with natural language prompts
๐ฌ Usage Examples
Once connected to ChatGPT:
๐ API Reference
Endpoints
GET /- Server informationGET /api/mcp- Server informationPOST /api/mcp- Execute MCP toolGET /health- Health check
Available Tools
1. list_folders
2. list_published_assets
3. search_assets
4. list_assets_by_folder
5. bulk_update_metadata
6. list_assets_by_creator
7. list_all_assets
8. get_asset_details
๐งช Testing
Manual Testing
Run Tests (when available)
๐ Security
โ Environment variables for credentials
โ CORS configured for API access
โ Secret Manager for Cloud Run
โ Service Account with minimal permissions
โ HTTPS enforced
Important:
Never commit
.envorterraform.tfvarsRotate AEM tokens regularly
Use Workload Identity Federation for GitHub Actions
Restrict Cloud Run access as needed
๐ Troubleshooting
Common Issues
Import errors in FastAPI:
Docker build fails:
Terraform errors:
Cloud Run deployment fails:
Check Secret Manager has correct values
Verify service account permissions
Check Artifact Registry has image
Review Cloud Run logs
๐ Additional Documentation
DEPLOYMENT_VERCEL.md - Phase 1 deployment guide
DEPLOYMENT_CLOUDRUN.md - Phase 2 deployment guide
CHATGPT_SETUP.md - ChatGPT integration guide
๐ค Contributing
Fork the repository
Create feature branch
Make changes
Test thoroughly
Submit pull request
๐ License
MIT License - See LICENSE file for details
๐ Resources
๐ก Tips
Start with Phase 1 (Vercel) for quick testing
Use Terraform for reproducible infrastructure
Monitor logs in Cloud Run console
Set up alerts for production deployments
Use Secret Manager for all sensitive data
Need Help? Check the documentation files or open an issue on GitHub.