Skip to main content

block-style-cms-mcp

Python MCP server for Block Style CMS. Thin stdio wrapper around block-style-cms-sdk.

Credentials (where they live)

CMS base URL and API token are not tool arguments. Put them in the MCP host config env block (e.g. Cursor mcp.json / Settings → MCP):

Parameter Env var Required
CMS base URL BSC_BASE_URL yes
API token BSC_API_KEY yes
Auth style api-key or bearer BSC_AUTH_STYLE no (default api-key)

Do not commit real tokens. Do not pass them as tool inputs (they would land in chat logs).

Cursor example

{
  "mcpServers": {
    "block-style-cms": {
      "command": "uvx",
      "args": ["block-style-cms-mcp"],
      "env": {
        "BSC_BASE_URL": "https://cms.example.com",
        "BSC_API_KEY": "your-api-token"
      }
    }
  }
}

Local checkout (before PyPI):

{
  "mcpServers": {
    "block-style-cms": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/packages/mcp-python",
        "block-style-cms-mcp"
      ],
      "env": {
        "BSC_BASE_URL": "https://cms.example.com",
        "BSC_API_KEY": "your-api-token"
      }
    }
  }
}

Tools

Tool Purpose
list_locales Supported article languages
list_channels Site channels
upload_image Upload local image
delete_image Delete library image by filename
publish_from_markdown Create article from markdown
update_from_markdown Update article from markdown (id required)
get_article Get by slug + id (optional include_md_content)
get_article_by_slug Get by slug + locale (optional include_md_content)
list_articles List metadata with filters (published query: published | draft | all, not true/false)
update_article_metadata Metadata-only update
set_article_published Publish / unpublish
delete_article Delete by slug + id
delete_article_by_slug Delete by slug + locale

Markdown tip: do not include a leading # Title / H1 that repeats the title argument. The site already renders title as the page heading; a duplicate H1 shows twice and pollutes the TOC. Start body content at a paragraph or ## section.

Article closed-loop design: see repo docs/.

Path arguments (md_file, assets_dir, file_path, cover_file) must be readable by the MCP process (typically paths under the host workspace).

list_articles.published accepts only published | draft | all (CMS query enum). Boolean strings fail. Create/update and set_article_published still use a real boolean for the article’s published flag.

Develop

cd packages/mcp-python
uv sync --extra dev
uv run ruff check .
uv run pytest

Release

  1. Ensure the required block-style-cms-sdk version is already on PyPI.
  2. Bump version in pyproject.toml (and keep the SDK dependency pin in sync).
  3. Tag mcp-py-vX.Y.Z, push, and Publish a GitHub Release for that tag.
  4. GitHub Actions uploads to PyPI via Trusted Publishing (OIDC; GitHub Environment pypi-mcp, separate from the SDK’s pypi environment).

Example: version 0.0.4 → tag mcp-py-v0.0.4 → GitHub Release → PyPI.

Setup checklist:

  1. GitHub → Settings → Environments → create pypi-mcp.
  2. Deployment branches and tags: allow tag pattern mcp-py-v* (optionally branch master for manual dry-runs).
  3. On PyPI, register a Trusted Publisher for project block-style-cms-mcp pointing at workflow mcp-python-release.yml (and environment name pypi-mcp if the form asks for it).

Metadata

Release files for block-style-cms-mcp 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for block-style-cms-mcp 0.0.4
File Size Uploaded Provenance Actions
block_style_cms_mcp-0.0.4.tar.gz 82.6 kB With provenance Details for block_style_cms_mcp-0.0.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for block-style-cms-mcp 0.0.4
File Interpreter ABI Platform Actions
block_style_cms_mcp-0.0.4-py3-none-any.whl Python 3 none any Details for block_style_cms_mcp-0.0.4-py3-none-any.whl

Total release size: 90.5 kB

Release files / block_style_cms_mcp-0.0.4.tar.gz

Download URL block_style_cms_mcp-0.0.4.tar.gz
Size 82.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fa768a2d06b9dfe15fd723ab7a8f7507b4c5393b9b2af70fe234df9c827febd1
BLAKE2b-256 checksum
How to use checksums
84f559888c799280d490688c8522850850baa53b2168a47c8df2eb66ad73bd41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / block_style_cms_mcp-0.0.4-py3-none-any.whl

Download URL block_style_cms_mcp-0.0.4-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60b8c2bad3b76c10970b386b2627b25e5a840cf05aac414d7cc2cc4a2c481c05
BLAKE2b-256 checksum
How to use checksums
0a8ddf7e7623fc2bbd2b2af2c2fceef1903e7347736128a100bd2d9039b6ef80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for block-style-cms-mcp 0.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for block_style_cms_mcp-0.0.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page