Deterministic Google Docs API compiler. Your agent stops silently corrupting documents.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-convergentmethods-arezzo": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Deterministic Google Docs API compiler. Your agent stops silently corrupting documents.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in developer-tools
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Manage Supabase projects — databases, auth, storage, and edge functions
An open-source AI agent that brings the power of Gemini directly into your terminal.
MCP Security Weekly
Get CVE alerts and security updates for io.github.ConvergentMethods/arezzo and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Deterministic compiler for Google Docs API operations.
You cannot safely modify a Google Doc by constructing batchUpdate requests yourself. The API uses UTF-16 code units with cascading index shifts — insert 10 characters at position 50, and every subsequent index in your batch is now wrong. A single miscalculation silently corrupts the document with no error message.
Arezzo compiles semantic intent into a correct request sequence. Tell it what you want to do; it handles the index arithmetic.
Arezzo exposes three tools via the Model Context Protocol:
read_document(document_id)
→ Returns the document's structural map: headings with hierarchy,
named ranges, tables, section boundaries. Call this before editing
so you know what addresses are available.
edit_document(document_id, operations)
→ Compiles operations into correct batchUpdate requests and executes
them. Handles UTF-16 arithmetic, cascading index shifts, and
OT-compatible request ordering. Supported operations: insert/delete/
replace text, formatting (bold, italic, headings, links), tables,
lists, images, headers/footers, footnotes, named ranges.
validate_operations(document_id, operations)
→ Compile-only dry run. Returns the compiled requests for inspection
without executing. Use before edit_document when uncertain.
{
"type": "insert_text",
"address": {"heading": "Revenue Analysis"},
"params": {"text": "New paragraph content.\n"}
}
Address modes:
{"heading": "Section Name"} — by heading text{"named_range": "range_name"} — by named range{"bookmark": "bookmark_id"} — by bookmark ID{"start": true} — document start{"end": true} — document end{"index": 42} — absolute UTF-16 indexOperation types:
insert_text, delete_content, replace_all_text, replace_section,
update_text_style, update_paragraph_style, insert_bullet_list,
insert_table, insert_table_row, insert_table_column,
delete_table_row, delete_table_column, insert_image,
create_header, create_footer, create_footnote,
create_named_range, replace_named_range_content, insert_page_break
read_document → edit_document → (if structural changes) read_document → edit_document
Always read before editing. After inserting structural elements (tables, headers, footers), read again to get the new element indices before adding content inside them.
pip install arezzo
arezzo init
arezzo init walks through Google OAuth setup and writes platform config files for your MCP client.
Prerequisites: A Google Cloud project with the Google Docs API enabled and an OAuth 2.0 client ID (Desktop application type).
arezzo init
The wizard:
credentials.json to ~/.config/arezzo/For Claude Desktop, arezzo init prints the config block to add manually.
After arezzo init, config files are written to your project directory:
Claude Code / Cursor (.mcp.json):
{
"mcpServers": {
"arezzo": {
"command": "arezzo"
}
}
}
VS Code (.vscode/mcp.json):
{
"servers": {
"arezzo": {
"type": "stdio",
"command": "arezzo"
}
}
}
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"arezzo": {
"command": "arezzo"
}
}
}
The Google Docs batchUpdate API operates on UTF-16 code units with absolute index positions. Every character insertion or deletion shifts all subsequent indices. In a batch with multiple mutations, each request's indices must account for the effect of every pr