# Community MCP Server for Adobe Express Add-on Developers
This is a Model Context Protocol (MCP) server designed for Adobe Express Add-on developers. It provides developer-focused tools to assist with building Adobe Express add-ons and integrating with Adobe Express SDK.
[](https://mseep.ai/app/7bcb9afb-5bbc-46d8-b7a1-b4e029896cc3)
## Features
The server provides the following tools:
### Developer Tools
1. **Scaffold Add-on Project** - Create a new Adobe Express add-on project based on sample templates
2. **Get Code Examples** - Retrieve code examples for common Adobe Express add-on features (dynamically fetched from GitHub when in GitHub mode)
3. **Implement Feature** - Get implementation guidance for adding specific features to an Adobe Express add-on
### Documentation Tools
1. **Get Assistant Capabilities** - Get information about the assistant's capabilities
2. **Set Knowledge Source** - Switch between GitHub API and local documentation modes
3. **Query Documentation** - Search Adobe Express SDK and Spectrum Web Components documentation
## Installation
You can install the Adobe Express MCP Server in several ways:
### Method 1: Install from NPM
```bash
# Install globally
npm install -g community-express-dev-mcp
# Run the VS Code installation script
express-mcp-install
```
### Method 2: Install from GitHub
```bash
# Clone the repository
git clone https://github.com/EnventDigital/community-express-dev-mcp.git
cd community-express-dev-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run the VS Code installation script
npm run install-in-vscode
```
### Method 3: Install in a specific VS Code workspace
If you want to use the MCP server in a specific VS Code workspace:
```bash
# If installed globally from NPM:
cd /path/to/your/project
express-mcp-workspace
# If installed from GitHub:
cd /path/to/your/project
/path/to/community-express-dev-mcp/scripts/install-to-workspace.js
```
This will create a `.vscode/mcp.json` file in your project that configures the Adobe Express MCP server for that workspace.
## Development
```bash
# Build the project
npm run build
# Start the server in development mode
npm run dev
# Start the server
npm start
# Parse documentation repositories for local mode
npm run parse-docs
```
## Documentation Sources
This MCP server can access documentation from two sources:
### 1. GitHub Mode (Default)
In GitHub mode, the server uses the GitHub API to search and fetch documentation from:
- [Adobe Express Add-ons Documentation](https://github.com/AdobeDocs/express-add-ons-docs)
- [Spectrum Web Components](https://github.com/adobe/spectrum-web-components)
To use GitHub mode, you need to create a GitHub Personal Access Token (PAT) and add it to your `.env` file:
```bash
MCP_GITHUB_PAT=your_github_token_here
```
### 2. Local Mode
In local mode, the server uses pre-parsed documentation stored in a local knowledge base file. To generate this file:
1. Clone the documentation repositories:
```bash
mkdir -p adobe-docs-repo
git clone https://github.com/AdobeDocs/express-add-ons-docs.git adobe-docs-repo/express-add-ons-docs
git clone https://github.com/adobe/spectrum-web-components.git adobe-docs-repo/spectrum-web-components
```
2. Build the project and run the parser:
```bash
npm run build
npm run parse-docs
```
3. This creates a `dist/knowledge_base.json` file with parsed documentation.
You can switch between modes using the "setKnowledgeSource" tool or by setting the `KNOWLEDGE_SOURCE_MODE` in your `.env` file.
## Usage with Claude for Desktop
To use this MCP server with Claude for Desktop:
1. Build the project using `npm run build`
2. Open/create Claude for Desktop configuration file:
- Mac: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
You can create/edit this file with VS Code:
```bash
# For Mac
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# For Windows
code %APPDATA%\Claude\claude_desktop_config.json
```
3. Add the server configuration:
```json
{
"mcpServers": {
"adobe-express": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/community-express-dev-mcp/dist/index.js"
]
}
}
}
```
4. Replace `/ABSOLUTE/PATH/TO/` with the actual path to your project.
For example:
```
"/Users/username/Documents/community-express-dev-mcp/dist/index.js"
```
5. Save the file and restart Claude for Desktop
6. When you open Claude, you should see a hammer icon, indicating that MCP tools are available:

7. You can now use prompts like "Help me scaffold a dialog add-on project" or "Show me code examples for the Dialog API" and Claude will use the developer tools
## Example Prompts
Here are some example prompts to try with Claude and this MCP server:
### Developer Tool Examples
- "Help me scaffold a new dialog add-on project"
- "Show me code examples for importing local images in an Adobe Express add-on"
- "How do I implement drag-and-drop functionality in my add-on?"
- "Give me a code example of using the Dialog API"
- "Help me implement OAuth authentication in my Express add-on"
### Documentation Tool Examples
- "What capabilities does this MCP server have?"
- "Search for documentation about Spectrum Web Components buttons"
- "How do I use the Adobe Express SDK in my add-on?"
- "Find documentation about spectrum-tooltip components"
- "Switch to local documentation mode"
## Using with VS Code
This MCP server is configured to work with VS Code's GitHub Copilot agent mode. Follow these steps to use it:
### Prerequisites
- Visual Studio Code (version 1.99 or newer)
- GitHub Copilot extension
- Node.js environment (v18 or newer recommended)
### Setup
#### Option 1: Using the Installation Scripts
The easiest way to set up the MCP server in VS Code is to use one of the installation methods described in the [Installation](#installation) section above. These scripts will:
1. Create the correct configuration for the MCP server
2. Generate a one-click URL to install in VS Code
3. Automatically prompt for the GitHub PAT when needed
#### Option 2: Manual Setup
If you prefer to set up manually:
1. Make sure you've built the project: `npm run build`
2. Configure the server by:
- Using the global MCP configuration in VS Code settings
- OR using the workspace-specific `.vscode/mcp.json` file (already included in this project)
3. In VS Code, ensure the `chat.mcp.enabled` setting is turned on:
- Open settings (Ctrl+, or Cmd+,)
- Search for `chat.mcp.enabled`
- Make sure it's checked
4. Open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P)
5. Run `MCP: List Servers` to see the available servers
6. Start the `adobeExpressDev` server from the list
7. When prompted, enter your GitHub Personal Access Token for accessing code samples
### Usage with Copilot
1. Open the VS Code Chat view (Ctrl+Alt+I or Cmd+I)
2. Select "Agent mode" from the dropdown
3. Click on the "Tools" button to see available tools, including Adobe Express developer tools
4. Ask questions like:
- "Create a new Adobe Express add-on that uses the dialog API"
- "Show me code examples for importing images in an Express add-on"
- "How do I implement OAuth authentication in my add-on?"
The MCP server enhances Copilot with specialized Adobe Express add-on development knowledge and code examples drawn directly from the official samples repository.
## NPM Package
The Adobe Express MCP Server is available as an npm package that you can install globally or as a dependency in your project:
```bash
# Install globally
npm install -g community-express-dev-mcp
# Or install as a dev dependency in your project
npm install --save-dev community-express-dev-mcp
```
After installation, you can use the following commands:
```bash
# Install globally in VS Code
express-mcp-install
# Install in current workspace
express-mcp-workspace
# Show help
express-mcp-help
```
## Troubleshooting
### Error: Tool has no outputSchema but returned structuredContent
If you encounter this error:
```
Error: MPC -32603: MCP error -32603: Tool queryDocumentation has no outputSchema but returned structuredContent
```
This indicates that the MCP tool is returning structured content but doesn't have an output schema defined correctly. This has been fixed in version 1.0.1+.
Solution:
1. Make sure you're using the latest version of the MCP server
2. Rebuild the server with `npm run build`
3. Restart the MCP server in your editor
If you're still experiencing issues:
1. Check that the output schema format follows the MCP schema format (not using Zod's `.shape` property)
2. Ensure the `structuredContent` object structure matches the defined output schema
3. Test the server locally with the included test script: `npm run test-server`
### Error: "cb is not a function"
This error typically occurs when the callback format is incorrect in a tool function or when the tool's return value doesn't match the expected format.
Solution:
1. Make sure your tool output is in the correct format: `{ structuredContent: {...}, content: [...] }`
2. Avoid using TypeScript interfaces directly as return values; instead, create a plain object that matches the schema
3. Check that all required fields in the output schema are present in the structuredContent object
### Other Common Issues
- **GitHub API Rate Limiting**: If you're in GitHub mode and don't provide a GitHub Personal Access Token (PAT), you may hit rate limits.
- **Knowledge Base Not Loading**: If using local mode, ensure the `knowledge_base.json` file exists in the project root.
- **Command Not Found**: Ensure you've built the project with `npm run build` before trying to run the server.
## License
MIT