Skip to main content
Use Marble’s Model Context Protocol server to let AI agents read and manage content in your workspace through the Marble API.
You need a Marble API key. Write tools such as create, update, and delete require a private API key.

Installation

The quickest way to add Marble to supported MCP clients is with the add-mcp CLI.
npx add-mcp https://mcp.marblecms.com/mcp \
  --header "Mcp-Marble-Api-Key: $MCP_MARBLE_API_KEY" \
  -g
This installs Marble globally for the agents you select. Without -g, add-mcp writes project-level MCP config.
https://mintcdn.com/marblecms/HeUo3qaHbsCXRx9S/images/cursor.svg?fit=max&auto=format&n=HeUo3qaHbsCXRx9S&q=85&s=769b72a204a886e8872602f37e6e5f6a

Install in Cursor

Open Cursor with the Marble MCP server pre-filled.
1

Open the installer

Click Install in Cursor and allow your browser to open Cursor.
2

Add your API key

Cursor installs the server with this header:
Mcp-Marble-Api-Key: ${MCP_MARBLE_API_KEY}
Set MCP_MARBLE_API_KEY in your environment before starting Cursor.
3

Verify the connection

Open Cursor’s MCP settings and confirm that the marble server is enabled. The server URL should end with /mcp.
You can also add the server manually in Cursor:
{
  "mcpServers": {
    "marble": {
      "type": "streamableHttp",
      "url": "https://mcp.marblecms.com/mcp",
      "headers": {
        "Mcp-Marble-Api-Key": "${MCP_MARBLE_API_KEY}"
      }
    }
  }
}

Available Tools

Tool badges describe how clients may present or approve tool calls:
  • READ-ONLY: reads data without changing your workspace
  • DESTRUCTIVE: may update or delete existing content
ToolDescriptionBadges
get_postsGet a paginated list of published posts with optional filtering.READ-ONLY
search_postsSearch posts by title and content. Use this when an agent needs to find content before editing or linking to it.READ-ONLY
get_postGet a single post by ID or slug, with optional status and content format filtering.READ-ONLY
create_postCreate a new post. Category is required. If authors are not provided, the first workspace author is used. Requires a private API key.
update_postUpdate an existing post by ID or slug. All fields are optional, and only provided fields are updated. Requires a private API key.DESTRUCTIVE
delete_postDelete a post by ID or slug. Requires a private API key.DESTRUCTIVE
ToolDescriptionBadges
get_categoriesGet a paginated list of categories.READ-ONLY
get_categoryGet a single category by ID or slug.READ-ONLY
create_categoryCreate a new category. Requires a private API key.
update_categoryUpdate an existing category by ID or slug. Requires a private API key.DESTRUCTIVE
delete_categoryDelete a category by ID or slug. Cannot delete a category that has posts assigned to it. Requires a private API key.DESTRUCTIVE
ToolDescriptionBadges
get_tagsGet a paginated list of tags.READ-ONLY
get_tagGet a single tag by ID or slug.READ-ONLY
create_tagCreate a new tag. Requires a private API key.
update_tagUpdate an existing tag by ID or slug. Requires a private API key.DESTRUCTIVE
delete_tagDelete a tag by ID or slug. Requires a private API key.DESTRUCTIVE
ToolDescriptionBadges
get_authorsGet a paginated list of authors who have published posts.READ-ONLY
get_authorGet a single author by ID or slug.READ-ONLY
create_authorCreate a new author. Hobby plan workspaces are limited to 1 author. Requires a private API key.
update_authorUpdate an existing author by ID or slug. Requires a private API key.DESTRUCTIVE
delete_authorDelete an author by ID or slug. Requires a private API key.DESTRUCTIVE
ToolDescriptionBadges
get_mediaGet a paginated list of media assets with optional type, search, and sort filters.READ-ONLY
get_media_assetGet a single media asset by ID, including its CDN URL and metadata.READ-ONLY
upload_media_from_urlUpload media from a public URL into your Marble workspace. Requires a private API key.
update_mediaUpdate media metadata such as name and alt text. Requires a private API key.DESTRUCTIVE
delete_mediaDelete a media asset and its stored file. Requires a private API key.DESTRUCTIVE

Authentication

The MCP server accepts your Marble API key through one of these headers:
Mcp-Marble-Api-Key: <your-api-key>
X-Marble-Api-Key: <your-api-key>
Authorization: Bearer <your-api-key>
Keep private API keys out of client-side code and public repositories.

Troubleshooting

If your client cannot connect, verify that:
  • The URL ends with /mcp
  • The API key header is present
  • Your key has the permissions needed for the tool you are calling
  • Write operations use a private Marble API key