Google Docs to WordPress MCP by Docswrite
Docswrite created the first in the world MCP to write to Google Docs and turn the google docs into a perfectly formatted post on WordPress.
This server provides tools for working with Google Docs, Google Drive, and WordPress through Docswrite.
google-docs-createCreates a new Google Docs document.
title: The title of the new documentcontent: The content to write to the documentgoogle-docs-updateUpdates an existing Google Docs document.
documentId: The ID of the document to updatecontent: The content to write to the documentreplaceAll (optional): Whether to replace all content (true) or append (false)google-docs-searchSearches for Google Docs documents using Google Drive API.
query: The search query to find documentsgoogle-docs-deleteDeletes a Google Docs document using Google Drive API.
documentId: The ID of the document to deletedocswrite-publishPublishes content from Google Docs to WordPress.
google_docs_url (required): URL of the Google Docs documenttitle (optional): Title of the blog postslug (optional): URL slug for the posttags (optional): Comma-separated list of tagscategories (optional): Comma-separated list of categoriesstate (optional): Post state (draft/publish)author (optional): Author namedate (optional): Publication dateexcerpt (optional): Post excerptpost_type (optional): Post type (post/page)featured_image_url (optional): URL of the featured imagefeatured_image_alt_text (optional): Alt text for featured imagefeatured_image_caption (optional): Caption for featured imageexport_settings (optional): Object containing:
compress_images: Booleandemote_headings: Booleanconvert_to_webp: Booleanfirst_image_as_featured_image: Booleanadd_no_follow_to_external_links: Booleanbold_as_strong: Booleanwp_content_editor: Stringnewspack_settings (optional): Object containing:
newspack_article_summary: Stringnewspack_article_summary_title: Stringnewspack_post_subtitle: Stringyoast_settings (optional): Object containing:
yoast_focuskw: Stringyoast_metadesc: Stringyoast_title: Stringrankmath_settings (optional): Object containing:
rank_math_focus_keyword: Stringdocswrite-job-statusChecks the status of a Docswrite publishing job.
jobId: The ID of the job to checkqueueType (optional): The type of queue (default: “post”)src/index.ts: Main server implementation and tool definitions
src/auth.ts: Google OAuth2 authentication handling
src/google-docs.ts: Google Docs and Drive API operations
src/docswrite-request.ts: Docswrite API integration
src/oauth-server.ts: OAuth callback server implementation
src/config.ts: Configuration management
src/utils.ts: Utility functions
Create a Google Cloud Project and enable:
Configure OAuth2 credentials:
credentials.json in project roothttp://localhost:3000/oauth2callbackInstall dependencies:
npm install
npm run build
Run the server with your Docswrite token:
node dist/index.js --docswriteToken=your-docswrite-token
// 1. Create a new Google Doc
{
"title": "My New Post",
"content": "This is the content of my post."
}
// 2. Publish to WordPress
{
"google_docs_url": "https://docs.google.com/document/d/your-doc-id/edit",
"title": "My New Post",
"state": "draft"
}
// 3. Check publishing status
{
"jobId": "your-job-id"
}
// 1. Search for documents
{
"query": "WordPress"
}
// 2. Update a document
{
"documentId": "your-doc-id",
"content": "Updated content",
"replaceAll": true
}
// 1. Create document
{
"title": "Draft Post",
"content": "Initial draft"
}
// 2. Update content
{
"documentId": "your-doc-id",
"content": "Additional content",
"replaceAll": false
}
// 3. Publish to WordPress
{
"google_docs_url": "https://docs.google.com/document/d/your-doc-id/edit",
"title": "Final Post",
"state": "publish",
"categories": "tutorials",
"tags": "wordpress, google-docs"
}