AI control plane

Control mysaas.blog with AI

Public reading without an account, rich authenticated creation with OAuth, images, SEO, linked SaaS, comments and scoped publishing.

mcp · 2025-11-25

endpoint https://mysaas.blog/mcp

transport Streamable HTTP JSON-RPC

public_tools 8

private_tools 22

rest_endpoints 23

Overview

The agent surface exposes the same public content a visitor can read, then adds an authenticated layer to create drafts, import images, tune SEO, publish or schedule.

Public read

Tools prefixed with public_ require no token. They only return published posts, public profiles, public comments, tags and categories visible on the site.

EndpointAuthScope

public_posts_list

List published posts visible to any visitor.

Public

none

public_post_get

Read one published post with content, SEO image, tags, sources and related SaaS.

Public

none

public_comments_list

List comments visible below a published post.

Public

none

public_profile_get

Read a builder profile exactly as a public visitor can see it.

Public

none

public_author_posts_list

List published posts for one public builder profile.

Public

none

public_tags_list

List tags used by published posts.

Public

none

public_categories_list

List public categories and published post counts.

Public

none

public_saas_posts_list

List public SaaS entries for a builder with the published posts that mention them.

Public

none

Authentication

Private actions use OAuth authorization code + PKCE or a personal agent key. Scopes separate reading, drafts, media, publishing, comments, SaaS and integrations.

MCP tools

EndpointAuthScope

profile_get

Fetch the current user's profile.

OAuth or agent key

profile:read

profile_update

Update the current user's public builder profile.

OAuth or agent key

profile:write

saas_list

List SaaS entries owned by the current user.

OAuth or agent key

saas:read

saas_create

Create a manual SaaS entry.

OAuth or agent key

saas:write

saas_update

Update one SaaS entry.

OAuth or agent key

saas:write

categories_list

List post categories.

OAuth or agent key

categories:read

tags_list

List available tags for the user.

OAuth or agent key

tags:read

comments_list

List comments authored by the user or left on the user's posts.

OAuth or agent key

comments:read

comment_create

Create a comment on a published post.

OAuth or agent key

comments:write

integrations_get

Read integration state.

OAuth or agent key

integrations:read

mrrcalendar_sync

Queue a sync for MRR Calendar.

OAuth or agent key

integrations:write

posts_list

List the current user's posts.

OAuth or agent key

posts:read

post_get

Fetch one owned post.

OAuth or agent key

posts:read

post_preflight

Validate a rich post payload.

OAuth or agent key

posts:write

post_create_draft

Create a rich draft post.

OAuth or agent key

posts:write

post_update_draft

Update an owned post.

OAuth or agent key

posts:write

post_publish

Publish a post immediately.

OAuth or agent key

posts:publish

post_schedule

Schedule post publication.

OAuth or agent key

posts:publish

post_unpublish

Move a post back to draft.

OAuth or agent key

posts:publish

post_archive_draft

Archive an unpublished draft created by mistake.

OAuth or agent key

posts:delete

media_list

List active media assets.

OAuth or agent key

media:read

media_import_from_url

Import a public HTTPS image.

OAuth or agent key

media:write

REST API

The full REST contract is machine-readable: every endpoint documents parameters, JSON or multipart bodies, responses, errors and scopes. publication modes now and schedule require posts:publish in addition to posts:write.

EndpointAuthScope

/api/v1/posts

List authenticated user's posts.

OAuth or agent key

posts:read

/api/v1/posts

Create a rich draft post. publication.mode now or schedule additionally requires posts:publish.

OAuth or agent key

posts:write

/api/v1/posts/preflight

Validate a rich post payload before saving or publishing.

OAuth or agent key

posts:write

/api/v1/posts/{id}

Fetch one owned post. Draft and scheduled posts additionally require posts:drafts:read.

OAuth or agent key

posts:read

/api/v1/posts/{id}

Update a rich draft post. Updating live or scheduled posts additionally requires posts:publish.

OAuth or agent key

posts:write

/api/v1/posts/{id}

Archive an unpublished draft. Published and scheduled posts are refused.

OAuth or agent key

posts:delete

/api/v1/posts/{id}/publish

Publish a post immediately after preflight.

OAuth or agent key

posts:publish

/api/v1/posts/{id}/schedule

Schedule a post publication date.

OAuth or agent key

posts:publish

/api/v1/posts/{id}/unpublish

Move a public or scheduled post back to draft.

OAuth or agent key

posts:publish

/api/v1/media

List active media assets for the authenticated user.

OAuth or agent key

media:read

/api/v1/media

Upload an image file to the media library.

OAuth or agent key

media:write

/api/v1/media/import

Import a public HTTPS image.

OAuth or agent key

media:write

/api/v1/profile

Read authenticated profile.

OAuth or agent key

profile:read

/api/v1/profile

Update public profile fields.

OAuth or agent key

profile:write

/api/v1/saas

List authenticated user's SaaS entries.

OAuth or agent key

saas:read

/api/v1/saas

Create a manual SaaS entry.

OAuth or agent key

saas:write

/api/v1/saas/{id}

Update one SaaS entry.

OAuth or agent key

saas:write

/api/v1/categories

List post categories.

OAuth or agent key

categories:read

/api/v1/tags

List available tags.

OAuth or agent key

tags:read

/api/v1/comments

List comments owned by or addressed to the authenticated user.

OAuth or agent key

comments:read

/api/v1/comments

Create a comment on a published post.

OAuth or agent key

comments:write

/api/v1/integrations

Read connected integration state.

OAuth or agent key

integrations:read

/api/v1/integrations/mrrcalendar/sync

Queue a sync for MRR Calendar.

OAuth or agent key

integrations:write

Rich post

An agentic post is not raw Markdown. It contains translations, sanitized editor HTML, an SEO image, sources, tags, category, linked SaaS and a publication mode.

{
  "translations": [{
    "locale": "fr",
    "title": "Build log",
    "excerpt": "Résumé SEO",
    "contentHtml": "<h2>...</h2>",
    "seoImage": { "mode": "manual", "mediaId": "cm..." }
  }],
  "tags": ["pricing", "seo"],
  "sources": [{ "url": "https://example.com", "label": "Source" }],
  "relatedSaasIds": ["cm..."],
  "publication": { "mode": "draft" }
}

Responses and retries

Agent responses only use the stable ok/data/meta envelope. Clients must read resource payloads from data.

{
  "ok": true,
  "data": { "post": { "id": "cm..." } },
  "meta": {
    "scopes": ["posts:read", "posts:write"],
    "idempotency": { "key": "draft-2026-07-05-a", "replayed": false }
  }
}

Drafts

Drafts are listed with status=draft or status=all, or the older includeDrafts=true. These views require posts:drafts:read. A mistaken draft can be archived with posts:delete.

GET /api/v1/posts?status=draft
GET /api/v1/posts?status=all
DELETE /api/v1/posts/{id}

Media flow

Import or upload an image, read media.id and media.url, then reference mediaId in seoImage or data-media-id inside editor HTML.

POST /api/v1/media/import
{ "url": "https://example.com/hero.png" }

{
  "translations": [{
    "seoImage": { "mode": "manual", "mediaId": "cm_media_123" },
    "contentHtml": "<img src=\"https://...\" data-media-id=\"cm_media_123\" alt=\"...\" />"
  }]
}

Permissions

Public content can be read without a key. Write actions require OAuth or an agent key with the matching scopes. Deletion uses posts:delete, disabled by default when a key is created; it archives the post, removes it from public surfaces and releases its slugs.