# OpenPress > Free website hosting operated through MCP. Users connect their own AI agent to create, edit, publish and manage websites (blogs, portfolios, landing pages) on free subdomains. ## MCP server - URL: https://openpress.blog/mcp - Transport: Streamable HTTP (stateless, JSON responses) - Auth: OAuth 2.1 with PKCE and dynamic client registration; discovery at https://openpress.blog/.well-known/oauth-protected-resource/mcp. API keys (Bearer) are also supported. - Scopes: sites:read, sites:write, content:write, content:publish, analytics:read, sites:delete ## Tools - create_site: Create a new website with a free subdomain on openpress.blog. - list_sites: List the sites this connection can access, with public urls and post counts. - get_site: Get a site's settings, homepage content blocks, theme, navigation and content counts. - update_site_settings: Update site name, tagline, description, language, logo/favicon, homepage content blocks (hero, features, projects, about, social links, footer text), search engine verification codes (settings.searchVerification: Google Search Console / Bing meta tag) and navigation menus. - delete_site: Delete a site and take it offline. - create_post: Create a blog post (kind 'post', at /blog/) or static page (kind 'page', at /) as a DRAFT. - get_post: Get a post or page including its Markdown content. - list_posts: List posts and/or pages of a site, newest first. - update_post: Edit a post or page. - publish_post: Make a draft public. - unpublish_post: Take a published post or page offline (back to draft). - delete_post: Delete a post or page. - update_post_seo: Set SEO fields for a post or page: seoTitle, seoDescription, slug (301 redirect created if published), ogImageUrl, canonicalUrl, noindex. - upload_media: Add an image (PNG, JPEG, GIF, WebP, AVIF, ICO; SVG not accepted) to a site's media library from a public https sourceUrl or base64 data. - list_media: List images in a site's media library, newest first. - delete_media: Delete an image. - get_visualization_capabilities: Describe everything create_chart / update_chart accept: chart types, data models (inline or dataset + encoding), filters, color scales, legends, tooltips, sports field presets and their coordinate systems, limits, validated examples, and and how custom (code) visualizations work. - create_chart: Create an interactive chart from data: line, area, bar (grouped/stacked), pie, donut, scatter, heatmap or spatial_heatmap. - get_chart: Get a chart's full spec (data, labels, formatting) and the posts that embed it (usedIn). - list_charts: List a site's charts, most recently updated first, with their embed tokens. - update_chart: Change a chart's data, type, filters, styling or formatting. - delete_chart: Delete a chart. - create_custom_visualization: Last resort for visualization types create_chart can't draw: your own HTML/CSS/JavaScript, run in an isolated sandbox (no network, no cookies, no access to the page). - get_custom_visualization: Get a custom visualization's code, data, approval status and the posts that embed it. - list_custom_visualizations: List a site's custom visualizations with approval status and embed tokens. - update_custom_visualization: Change a custom visualization. - delete_custom_visualization: Delete a custom visualization. - list_templates: List available site templates with descriptions and default themes. - set_template: Switch a site's template. - update_theme: Change visual design tokens: colors (hex), fonts (sans/serif/mono/humanist/geometric), baseFontSize, headerStyle, footerStyle, contentWidth, layout, buttonStyle, colorMode (light/dark/auto). - get_site_analytics: Privacy-friendly traffic stats for a site: pageviews, unique visitors, daily trend, top pages and referrer categories (search, social, ai, direct, other). ## Docs - [MCP documentation](https://openpress.blog/docs/mcp) - [Sign up](https://openpress.blog/signup)