MCP server for creating Google Docs from Markdown with full formatting
Project description
mcp-gdocs
MCP server for creating Google Docs from Markdown with full formatting support. Designed for AI agents — any MCP-compatible client (Claude Code, Claude Desktop, etc.) can create, update, and search Google Docs.
Tools
| Tool | Description |
|---|---|
markdown_to_gdoc |
Convert Markdown to a Google Doc, get back a URL |
update_google_doc |
Update existing Google Doc with new Markdown content |
list_google_docs |
Search your Google Docs by name |
Supported Markdown
- Headings (h1-h4)
- Bold, italic,
inline code - Bullet lists (nested)
- Tables with headers
- Links
Prerequisites
- Python 3.10+
- Google Cloud project with these APIs enabled:
- OAuth 2.0 credentials (Desktop app type) — download from Google Cloud Console
Installation
# Clone the repository
git clone https://github.com/Baho73/mcp-gdocs.git
cd mcp-gdocs
# Create virtual environment and install
python -m venv .venv
.venv/Scripts/activate # Windows
# source .venv/bin/activate # Linux/Mac
pip install -e .
Setup
1. Add Google OAuth credentials
mkdir credentials
cp /path/to/your/client_secret.json credentials/client_secret.json
2. Authenticate (first run)
python -m mcp_gdocs.server
This opens a browser for Google OAuth consent. After authorization, the token is cached in credentials/token.json.
3. Add to Claude Code
claude mcp add mcp-gdocs -- /path/to/mcp-gdocs/.venv/Scripts/python -m mcp_gdocs.server
Or add to .claude.json manually:
{
"mcpServers": {
"mcp-gdocs": {
"type": "stdio",
"command": "/path/to/mcp-gdocs/.venv/Scripts/python",
"args": ["-m", "mcp_gdocs.server"],
"env": {
"GDOCS_CREDENTIALS_PATH": "/path/to/credentials/client_secret.json",
"GDOCS_TOKEN_PATH": "/path/to/credentials/token.json"
}
}
}
}
4. Add to Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"mcp-gdocs": {
"command": "/path/to/mcp-gdocs/.venv/Scripts/python",
"args": ["-m", "mcp_gdocs.server"],
"env": {
"GDOCS_CREDENTIALS_PATH": "/path/to/credentials/client_secret.json",
"GDOCS_TOKEN_PATH": "/path/to/credentials/token.json"
}
}
}
}
Usage Examples
Once connected, any MCP client can use these tools:
Create a document:
"Create a Google Doc from this markdown with title 'Meeting Notes'"
Search documents:
"Find my Google Docs about 'project plan'"
Update a document:
"Update the Google Doc with ID xxx with this new content"
Environment Variables
| Variable | Default | Description |
|---|---|---|
GDOCS_CREDENTIALS_PATH |
credentials/client_secret.json |
Path to Google OAuth client secret |
GDOCS_TOKEN_PATH |
credentials/token.json |
Path to cached OAuth token |
Architecture
Built with GRACE framework. Four modules:
- M-AUTH — OAuth2 authentication with token caching
- M-CONVERTER — Markdown to DOCX conversion (python-docx + mistune)
- M-GDRIVE — Google Drive API client (upload, update, list)
- M-SERVER — MCP server (FastMCP, stdio transport)
Tech Stack
- Python 3.10+
- MCP SDK — Model Context Protocol
- python-docx — DOCX generation
- mistune — Markdown parsing
- Google Drive API v3
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_gdocs-0.1.0.tar.gz.
File metadata
- Download URL: mcp_gdocs-0.1.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c68aa29e665ca9d4ee95344356e72ec5ca9e66cbc293e87bf2626e43bbc9600
|
|
| MD5 |
c5378e76be20b7e014f3ab9401730dd2
|
|
| BLAKE2b-256 |
4aa3c4bd08a878c27f7565ccb7fcf87f86c8cc70de2724a95d07fa041eb0035f
|
File details
Details for the file mcp_gdocs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_gdocs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75e8bd4822945c19a4c8793be83acbbf88c3e0fdb51b8c335b34c379bfe47255
|
|
| MD5 |
07f2da3166d1a9a6f9c015db8e8135be
|
|
| BLAKE2b-256 |
02f4bc2e19203230a1df464e40b57dca26d7fd66af8db64d94b204b4730f8f6d
|