Skip to main content

MCP server for Bear Blog integration

Project description

Bear Blog MCP Server

A Model Context Protocol (MCP) server for interacting with Bear Blog programmatically. This allows AI assistants like Claude to manage your Bear Blog posts directly.

Features

Post Management

  • List Posts: Get all your blog posts with metadata
  • Read Posts: Retrieve full post content including title, slug, and markdown body
  • Create Posts: Write new blog posts (as drafts or published)
  • Update Posts: Edit existing posts
  • Delete Posts: Permanently remove posts
  • Publish/Unpublish: Toggle post publication status

Page Management

  • List Pages: Get all your static pages with metadata
  • Read Pages: Retrieve full page content
  • Create Pages: Create new pages (About, Contact, etc.)
  • Update Pages: Edit existing pages
  • Delete Pages: Permanently remove pages
  • Publish/Unpublish Pages: Toggle page publication status

Blog Settings

  • Get Settings: Retrieve all blog configuration
  • Update Settings: Modify blog subdomain, language, analytics, and advanced options

Home Page Content

  • Get Home Page: Retrieve blog title, favicon, meta description, meta image, and landing page content
  • Update Home Page: Customize blog title, favicon, meta description, meta image, and home page markdown

Navigation Management

  • Get Navigation: Retrieve navigation menu links in markdown format
  • Update Navigation: Customize navigation menu with markdown-formatted links

Theme and Style Management

  • List Themes: Get all available pre-built themes (30+ community themes)
  • Get Styles: Retrieve current custom CSS
  • Update Styles: Modify custom CSS to customize appearance
  • Apply Theme: Apply a pre-built theme (WARNING: overwrites custom CSS)

Installation

Quick Start (Recommended)

Install globally with uvx (zero-install, runs immediately):

uvx bearblog-mcp-server

Or install persistently with pipx:

pipx install bearblog-mcp-server

For Development

Clone the repository and install in editable mode:

git clone https://github.com/rmunoz33/bearblog-mcp.git
cd bearblog-mcp
uv pip install -e .

Configuration

Environment Variables

The MCP server requires Bear Blog credentials to be provided as environment variables:

  • BEAR_BLOG_EMAIL - Your Bear Blog account email
  • BEAR_BLOG_PASSWORD - Your Bear Blog account password
  • BEAR_BLOG_SUBDOMAIN - Your blog's subdomain (e.g., "myblog" for myblog.bearblog.dev)
  • BEAR_BLOG_BASE_URL - Base URL (default: https://bearblog.dev)

Note: For passwords with special characters, use single quotes in .env files.

Note: Use double quotes around the password. If your password contains a dollar sign ($), it will be treated as a literal character (python-dotenv does not expand bare $ variables).

Usage

With Claude Code

Add to your Claude Code MCP settings (~/.claude.json):

{
  "mcpServers": {
    "bearblog": {
      "type": "stdio",
      "command": "uvx",
      "args": ["bearblog-mcp-server"],
      "env": {
        "BEAR_BLOG_EMAIL": "your_email@example.com",
        "BEAR_BLOG_PASSWORD": "your_password",
        "BEAR_BLOG_SUBDOMAIN": "your_subdomain"
      }
    }
  }
}

Alternative with pipx (if installed persistently):

{
  "mcpServers": {
    "bearblog": {
      "type": "stdio",
      "command": "bearblog-mcp",
      "env": {
        "BEAR_BLOG_EMAIL": "your_email@example.com",
        "BEAR_BLOG_PASSWORD": "your_password",
        "BEAR_BLOG_SUBDOMAIN": "your_subdomain"
      }
    }
  }
}

After editing the config, restart Claude Code and verify with the /mcp command.

Standalone

Run the server directly:

# With uvx (zero-install)
BEAR_BLOG_EMAIL=your@email.com BEAR_BLOG_PASSWORD=pass BEAR_BLOG_SUBDOMAIN=blog uvx bearblog-mcp-server

# Or if installed with pipx
bearblog-mcp

Available Tools

Post Tools

  • bear_list_posts - List all blog posts
  • bear_get_post - Get a specific post by ID
  • bear_create_post - Create a new post
  • bear_update_post - Update an existing post
  • bear_delete_post - Delete a post permanently
  • bear_publish_post - Toggle publish status

Page Tools

  • bear_list_pages - List all pages
  • bear_get_page - Get a specific page by ID
  • bear_create_page - Create a new page
  • bear_update_page - Update an existing page
  • bear_delete_page - Delete a page permanently
  • bear_publish_page - Toggle page publish status

Settings Tools

  • bear_get_blog_settings - Get current blog configuration
  • bear_update_blog_settings - Update blog settings

Home Page Tools

  • bear_get_home_page - Get blog title, favicon, meta description, meta image, and content
  • bear_update_home_page - Update blog title, favicon, meta description, meta image, and content

Navigation Tools

  • bear_get_navigation - Get navigation menu links
  • bear_update_navigation - Update navigation menu with markdown links

Theme and Style Tools

  • bear_list_themes - List all available pre-built themes
  • bear_get_styles - Get current custom CSS
  • bear_update_styles - Update custom CSS
  • bear_apply_theme - Apply a pre-built theme (WARNING: overwrites custom CSS)

Resources

  • bear://posts - Formatted list of all posts
  • bear://post/{id} - Individual post content
  • bear://pages - Formatted list of all pages
  • bear://page/{id} - Individual page content

Premium Features

This MCP server was developed and tested using a free Bear Blog account. Some Bear Blog features require a Bear Blog Pro subscription ($5/month or $49/year) and are not currently implemented:

  • Email List Management: Subscriber capture and newsletter functionality
  • Media Upload: Direct file and image uploading via MCP tools
  • Custom Domains: Domain configuration tools
  • Advanced Analytics: Detailed traffic and engagement metrics

If you have a Bear Blog Pro account and would like these features added, please open an issue on GitHub or reach out to discuss implementation.

Testing

Run the test scripts to verify functionality:

# Test post management
uv run python tests/test_tools.py

# Test page management
uv run python tests/test_pages.py

Development

See research/ directory for API exploration scripts and API_FINDINGS.md for endpoint documentation.

License

MIT

Credits

Built with FastMCP - The fast, Pythonic way to build MCP servers.

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

bearblog_mcp_server-0.1.0.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

bearblog_mcp_server-0.1.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file bearblog_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: bearblog_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for bearblog_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 135e06ae83452e7c080b3f3a0ffdb93c8f3f9249106f4e34151e65606947a547
MD5 bd0717b4952b1f4651d5f03501ae7fb4
BLAKE2b-256 7c5929b7c952cc2722a805331bbab1cb6b4523d6242a34a74cadf5f7c92ceec4

See more details on using hashes here.

File details

Details for the file bearblog_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bearblog_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73e8b429c0856478b45fe1343b0cd70315f5a72b13104fe9d66adcb0a72d9b68
MD5 cdf22eb28a3f9291dcdc269510db2c21
BLAKE2b-256 29dcb3a607368279e8543402cc0361fe307fe75c7ab344d1a227c825b46bfd7c

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