AI control plane
Piloter mysaas.blog avec une IA
Lecture publique sans compte, création riche avec OAuth, images, SEO, SaaS liés, commentaires et publication contrôlée par scopes.
endpoint https://mysaas.blog/mcp
transport Streamable HTTP JSON-RPC
public_tools 8
private_tools 22
rest_endpoints 23
Vue d'ensemble
La surface agentique expose le même contenu public qu'un visiteur peut lire, puis ajoute une couche authentifiée pour créer des brouillons, importer des images, régler le SEO, publier ou programmer.
Lecture publique
Les tools préfixés public_ ne demandent aucun token. Ils ne retournent que les posts publiés, profils publics, commentaires publics, tags et catégories visibles sur le 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
Authentification
Les actions privées utilisent OAuth authorization code + PKCE ou une agent key personnelle. Les scopes séparent lecture, brouillon, média, publication, commentaires, SaaS et intégrations.
MCP tools
profile_get
Fetch the current user's profile.
OAuth ou agent key
profile:read
profile_update
Update the current user's public builder profile.
OAuth ou agent key
profile:write
saas_list
List SaaS entries owned by the current user.
OAuth ou agent key
saas:read
saas_create
Create a manual SaaS entry.
OAuth ou agent key
saas:write
saas_update
Update one SaaS entry.
OAuth ou agent key
saas:write
categories_list
List post categories.
OAuth ou agent key
categories:read
tags_list
List available tags for the user.
OAuth ou agent key
tags:read
comments_list
List comments authored by the user or left on the user's posts.
OAuth ou agent key
comments:read
comment_create
Create a comment on a published post.
OAuth ou agent key
comments:write
integrations_get
Read integration state.
OAuth ou agent key
integrations:read
mrrcalendar_sync
Queue a sync for MRR Calendar.
OAuth ou agent key
integrations:write
posts_list
List the current user's posts.
OAuth ou agent key
posts:read
post_get
Fetch one owned post.
OAuth ou agent key
posts:read
post_preflight
Validate a rich post payload.
OAuth ou agent key
posts:write
post_create_draft
Create a rich draft post.
OAuth ou agent key
posts:write
post_update_draft
Update an owned post.
OAuth ou agent key
posts:write
post_publish
Publish a post immediately.
OAuth ou agent key
posts:publish
post_schedule
Schedule post publication.
OAuth ou agent key
posts:publish
post_unpublish
Move a post back to draft.
OAuth ou agent key
posts:publish
post_archive_draft
Archive an unpublished draft created by mistake.
OAuth ou agent key
posts:delete
media_list
List active media assets.
OAuth ou agent key
media:read
media_import_from_url
Import a public HTTPS image.
OAuth ou agent key
media:write
REST API
Le contrat REST complet est machine-readable: chaque endpoint décrit ses paramètres, body JSON ou multipart, réponses, erreurs et scopes. Les modes publication now et schedule demandent posts:publish en plus de posts:write.
/api/v1/posts
List authenticated user's posts.
OAuth ou agent key
posts:read
/api/v1/posts
Create a rich draft post. publication.mode now or schedule additionally requires posts:publish.
OAuth ou agent key
posts:write
/api/v1/posts/preflight
Validate a rich post payload before saving or publishing.
OAuth ou agent key
posts:write
/api/v1/posts/{id}
Fetch one owned post. Draft and scheduled posts additionally require posts:drafts:read.
OAuth ou agent key
posts:read
/api/v1/posts/{id}
Update a rich draft post. Updating live or scheduled posts additionally requires posts:publish.
OAuth ou agent key
posts:write
/api/v1/posts/{id}
Archive an unpublished draft. Published and scheduled posts are refused.
OAuth ou agent key
posts:delete
/api/v1/posts/{id}/publish
Publish a post immediately after preflight.
OAuth ou agent key
posts:publish
/api/v1/posts/{id}/schedule
Schedule a post publication date.
OAuth ou agent key
posts:publish
/api/v1/posts/{id}/unpublish
Move a public or scheduled post back to draft.
OAuth ou agent key
posts:publish
/api/v1/media
List active media assets for the authenticated user.
OAuth ou agent key
media:read
/api/v1/media
Upload an image file to the media library.
OAuth ou agent key
media:write
/api/v1/media/import
Import a public HTTPS image.
OAuth ou agent key
media:write
/api/v1/profile
Read authenticated profile.
OAuth ou agent key
profile:read
/api/v1/profile
Update public profile fields.
OAuth ou agent key
profile:write
/api/v1/saas
List authenticated user's SaaS entries.
OAuth ou agent key
saas:read
/api/v1/saas
Create a manual SaaS entry.
OAuth ou agent key
saas:write
/api/v1/saas/{id}
Update one SaaS entry.
OAuth ou agent key
saas:write
/api/v1/categories
List post categories.
OAuth ou agent key
categories:read
/api/v1/tags
List available tags.
OAuth ou agent key
tags:read
/api/v1/comments
List comments owned by or addressed to the authenticated user.
OAuth ou agent key
comments:read
/api/v1/comments
Create a comment on a published post.
OAuth ou agent key
comments:write
/api/v1/integrations
Read connected integration state.
OAuth ou agent key
integrations:read
/api/v1/integrations/mrrcalendar/sync
Queue a sync for MRR Calendar.
OAuth ou agent key
integrations:write
Post riche
Un post agentique n'est pas du Markdown brut. Il contient des traductions, du HTML editor sanitizé, une image SEO, des sources, des tags, une catégorie, des SaaS liés et un mode de publication.
{
"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" }
}Réponses et retries
Les réponses agentiques utilisent uniquement l'enveloppe stable ok/data/meta. Les clients doivent lire les ressources dans data.
{
"ok": true,
"data": { "post": { "id": "cm..." } },
"meta": {
"scopes": ["posts:read", "posts:write"],
"idempotency": { "key": "draft-2026-07-05-a", "replayed": false }
}
}Brouillons
Les brouillons se listent avec status=draft ou status=all, ou l'ancien includeDrafts=true. Ces vues exigent posts:drafts:read. Un brouillon créé par erreur peut être archivé avec posts:delete.
GET /api/v1/posts?status=draft
GET /api/v1/posts?status=all
DELETE /api/v1/posts/{id}Flux média
Importez ou uploadez une image, récupérez media.id et media.url, puis référencez mediaId dans seoImage ou data-media-id dans le HTML editor.
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
La lecture des contenus publics ne nécessite pas de clé. Les actions d’écriture nécessitent OAuth ou une clé agent avec les scopes adaptés. La suppression utilise posts:delete, désactivé par défaut lors de la création d’une clé; elle archive le post, le retire des surfaces publiques et libère ses slugs.