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.

mcp · 2026-07-28

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.

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

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

EndpointAuthScope

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.

EndpointAuthScope

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