Skip to main content

DevHub CMS LLM integration through the Model Context Protocol

Project description

DevHub CMS MCP

smithery badge

A Model Context Protocol (MCP) integration for managing content in the DevHub CMS system.

Installation

You will need the uv package manager installed on your local system.

Manual configuration of Claude Desktop

To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your claude_desktop_config.json:

{
    "mcpServers": {
        "devhub_cms_mcp": {
            "command": "uvx",
            "args": [
                "devhub-cms-mcp"
            ],
            "env": {
                "DEVHUB_API_KEY": "YOUR_KEY_HERE",
                "DEVHUB_API_SECRET": "YOUR_SECRET_HERE",
                "DEVHUB_BASE_URL": "https://yourbrand.cloudfrontend.net"
            }
        }
    }
}

After updating the config, restart Claude Desktop.

Manual configuration for Cursor

This MCP can also be used in cursor with a similar configuration from above added to your Cursor global environment or to individual projects.

Examples here

Installing via Claude Code

Claude Code's command line supports MCP installs.

You can add the devhub-cms-mcp by updating the environment variables below

claude mcp add devhub-cms-mcp \
    -e DEVHUB_API_KEY=YOUR_KEY_HERE \
    -e DEVHUB_API_SECRET=YOUR_SECRET_HERE \
    -e DEVHUB_BASE_URL=https://yourbrand.cloudfrontend.net \
    -- uvx devhub-cms-mcp

Installing via Smithery

To install DevHub CMS MCP for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @devhub/devhub-cms-mcp --client claude

Local development

Clone the repo (or your fork)

git clone git@github.com:devhub/devhub-cms-mcp.git

Manual configuration of Claude Desktop

To use this server with the Claude Desktop app for local development, add the following configuration to the "mcpServers" section of your claude_desktop_config.json:

{
    "mcpServers": {
        "devhub_cms_mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/YOUR/LOCAL/PATH/devhub-cms-mcp/",
                "run",
                "main.py"
            ],
            "env": {
                "DEVHUB_API_KEY": "YOUR_KEY_HERE",
                "DEVHUB_API_SECRET": "YOUR_SECRET_HERE",
                "DEVHUB_BASE_URL": "https://yourbrand.cloudfrontend.net"
            }
        }
    }
}

After updating the config, restart Claude Desktop.

Configuration for running with uv directly

This MCP requires the following environment variables to be set:

export DEVHUB_API_KEY="your_api_key"
export DEVHUB_API_SECRET="your_api_secret"
export DEVHUB_BASE_URL="https://yourbrand.cloudfrontend.net"

Then run the MCP

uv run main.py

Available Tools

This MCP provides the following tools for interacting with DevHub CMS:

Business and Location Management

  • get_businesses(): Gets all businesses within the DevHub account. Returns a list of businesses with their IDs and names.
  • get_locations(business_id): Gets all locations for a specific business. Returns detailed location information including address, coordinates, and URLs.
  • get_hours_of_operation(location_id, hours_type='primary'): Gets the hours of operation for a specific DevHub location. Returns a structured list of time ranges for each day of the week.
  • update_hours(location_id, new_hours, hours_type='primary'): Updates the hours of operation for a DevHub location.
  • get_nearest_location(business_id, latitude, longitude): Finds the nearest DevHub location based on geographic coordinates.
  • site_from_url(url): Gets the DevHub site ID and details from a URL. Returns site ID, URL, and associated location IDs.

Content Management

  • get_blog_post(post_id): Retrieves a single blog post by ID, including its title, date, and HTML content.
  • create_blog_post(site_id, title, content): Creates a new blog post. The content should be in HTML format and should not include an H1 tag.
  • update_blog_post(post_id, title=None, content=None): Updates an existing blog post's title and/or content.

Media Management

  • upload_image(base64_image_content, filename): Uploads an image to the DevHub media gallery. Supports webp, jpeg, and png formats. The image must be provided as a base64-encoded string.

Usage with LLMs

This MCP is designed to be used with Large Language Models that support the Model Context Protocol. It allows LLMs to manage content in DevHub CMS without needing direct API access integrated into the LLM natively.

Testing

This package includes a test suite with mocked requests to the DevHub API, allowing you to test the functionality without making actual API calls.

Running Tests

To run the tests, first install the package with test dependencies:

uv pip install -e ".[test]"

Run the tests with pytest:

uv run pytest

For more detailed output and test coverage information:

uv run pytest -v --cov=devhub_cms_mcp

Test Structure

  • tests/devhub_cms_mcp/test_mcp_integration.py: Tests for MCP integration endpoints

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_devhub_cms_mcp-0.3.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_devhub_cms_mcp-0.3.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_devhub_cms_mcp-0.3.0.tar.gz.

File metadata

File hashes

Hashes for iflow_mcp_devhub_cms_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a2f29283928da9f112a5281b716fc93a3a0f90d676b7037444a12bef1b109fec
MD5 6564b48ec8d06a3a41d436a0c6fbd406
BLAKE2b-256 d5f3f299c73e5189e36643a543e98b339d3cbbb55f607fc269eb663e381e8db2

See more details on using hashes here.

File details

Details for the file iflow_mcp_devhub_cms_mcp-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iflow_mcp_devhub_cms_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab71bd61c7faa634eb07b5bd322333df0581b7775b63c60b2fcd75f8603a647f
MD5 ed91637831fe62d8376aad9a97692c82
BLAKE2b-256 2bcb70c9963b3cb108f64a3bc987b3949127be329311a5b13d548426a584fd2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page