Connect BCMS MCP to ChatGPT

bcms-inside-chatgpt.jpg
By Momčilo Popov
Read time 2 min
Posted on 23 Apr 2026

BCMS ships a remote Model Context Protocol server that runs at https://app.thebcms.com/api/v3/mcp. It exposes tools for reading templates, listing and mutating entries, and working with media. Practically everything an LLM needs to be useful against your content model.

ChatGPT's Developer Mode lets you register that remote MCP as a custom app and call its tools directly from a chat. No SDK, no shim, no proxy.

This tutorial wires up a quick setup in ~5 minutes. We skip OAuth entirely - BCMS authenticates the MCP session through a signed API key baked into the URL, so ChatGPT's "No authentication" option is the right pick.

Prerequisites

  • A BCMS account with at least one instance.

  • A ChatGPT account that has access to Developer Mode. As of April 2026 that means Pro, Plus, Business, Enterprise, or Edu on ChatGPT web. Pro/Plus get read/fetch tools; Business and Enterprise/Edu get full read + write.

  • 1 minute of willingness to paste an API key into a URL. :) Use a non-production BCMS instance for this walkthrough.

Step 1 - Create an MCP-scoped API key in BCMS

  1. In the BCMS dashboard, open Settings → API Keys → MCP.

  2. Click Create. Give it a descriptive name (e.g. mcp-chatgpt).

  3. Scope it to only the templates you want ChatGPT to be able to see / update / create. You can widen this later; start narrow.

  4. Save. BCMS will show you the composite URL:
    https://app.thebcms.com/api/v3/mcp?mcpKey=abcd....

Step 2 - Enable Developer Mode in ChatGPT

  1. Go to Settings → Apps → Advanced settings (scroll to the bottom).

  2. Flip Developer mode on.

If you're on a Business/Enterprise/Edu workspace and don't see the toggle, your workspace admin still needs to enable it under Workspace Settings → Permissions & Roles → Connected Data → Developer mode. On Enterprise/Edu it's gated by RBAC.

After enabling, a Create button appears under Settings → Apps.

Widget home_video is not handled

Step 3 - Register BCMS as a custom connector

  1. Settings → Connectors → Create.

  2. Fill in:

    • Name: BCMS (this is the label ChatGPT uses when you invoke it)

    • Description: something action-oriented, e.g. Use this to read BCMS templates, list/create/update entries, and work with media in the connected BCMS instance. The model uses this text during tool discovery, so write it like you'd write a good tool description.

    • MCP Server URL: your full URL from Step 2, including ?mcpKey=…

    • Authentication: No authentication. The key is in the URL; ChatGPT doesn't need to negotiate anything.

  3. Click Create.

If the connection succeeds, ChatGPT immediately lists the tools the server advertised - you should see things like

  • list_templates_and_entries,

  • list_entries_for_[template_id],

  • create_entry_for_[template_id],

  • update_entry_for_[template_id],

  • list_media,

  • list_media_dirs,

  • create_media_dir,

  • request_media_upload_url,

  • get_entry_pointer_link,

  • get_media_pointer_link.

The exact set depends on your instance's templates and MCP key permissions you defined.

The new app now lives under Settings → Apps → Enabled Apps with a Dev label.

bcms-inside-chatgpt.jpg

Step 4 - Use it in a chat

  1. Open a new chat.

  2. Click the + (composer tools) menu → More → select BCMS.

  3. Prompt it.

Start with something cheap that forces tool discovery:

What BCMS tools do you have available right now? List each with a one-line description.

Then something that actually hits BCMS:

Use the BCMS connector to list all templates in my instance. Then pick the blog template and list its 5 most recent entries.

When you want a write action, have fun:

Use BCMS to create a draft entry in the blog template with title "Using a MCP from ChatGPT" and a two-paragraph placeholder body.

ChatGPT will render a confirmation modal with the full JSON payload before any write call. Read the JSON. The BCMS MCP tools are typed against your actual template schemas, so the model occasionally hallucinates fields; catching it at the confirm step is much cheaper than rolling back entries.

Iterating

When you change the BCMS content model (new templates, new props), the MCP server's tool set changes too. ChatGPT caches the tool list at connector-create time.

To refresh: Settings → Apps → BCMS → Refresh. You'll get a diff of added/removed tools.

If you rotate the MCP API key, you need to edit the connector URL (or recreate the connector) - the key is in the URL, so rotating it invalidates the current connector.

Prompting tips that matter for BCMS specifically

  • Name the connector explicitly when multiple connectors are attached: Use BCMS's list_entries_for_template, not any built-in tool.

  • Anchor on template IDs, not human names, for anything idempotent. Ask the model to first call list_templates_and_entries and reuse the returned IDs.

  • Pointer fields (entry → entry, entry → media) are the most common place for the model to guess. Make it call get_entry_pointer_link / get_media_pointer_link explicitly instead of inventing an ID.

  • Language-scoped props: BCMS entries are multi-language. If your instance has more than one language, tell the model which language to operate in - otherwise it picks one non-deterministically.

Security notes (read these, they're not boilerplate)

  • The mcpKey sits in the connector URL in ChatGPT. Treat the connector itself as a secret. Anyone who can read your ChatGPT connector config can read the key.

  • Keep this key scoped to a non-production BCMS instance while you're experimenting. Once you trust your prompts, create a separate, narrower key for prod.

  • BCMS's mcp key flag is checked on every request - revoking the permissions or deleting the key instantly kills the connector. If something goes sideways, that's your kill switch.

  • Write actions in ChatGPT Developer Mode have a "remember this approval" option. Don't use it for BCMS - you want a fresh confirmation on every mutation while the model's behavior against your schema is still unproven.

Troubleshooting cheat sheet

Symptoms and causes:

400 Missing mcpKey in query parameters

URL is missing ?mcpKey=… or lost it to encoding.


400 Invalid API key format

The composite key doesn't have exactly 3 dot-separated parts.


401 API key not found / 401 Invalid API key secret

Stale or mis-pasted key.


403 API key does not have MCP access

Key exists but the MCP flag is off. Toggle it in BCMS and retry.


404 Instance not found

The instanceId in the key points at a deleted instance.


ChatGPT lists 0 tools

Connection succeeded but your key is scoped to 0 templates. Widen the scope in BCMS, then Refresh the connector.


That's it. Congrats. You are finally replaced by AI!

You now have ChatGPT talking to your BCMS instance over MCP!.

Join our Newsletter

Get all the latest BCMS updates, news and events.

You’re in!

The first mail will be in your inbox next Monday!
Until then, let’s connect on Discord as well:

Join BCMS community on Discord

By submitting this form you consent to us emailing you occasionally about our products and services. You can unsubscribe from emails at any time, and we will never pass your email to third parties.

Gradient