Connecter un client MCP personnalisé à WordPress.com
Si vous développez un client MCP (Model Context Protocol) ou si vous en étendez un existant, l’intégration avec WordPress.com permet à vos utilisateurs d’exploiter les données de leur site WordPress.com dans votre outil d’IA via une interface MCP standard. Cela rend possibles des workflows tels que la recherche dans le contenu d’un site, la récupération d’articles et de pages pour résumé ou analyse, la réponse à des questions basées sur le contenu publié, et plus généralement l’utilisation de WordPress.com comme source de contenu fiable au sein d’un assistant compatible MCP.
Ce guide se concentre sur les éléments spécifiques à WordPress.com : comment s’authentifier et quel point de terminaison MCP appeler. Pour des conseils généraux sur la création d’un client MCP, consultez la documentation officielle du client MCP.
Vue d’ensemble
WordPress.com expose un serveur MCP via HTTPS et le protège avec OAuth 2.1 en utilisant :
- Enregistrement dynamique de clients : cela vous permet d’enregistrer des clients de manière programmatique.
- Flux de code d’autorisation avec PKCE : Proof Key for Code Exchange (PKCE) est recommandé pour les clients publics comme les applications de bureau et en ligne de commande.
Le flux se présente comme suit :
- Enregistrez votre client auprès de WordPress.com pour obtenir un
client_id - Faites passer l’utilisateur par l’étape d’autorisation OAuth (avec PKCE)
- Échangez le
coded’autorisation contre unaccess_token - Appelez le point de terminaison MCP de WordPress.com avec
Authorization: Bearer …
Points de terminaison WordPress.com
Tous les points de terminaison ci-dessous sont hébergés sur :
- URL de base :
https://public-api.wordpress.com
OAuth 2.1
- Enregistrer un client :
POST /oauth2-1/register - Autoriser :
GET /oauth2-1/authorize - Jeton :
POST /oauth2-1/token
MCP
- Serveur MCP WordPress.com :
POST /wpcom/v2/mcp/v1
Étape 1 : Enregistrer votre client OAuth
WordPress.com prend en charge l’enregistrement dynamique de clients, ce qui signifie que votre client MCP peut s’enregistrer lui-même sans étape de configuration manuelle distincte.
Requête
POST https://public-api.wordpress.com/oauth2-1/registerContent-Type: application/json
Exemple :
curl -X POST "https://public-api.wordpress.com/oauth2-1/register"
-H "Content-Type: application/json"
--data '{
"client_name": "My MCP Client",
"redirect_uris": ["http://localhost:8080/callback"],
"grant_types": ["authorization_code", "refresh_token"]
}'
Ce que vous obtenez en retour
La réponse inclut un client_id et d’autres métadonnées. WordPress.com est conçu pour prendre en charge les clients publics, et les réponses d’enregistrement indiquent généralement :
token_endpoint_auth_method: "none"
Autrement dit, les requêtes de jeton ne nécessitent pas de secret client. PKCE assure la sécurité de l’échange du code d’autorisation.
Au minimum, conservez le client_id que vous recevez lors de l’enregistrement et assurez-vous d’utiliser systématiquement l’une des valeurs exactes de redirect_uri que vous avez enregistrées. Vous pouvez éventuellement conserver le reste de la réponse d’enregistrement (par exemple, les horodatages ou l’URI du client d’enregistrement) si cela facilite le dépannage ou l’inspection ultérieure de la configuration du client.
Étape 2 : Envoyer l’utilisateur vers l’autorisation
Pour authentifier un utilisateur, votre client devra :
- Générer un
code_verifierPKCE - Dériver un
code_challengeà l’aide de la méthodeS256 - Ouvrir (ou rediriger) l’utilisateur vers la page d’autorisation de WordPress.com
Requête d’autorisation
GET https://public-api.wordpress.com/oauth2-1/authorize
Exemple :
https://public-api.wordpress.com/oauth2-1/authorize?
response_type=code&
client_id=YOUR_CLIENT_ID&
redirect_uri=http://localhost:8080/callback&
code_challenge=YOUR_CODE_CHALLENGE&
code_challenge_method=S256&
scope=auth
Une fois que l’utilisateur a approuvé l’accès, WordPress.com redirige le navigateur vers votre redirect_uri avec un paramètre de requête code. Votre redirect_uri doit correspondre exactement à l’une des URI que vous avez enregistrées.
Étape 3 : Échanger le code d’autorisation contre des jetons
Une fois que votre client a reçu le code d’autorisation, échangez-le contre un jeton d’accès au point de terminaison de jeton.
Requête de jeton
POST https://public-api.wordpress.com/oauth2-1/tokenContent-Type: application/x-www-form-urlencoded
Exemple :
curl -X POST "https://public-api.wordpress.com/oauth2-1/token"
-H "Content-Type: application/x-www-form-urlencoded"
--data "grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=http://localhost:8080/callback&code_verifier=YOUR_CODE_VERIFIER&client_id=YOUR_CLIENT_ID"
Résultat
Le point de terminaison du jeton renvoie une réponse OAuth contenant un access_token et peut également inclure des champs comme expires_in et un refresh_token.
Utilisez l’access_token pour authentifier les appels au point de terminaison MCP de WordPress.com via Authorization: Bearer YOUR_ACCESS_TOKEN.
Étape 4 : appeler le serveur MCP de WordPress.com
Le serveur MCP de WordPress.com est accessible via HTTP en envoyant des requêtes MCP par POST au point de terminaison MCP, authentifiées avec votre jeton d’accès OAuth.
Requête MCP
POST https://public-api.wordpress.com/wpcom/v2/mcp/v1
En-têtes :
Authorization: Bearer YOUR_ACCESS_TOKENContent-Type: application/json
Exemple :
{
"method": "tools/call",
"params": {
"name": "wpcom-mcp-posts-search",
"arguments": {
"wpcom_site": "yoursite.wordpress.com",
"search": "recent updates"
}
}
}
Dans cet exemple, votre client demande au serveur MCP de WordPress.com d’exécuter l’outil nommé wpcom-mcp-posts-search avec les arguments fournis.
Notes d’implémentation
- PKCE est requis pour les clients publics. N’intégrez pas de secrets dans les applications distribuées.
- Tous les appels MCP doivent inclure
Authorization: Bearer …avec un jeton d’accès WordPress.com valide. - Les URI de redirection doivent correspondre à l’enregistrement. Si vous utilisez
http://localhostpendant le développement, enregistrez exactement cette URL de rappel.
Dernière mise à jour : juillet 03, 2026