---
title: AI Tools
description: Connect Claude, ChatGPT, and other AI assistants to your EmDash site.
---

import { Aside, Steps, Tabs, TabItem, LinkCard } from "@astrojs/starlight/components";

EmDash has a built-in [MCP server](https://modelcontextprotocol.io) that lets AI assistants work directly with your site's content. You can ask Claude, ChatGPT, or other tools to draft posts, update pages, manage media, search your content, and more -- all through natural conversation.

## Setting Up

Your site's MCP server URL is:

```
https://example.com/_emdash/api/mcp
```

Replace `example.com` with your domain. For local development, use `http://localhost:4321/_emdash/api/mcp`.

<Tabs>
<TabItem label="Claude">

Connectors added in [claude.ai](https://claude.ai) work in both the web app and Claude Desktop.

<Steps>

1. Go to [Settings > Connectors](https://claude.ai/settings/connectors)

2. Click **Add custom connector**

3. Enter your site's MCP server URL

4. Click **Add** -- your browser opens for you to log in and approve access

5. Start a new conversation, click **+** in the chat input, then **Connectors**, and toggle your site on

</Steps>

For Team and Enterprise plans, an Owner first adds the connector from [Admin Settings > Connectors](https://claude.ai/admin-settings/connectors). Members then connect individually from their own settings.

</TabItem>
<TabItem label="ChatGPT">

ChatGPT supports MCP servers on Pro, Business, and Enterprise plans.

<Steps>

1. Go to **Settings > Apps & Connectors > Advanced settings** and enable **Developer Mode**

2. Go to **Settings > Connectors > Create**

3. Enter a name, description, and your site's MCP server URL

4. Click **Create**

5. In a conversation, click **+** near the composer, then **More**, and select your connector

</Steps>

</TabItem>
</Tabs>

<Aside>
	Using a coding tool like VS Code, Cursor, or Windsurf? See the [MCP Server Reference](/reference/mcp-server) for configuration details.
</Aside>

## What You Can Do

Once connected, you can ask the AI assistant to perform any of these operations in natural language. You don't need to know the tool names -- just describe what you want.

### Content

- **Browse content** -- "Show me the latest 10 blog posts" or "Find all draft pages"
- **Read content** -- "Get the post called 'hello-world' and summarize it"
- **Create content** -- "Write a new blog post about our summer sale" or "Create a draft page for the About section"
- **Edit content** -- "Update the pricing page to mention the new plan" or "Fix the typo in the FAQ post"
- **Publish and schedule** -- "Publish the summer sale post" or "Schedule the announcement for June 1st at 9am"
- **Compare versions** -- "Show me what changed in the homepage since it was last published"
- **Manage drafts** -- "Discard the draft changes on the about page" or "Duplicate the newsletter template"
- **Translations** -- "What translations exist for the welcome post?" (when i18n is enabled)

### Media

- **Browse media** -- "List all uploaded images" or "Show me PDFs in the media library"
- **Check details** -- "Get the details for this media item"
- **Update metadata** -- "Set the alt text on the hero image to 'Mountain sunset'"
- **Remove files** -- "Delete the old banner image"

### Search

- **Find content** -- "Search for posts mentioning 'accessibility'" or "Find anything about TypeScript across all collections"

### Taxonomies

- **Browse** -- "List all categories" or "Show me the tags"
- **Create terms** -- "Add a 'tutorials' tag" or "Create a 'Frontend' subcategory under 'Engineering'"

### Menus

- **View menus** -- "Show me the main navigation menu" or "What's in the footer menu?"

### Schema (Admin only)

- **Inspect** -- "What collections exist?" or "Show me the fields on the posts collection"
- **Create collections** -- "Create a new 'testimonials' collection with name and quote fields"
- **Modify schema** -- "Add a 'featured' boolean field to posts"

<Aside type="caution">
	Schema changes (creating/deleting collections and fields) modify your database structure and require Admin permissions. The AI will tell you if you don't have sufficient access.
</Aside>

### Revisions

- **View history** -- "Show the revision history for this post"
- **Restore** -- "Restore the post to its previous version"

## Permissions

What you can do through an AI tool depends on your EmDash role. The AI assistant operates with the same permissions you have in the admin panel:

| Role | What the AI can do |
| --- | --- |
| **Admin** | Everything, including schema changes |
| **Editor** | All content, media, taxonomies, and menus. Can view schema. |
| **Author** | Own content and media |
| **Contributor** | Own content (no publishing) and media |

If you try something you don't have access to, the AI will let you know.

## Tips

- **Be specific about collections.** Say "create a blog post" rather than "create a post" if you have multiple collections.
- **Ask for the schema first.** If you're unsure what fields a collection has, ask "What fields does the posts collection have?" before creating or editing content.
- **Review before publishing.** Ask the AI to create content as a draft, review it in the admin panel, then ask the AI to publish it -- or publish it yourself.
- **Use compare for review.** Before publishing, ask "Compare the live and draft versions of this post" to see exactly what will change.
- **Rich text fields use Portable Text.** The AI can write content for rich text fields, but complex formatting is best done in the admin editor.

## For Developers

The MCP server endpoint, authentication methods, OAuth discovery, tool parameters, and error handling are documented in the [MCP Server Reference](/reference/mcp-server).
