AI control plane
Piloter mysaas.blog avec une IA
Lecture publique sans compte, création riche avec OAuth, images, SEO, traduction FR/EN et publication contrôlée par scopes.
endpoint https://mysaas.blog/mcp
transport Streamable HTTP
public_tools 8
private_tools 27
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, proposer une traduction FR/EN, publier ou programmer. MCP Stable 2.0 utilise exclusivement le protocole 2026-07-28 en Streamable HTTP : server/discover, enveloppe _meta par requête et structuredContent direct par tool.
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. Dans ChatGPT, l'hôte lance OAuth et conserve le token : l'utilisateur ne colle jamais de bearer token dans la conversation. Les scopes séparent lecture, brouillon, média, publication, commentaires, SaaS et intégrations. Les accès reviewer OpenAI se créent et se révoquent depuis Admin → Reviewers ; Infisical reste réservé aux secrets serveur.
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
editorial_context_get
Fetch the current user's profile, editorial preferences and permitted article context.
OAuth ou agent key
settings:read
editorial_preferences_update
Update private writing defaults without publishing content.
OAuth ou agent key
settings: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_translate
Propose a faithful FR/EN translation without saving it.
OAuth ou agent key
posts:write
post_create_draft
Create a rich draft post.
OAuth ou agent key
posts:write
post_update_draft
Patch an unpublished post; omitted translation SEO metadata is preserved and mediaId resolves to the canonical URL.
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
analytics_get
Read unique post views and daily audience data.
OAuth ou agent key
posts:analytics:read
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
media_import
Import ChatGPT file inputs into the media library.
OAuth ou agent key
media:write
Façade ChatGPT
La façade dédiée /mcp/chatgpt propose 27 outils pour gérer le profil, les préférences éditoriales, les SaaS, les catégories, les tags, les sources, les commentaires, les intégrations, écrire, relire, traduire et piloter le cycle de vie d’un article. Elle expose cinq skills importables (manage-posts, manage-saas, manage-profile-and-editorial-preferences, manage-community-and-integrations et analytics), qui couvrent les sept workflows historiques. Le workflow accepte fr, en ou les deux dans un même brouillon : post_translate prépare une proposition non persistée, puis les médias, sources structurées, tags, catégories et relations SaaS sont validés avant la sauvegarde et la publication explicite. Les sources ne sont pas recopiées en bibliographie dans le body ; les citations contextuelles et les mentions SaaS utilisent des liaisons suivies.
endpoint
https://mysaas.blog/mcp/chatgpt
oauth resource
https://mysaas.blog/.well-known/oauth-protected-resource/mcp/chatgpt
skills
io.modelcontextprotocol/skills
locales
fr, en
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
Le REST utilise l'enveloppe ok/data/meta et les ressources se lisent dans data. MCP expose le structuredContent direct annoncé par outputSchema; il n'est pas enveloppé dans le contrat REST. Le endpoint MCP n'accepte que 2026-07-28 et ne fait aucun fallback 2025.
REST
{
"ok": true,
"data": { "post": { "id": "cm..." } },
"meta": { "scopes": ["posts:read", "posts:write"] }
}
MCP tools/call
{
"result": {
"structuredContent": {
"ok": true,
"post": { "id": "cm..." },
"meta": { "idempotency": { "key": "draft-2026-08-01-a", "replayed": false } }
}
}
}Brouillons
Les brouillons se listent avec status=draft ou status=all, ou 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, puis référencez mediaId dans seoImage ou data-media-id dans le HTML editor. Le serveur résout l'URL canonique depuis la médiathèque et conserve les métadonnées SEO omises lors d'un patch de traduction.
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.