{"id":26648523,"url":"https://github.com/devhub/devhub-cms-mcp","last_synced_at":"2025-03-25T00:02:13.531Z","repository":{"id":282956077,"uuid":"950064178","full_name":"devhub/devhub-cms-mcp","owner":"devhub","description":"DevHub CMS LLM integration through the Model Context Protocol","archived":false,"fork":false,"pushed_at":"2025-03-17T20:27:39.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T21:33:27.436Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devhub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-17T15:17:03.000Z","updated_at":"2025-03-17T20:27:42.000Z","dependencies_parsed_at":"2025-03-17T21:44:46.445Z","dependency_job_id":null,"html_url":"https://github.com/devhub/devhub-cms-mcp","commit_stats":null,"previous_names":["devhub/devhub-cms-mcp"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devhub%2Fdevhub-cms-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devhub%2Fdevhub-cms-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devhub%2Fdevhub-cms-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devhub%2Fdevhub-cms-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devhub","download_url":"https://codeload.github.com/devhub/devhub-cms-mcp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245372380,"owners_count":20604491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-25T00:02:03.434Z","updated_at":"2025-03-25T00:02:13.520Z","avatar_url":"https://github.com/devhub.png","language":"Python","readme":"# DevHub CMS MCP\n\n[![smithery badge](https://smithery.ai/badge/@devhub/devhub-cms-mcp)](https://smithery.ai/server/@devhub/devhub-cms-mcp)\n\nA [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) integration for managing content in the [DevHub CMS system](https://www.devhub.com/).\n\n## Installation\n\nYou will need the [uv](https://github.com/astral-sh/uv) package manager installed on your local system.\n\n### Manual configuration of Claude Desktop\n\nTo use this server with the [Claude Desktop app](https://claude.ai/download), add the following configuration to the \"mcpServers\" section of your `claude_desktop_config.json`:\n\n```\n{\n    \"mcpServers\": {\n        \"devhub_cms_mcp\": {\n            \"command\": \"uvx\",\n            \"args\": [\n                \"devhub-cms-mcp\"\n            ],\n            \"env\": {\n                \"DEVHUB_API_KEY\": \"YOUR_KEY_HERE\",\n                \"DEVHUB_API_SECRET\": \"YOUR_SECRET_HERE\",\n                \"DEVHUB_BASE_URL\": \"https://yourbrand.cloudfrontend.net\"\n            }\n        }\n    }\n}\n```\n\nAfter updating the config, restart Claude Desktop.\n\n### Manual configuration for Cursor\n\nThis MCP can also be used in cursor with a similar configuration from above added to your [Cursor](https://www.cursor.com/) global environment or to individual projects.\n\nExamples [here](https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers)\n\n### Installing via Claude Code\n\nClaude Code's command line [supports MCP installs](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/tutorials#set-up-model-context-protocol-mcp).\n\nYou can add the `devhub-cms-mcp` by updating the environment variables below\n\n```\nclaude mcp add devhub-cms-mcp \\\n    -e DEVHUB_API_KEY=YOUR_KEY_HERE \\\n    -e DEVHUB_API_SECRET=YOUR_SECRET_HERE \\\n    -e DEVHUB_BASE_URL=https://yourbrand.cloudfrontend.net \\\n    -- uvx devhub-cms-mcp\n```\n\n### Installing via Smithery\n\nTo install DevHub CMS MCP for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@devhub/devhub-cms-mcp):\n\n```bash\nnpx -y @smithery/cli install @devhub/devhub-cms-mcp --client claude\n```\n\n## Local development\n\n### Clone the repo (or your fork)\n\n```\ngit clone git@github.com:devhub/devhub-cms-mcp.git\n```\n\n### Manual configuration of Claude Desktop\n\nTo 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`:\n\n```\n{\n    \"mcpServers\": {\n        \"devhub_cms_mcp\": {\n            \"command\": \"uv\",\n            \"args\": [\n                \"--directory\",\n                \"/YOUR/LOCAL/PATH/devhub-cms-mcp/\",\n                \"run\",\n                \"main.py\"\n            ],\n            \"env\": {\n                \"DEVHUB_API_KEY\": \"YOUR_KEY_HERE\",\n                \"DEVHUB_API_SECRET\": \"YOUR_SECRET_HERE\",\n                \"DEVHUB_BASE_URL\": \"https://yourbrand.cloudfrontend.net\"\n            }\n        }\n    }\n}\n```\n\nAfter updating the config, restart Claude Desktop.\n\n### Configuration for running with `uv` directly\n\nThis MCP requires the following environment variables to be set:\n\n```bash\nexport DEVHUB_API_KEY=\"your_api_key\"\nexport DEVHUB_API_SECRET=\"your_api_secret\"\nexport DEVHUB_BASE_URL=\"https://yourbrand.cloudfrontend.net\"\n```\n\nThen run the MCP\n\n```\nuv run main.py\n```\n\n## Available Tools\n\nThis MCP provides the following tools for interacting with DevHub CMS:\n\n### Business and Location Management\n\n- **get_businesses()**: Gets all businesses within the DevHub account. Returns a list of businesses with their IDs and names.\n- **get_locations(business_id)**: Gets all locations for a specific business. Returns detailed location information including address, coordinates, and URLs.\n- **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.\n- **update_hours(location_id, new_hours, hours_type='primary')**: Updates the hours of operation for a DevHub location.\n- **get_nearest_location(business_id, latitude, longitude)**: Finds the nearest DevHub location based on geographic coordinates.\n- **site_from_url(url)**: Gets the DevHub site ID and details from a URL. Returns site ID, URL, and associated location IDs.\n\n### Content Management\n\n- **get_blog_post(post_id)**: Retrieves a single blog post by ID, including its title, date, and HTML content.\n- **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.\n- **update_blog_post(post_id, title=None, content=None)**: Updates an existing blog post's title and/or content.\n\n### Media Management\n\n- **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.\n\n## Usage with LLMs\n\nThis 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.\n\n## Testing\n\nThis package includes a test suite with mocked requests to the DevHub API, allowing you to test the functionality without making actual API calls.\n\n### Running Tests\n\nTo run the tests, first install the package with test dependencies:\n\n```bash\nuv pip install -e \".[test]\"\n```\n\nRun the tests with pytest:\n\n```bash\nuv run pytest\n```\n\nFor more detailed output and test coverage information:\n\n```bash\nuv run pytest -v --cov=devhub_cms_mcp\n```\n\n### Test Structure\n\n- `tests/devhub_cms_mcp/test_mcp_integration.py`: Tests for MCP integration endpoints\n","funding_links":[],"categories":["Content Management Mcp Servers","Production-Ready Servers","🤖 AI/ML","Other Tools and Integrations","Official Servers","官方 MCP 服务器列表","Developer Tools","Content Creation","Table of Contents","🗂️ Extensions by Category"],"sub_categories":["How to Submit","AI Services","⚡ Productivity"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevhub%2Fdevhub-cms-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevhub%2Fdevhub-cms-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevhub%2Fdevhub-cms-mcp/lists"}