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.
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.
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
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.
/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.