cms
BCMS MCP lets AI agents work directly with your BCMS content.
Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeCan modify data
What it can do
- Instance Get: Get the instance details.
- Submit Mcp Feedback: Report problems with the BCMS MCP tools so we can fix them. Use this after an unexpected error, a confusing or misleading result, when a capability you needed was missing, when a
- Create Template: Create a new template in the instance.
What data it sees
Do you need an account
An API key from the service settings is required
BCMS MCP lets AI agents work directly with your BCMS content. Read and manage entries, media, content models, and publishing workflows from tools like Claude, Cursor, ChatGPT, and other MCP clients.
Server tool list (49)
Raw names from tools/list. Only developers need these.
| instance-get | Get the instance details. |
| submit-mcp-feedback | Report problems with the BCMS MCP tools so we can fix them. Use this after an unexpected error, a confusing or misleading result, when a capability you needed was missing, when a tool description or resource was unclear or wrong, or when you had to work around something to get the job done. If the issue blocked the work, ask the user whether they want to submit feedback before calling this tool. Include the tool name, what you tried, and what you expected to happen. |
| create-template | Create a new template in the instance. |
| delete-template-by-id | Delete a template by its ID. |
| get-all-templates | Get all templates in the instance. |
| get-template-by-id | Get a template by its ID. |
| update-template | Update an existing template in the instance. Read the Prop Changes MCP resource for propChanges add.data defaults and batching. |
| create-entries | Create a new entry with the specified data. Prefer `build-entry-meta-from-template` to draft `meta[].props`, and `build-widget-content-node` for widget content nodes. See the Important resource for shapes and gotchas. Response includes dashboardUrl so the user can open the entry in the browser. |
| delete-entries | Delete an entry with the specified ID. |
| get-all-entries-by-template-id | List all entries that use a specific template. |
| get-entry-by-id | Get an entry by its ID. |
| update-entries | Update an entry with the specified data. Prefer `build-entry-meta-from-template` to draft `meta.props`, and `build-widget-content-node` for widget content nodes. See the Important resource for shapes and gotchas. |
| build-entry-meta-from-template | Draft entry meta prop values for every prop on a template, with type-aware placeholders (GROUP_POINTER and nested WIDGET props filled recursively). Use the returned `props` as `meta[].props` in create-entries or `meta.props` in update-entries, replacing placeholders with real values. `notes` lists values you must supply yourself (required MEDIA/ENTRY_POINTER). Pass `overrides` to set specific prop ids verbatim. |
| build-widget-content-node | Draft a ready entry content widget node for a widget, with every prop filled by type-aware placeholders (nested WIDGET/GROUP_POINTER props recurse). Append the returned `node` to `content.nodes` in create-entries / update-entries, replacing placeholders with real values. `notes` lists values you must supply yourself (required MEDIA/ENTRY_POINTER). Pass `overrides` to set specific prop ids verbatim. |
| create-entry-status | Create a new entry status. |
| delete-entry-status-by-id | Delete an entry status by its ID. IMPORTANT: This will remove the status from all entries that have it assigned. |
| list-entry-statuses | List all entry statuses that exist in the instance. |
| get-entry-status-by-id | Get an entry status by its ID. You should call this tool when you need to get the status of an entry. |
| update-entry-status | Update an existing entry status with the specified data. |
| get-entry-history-items-for-entry | Get all history changes for specified entry. |
| get-all-entry-history-items | Get all entry history items for the instance. |
| get-entry-history-by-id | Get entry history item by its ID. |
| get-entry-history-file-data | Get file data for entry history item by its ID. |
| create-group | Create a new group with the specified data. |
| delete-group-by-id | Delete an existing group by its ID. |
| get-all-groups | Get all groups in the instance. |
| get-group-by-id | Get group by ID. |
| update-group | Update an existing group. Read the Prop Changes MCP resource for propChanges add.data defaults and batching. |
| create-widget | Create a widget in the instance. |
| delete-widget-by-id | Delete widget by its ID. |
| get-all-widgets | Get all widgets in the instance. |
| get-widget-by-id | Get a widget by its ID. |
| update-widget | Update a widget by its ID. Read the Prop Changes MCP resource for propChanges add.data defaults and batching. |
| add-language | Add a new language to the instance. Note: language must be one of the supported languages. |
| delete-language-by-id | Delete language by ID |
| get-available-languages | Get all available/supported languages inside of the BCMS. |
| get-all-languages | Get all languages in the instance. |
| get-language-by-id | Get language by ID, language must belong to the instance. |
| update-language | Update a language in the instance. |
| create-media-directory | Create a media directory. This can be used to organize media items into folders. |
| get-all-media | List all media items. |
| get-media-by-id | Get media by ID. |
| list-media-directories | List all media directories. This can be used to retrieve a list of all media directories in the media library. You should use this tool when you need to get directory structure. |
| request-upload-media-url | Get media file upload link. This can be used to upload media files to the media library. The tool returns a pre-signed URL to which the media file can be uploaded using a POST request with form-data. This is useful for uploading large media files that may exceed the size limits of the MCP tool input. |
| get-entry-pointer-link | Get a link to an entry (aka Entry Pointer Link) that is used in Entry content link node. You should call this tool when you need to get a internal BCMS link to an Entry. |
| get-media-pointer-link | Get a link to a media (aka Media Pointer Link) that is used in Entry content link node. You should call this tool when you need to get a internal BCMS link to a Media. |
| get-all-trash-items | Get all trash items in the instance. |
| get-trash-item-by-id | Get a trash by its ID. |
| get-trash-item-file-data | Get a trash file data by trash item ID. |