Engineering Documentation MCP Server
Allows creation, updating, and sharing of formatted Google Docs for repository documentation, with professional formatting and Mermaid diagrams.
Used to share generated Google Docs with specified email addresses via Google Drive permissions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Engineering Documentation MCP Server document my project at /path/to/repo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Engineering Documentation MCP Server
Turn any software repository into professional engineering documentation — automatically.
A production-ready Model Context Protocol (MCP) server that analyzes code repositories and publishes comprehensive documentation directly to Google Docs. Works with Claude Code, Cursor, and any MCP-compatible AI assistant.
What It Does
Say this to your AI assistant:
"Document this project."
The server will:
Analyze the repository — languages, frameworks, API routes, DB models, env vars, CI/CD, dependencies
Generate 13 documentation sections with Mermaid architecture diagrams
Publish a formatted Google Doc and return the URL
Export to Markdown, HTML, or PDF (optional)
Related MCP server: Documentation MCP Server
Features
Feature | Details |
Language Detection | Python, JavaScript, TypeScript, Go, Rust, Java, C#, Ruby, PHP, and more |
Framework Recognition | FastAPI, Django, Flask, Next.js, Express, NestJS, React, LangChain, LangGraph, and more |
API Extraction | FastAPI, Flask, Django URLs, Express, Next.js App Router & Pages Router |
Database Parsing | SQLAlchemy, Django ORM, Prisma, TypeORM, Mongoose |
Architecture Diagrams | Mermaid flowcharts + ER diagrams |
Google Docs | Create, update, share with professional formatting |
Export Formats | Markdown, HTML (with Mermaid), PDF |
CI/CD Detection | GitHub Actions, GitLab CI, CircleCI, Jenkins, Azure DevOps |
12 MCP Tools | Full tool suite exposed to AI assistants |
Quick Start
1. Clone & Install
git clone https://github.com/your-org/engineering-docs-mcp.git
cd engineering-docs-mcp
# Using uv (recommended)
pip install uv
uv sync
# Or using pip
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"2. Set Up Google OAuth
Note (2026 UI): Google renamed "OAuth consent screen" to Google Auth Platform and reorganized it into tabs: Branding, Audience, Data Access, and Clients. The steps below reflect the current UI.
Step 1 — Create a Google Cloud Project
Go to Google Cloud Console
Click the project dropdown (top-left) → New Project
Give it a name (e.g.
Engineering Docs MCP) → Create
Step 2 — Enable the Required APIs
Go to APIs & Services → Library
Search "Google Docs API" → click it → Enable
Search "Google Drive API" → click it → Enable
Step 3 — Configure Google Auth Platform
Go to APIs & Services → Google Auth Platform
If you see a "Get Started" button, click it — this launches the setup wizard:
Wizard — App Information
Field
Value
App name
Engineering Docs MCPUser support email
Your Gmail address
Click Next
Wizard — Audience
Select External (works with any Gmail; choose Internal only for Google Workspace orgs)
Click Next
⚠️ You cannot change External → Internal later without creating a new project.
Wizard — Contact Information
Enter your email for Google notifications
Click Next → Create
Step 4 — Add Scopes (Data Access Tab)
Click the Data Access tab
Click Add or Remove Scopes
In the filter/search box:
Search
Google Docs→ check/auth/documentsSearch
Google Drive→ check/auth/drive
Click Update → Save
Step 5 — Add Test Users (Audience Tab)
Click the Audience tab
Scroll down to Test users → click + Add Users
Enter your Gmail address → Add → Save
While in Testing mode only listed emails can authenticate. You never need to publish the app for personal/dev use.
Step 6 — Create OAuth Credentials (Clients Tab)
Click the Clients tab
Click + Create Client
Application type: Desktop app
Name:
Engineering Docs MCP→ CreateIn the dialog that appears, click Download JSON
Rename the downloaded file to
credentials.jsonPlace it in the project root:
documentation_mcp/
├── credentials.json ← here
├── server.py
└── ...Quick Reference — Old vs New UI
Old UI | New UI (2026) |
OAuth consent screen | Google Auth Platform |
App information page | Branding tab |
Scopes page | Data Access tab |
Test users page | Audience tab |
Credentials page | Clients tab |
3. Configure Environment
cp .env.example .env
# Edit .env if needed — defaults work for most setups4. Run the Server
python server.pyOn first run, a browser window will open for Google OAuth authentication. After authorizing, a token.json is saved for subsequent runs.
Connecting to Claude Code
Add the server to your Claude Code MCP configuration:
# Edit ~/.claude/claude_desktop_config.json (Mac/Linux)
# or %APPDATA%\Claude\claude_desktop_config.json (Windows){
"mcpServers": {
"engineering-docs-mcp": {
"command": "python",
"args": ["/absolute/path/to/engineering-docs-mcp/server.py"],
"env": {
"GOOGLE_CREDENTIALS_FILE": "/absolute/path/to/credentials.json"
}
}
}
}Or using uv:
{
"mcpServers": {
"engineering-docs-mcp": {
"command": "uv",
"args": [
"--directory", "/absolute/path/to/engineering-docs-mcp",
"run", "python", "server.py"
]
}
}
}Restart Claude Code to load the server.
Connecting to Cursor
Add to Cursor's MCP settings (~/.cursor/mcp.json):
{
"mcpServers": {
"engineering-docs-mcp": {
"command": "python",
"args": ["/absolute/path/to/engineering-docs-mcp/server.py"]
}
}
}Example Prompts
Once connected, use natural language:
Document this project.Analyze /path/to/my-api and create a Google Doc. Share it with team@example.com.Generate API documentation for the repository at /home/user/projects/my-service.Export the documentation for /path/to/repo as Markdown.Show me the database schema for /path/to/project.Generate a README for /path/to/my-project.Update Google Doc abc123 with the latest docs for /path/to/repo.Available MCP Tools
Tool | Description |
| Analyze a repo and return structured metadata |
| Full pipeline: analyze → generate → publish to Google Docs |
| Create a formatted Google Doc from analysis |
| Update an existing Google Doc by ID |
| Extract and document all API endpoints |
| Extract and document all database models |
| Generate a professional README.md |
| Generate architecture docs with Mermaid diagrams |
| Export documentation as Markdown |
| Export documentation as styled HTML |
| Export documentation as PDF (requires weasyprint) |
| Share a Google Doc with email addresses |
Generated Documentation Sections
Every generated document includes:
Executive Summary — What the project does in plain language
Project Overview — Purpose, features, stats, contributors
Technology Stack — Languages, frameworks, databases, infrastructure
Folder Structure — Annotated directory tree
Architecture — Patterns, request flow, Mermaid flowchart
API Documentation — All endpoints with methods, auth, handlers
Database Documentation — Models, fields, relationships, ER diagram
Environment Variables — All env vars with descriptions and examples
Installation Guide — Step-by-step setup instructions
Deployment — Docker, Kubernetes, CI/CD instructions
Dependencies — Production and dev dependencies with purposes
Security Notes — Auth, secrets, recommendations
Future Improvements — Suggested enhancements based on analysis
Docker
# Copy environment file
cp .env.example .env
# Build and run
docker compose up -d
# View logs
docker compose logs -f mcp-serverThe Docker setup mounts:
./credentials.json— Google OAuth credentials (read-only)./token.json— OAuth token (persisted across restarts)./output/— Generated export files${REPOS_ROOT:-/repos}— Host directory for repository access
Development
# Install dev dependencies
uv sync
# Run tests
pytest
# Run with coverage
pytest --cov=. --cov-report=html
# Lint
ruff check .
ruff format .
# Type check
mypy .Project Structure
engineering-docs-mcp/
│
├── server.py # FastMCP server with 12 tools
│
├── analyzers/ # Repository analysis engines
│ ├── orchestrator.py # Runs all analyzers in sequence
│ ├── structure.py # File/folder structure + language detection
│ ├── framework.py # Framework, CI/CD, auth, deployment detection
│ ├── api.py # API endpoint extraction
│ ├── database.py # ORM model extraction
│ ├── environment.py # Environment variable extraction
│ ├── dependencies.py # Dependency manifest parsing
│ └── git_info.py # Git metadata
│
├── generators/ # Documentation section generators
│ ├── orchestrator.py # Assembles complete documentation
│ ├── overview.py # Executive summary + project overview
│ ├── tech_stack.py # Technology stack + architecture + Mermaid diagrams
│ ├── structure.py # Folder structure section
│ ├── api_docs.py # API documentation tables
│ ├── database_docs.py # Database documentation tables
│ ├── env_docs.py # Environment variables table
│ ├── installation.py # Installation guide + deployment
│ ├── security.py # Security notes + future improvements
│ └── dependencies_docs.py # Dependencies tables
│
├── google_docs/ # Google Docs integration
│ ├── auth.py # OAuth 2.0 authentication
│ ├── client.py # Create, update, share documents
│ └── formatter.py # batchUpdate request builder
│
├── services/
│ ├── documentation.py # High-level pipeline orchestrator
│ └── export.py # Markdown / HTML / PDF export
│
├── models/
│ ├── analysis.py # Pydantic models for repository analysis
│ └── documentation.py # Pydantic models for documentation
│
├── config/
│ └── settings.py # Pydantic Settings configuration
│
├── tests/ # pytest test suite
│
├── Dockerfile
├── docker-compose.yml
├── pyproject.toml
└── .env.exampleSupported Frameworks
Language | Frameworks |
Python | FastAPI, Django, Flask, LangChain, LangGraph, Celery, SQLAlchemy, Alembic |
JavaScript / TypeScript | Next.js, React, Express, NestJS, Nuxt.js, Vue, Angular, Fastify, Hono |
Testing | pytest, Jest, Vitest |
Infrastructure | Docker, Kubernetes, Terraform |
Environment Variables
Variable | Default | Description |
|
| Path to Google OAuth credentials |
|
| Path to cached OAuth token |
|
| Default output: |
|
| Default document title |
|
| Directory for exported files |
|
| Log verbosity: |
|
| Maximum file size to parse (KB) |
|
| Maximum files to include in analysis |
Extending the Server
Adding a New Framework Detector
Edit analyzers/framework.py and add entries to FRAMEWORK_SIGNATURES:
Framework.MY_FRAMEWORK: [
("*.py", "from my_framework import"),
("requirements*.txt", "my-framework"),
],Add the framework to the Framework enum in models/analysis.py.
Adding a New Documentation Section
Create a generator in
generators/my_section.pyextendingBaseGeneratorRegister it in
generators/orchestrator.pyAdd the field to
ProjectDocumentationinmodels/documentation.py
Troubleshooting
FileNotFoundError: credentials.json
Download OAuth credentials from the Clients tab in APIs & Services → Google Auth Platform and place credentials.json in the project root.
Can't find "OAuth consent screen" in the sidebar
Google renamed it to Google Auth Platform. Navigate to APIs & Services → Google Auth Platform instead.
access_blocked error during OAuth login`
Your email isn't in the Test Users list. Go to Google Auth Platform → Audience tab → Test users and add your Gmail address.
Token refresh failed
Delete token.json and restart the server. A new browser authentication window will open.
Scopes not showing in Data Access tab
The APIs must be enabled first. Go to APIs & Services → Library, enable Google Docs API and Google Drive API, then return to the Data Access tab.
PDF export fails
WeasyPrint requires system libraries. On Ubuntu/Debian:
apt-get install libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0No API endpoints detected
Ensure the repository uses supported frameworks. Currently supports FastAPI, Flask, Django, Express, and Next.js route handlers.
License
MIT — see LICENSE for details.
Available Tools
12 toolsanalyze_repositoryA
Analyze a software repository and return detailed metadata including detected languages, frameworks, API endpoints, database models, environment variables, CI/CD configuration, and dependencies.
Inputs: repo_path (required). Returns: object
create_google_docA
Create a formatted Google Doc from previously generated documentation content.
Inputs: repo_path (required), title, share_with. Returns: object
document_apiA
Extract and document all API endpoints from a repository. Returns a structured list of endpoints with methods, paths, handlers, and auth requirements.
Inputs: repo_path (required). Returns: object
document_databaseA
Extract and document all database models from a repository (SQLAlchemy, Django ORM, Prisma, TypeORM, Mongoose). Returns tables with fields, types, and relationships.
Inputs: repo_path (required). Returns: object
export_htmlB
Generate documentation and export it as a styled HTML file with Mermaid diagram support.
Inputs: repo_path (required), title, output_path. Returns: object
export_markdownB
Generate documentation for a repository and export it as a Markdown file.
Inputs: repo_path (required), title, output_path. Returns: object
export_pdfA
Generate documentation and export it as a PDF file. Requires weasyprint and system dependencies (libpango, libcairo).
Inputs: repo_path (required), title, output_path. Returns: object
generate_architectureB
Generate architecture documentation including Mermaid diagrams for a repository. Returns system architecture flowchart and ER diagram in Mermaid syntax.
Inputs: repo_path (required). Returns: object
generate_project_documentationA
Run the full documentation pipeline on a repository: analyze the code, generate all documentation sections, publish to Google Docs, and optionally export to Markdown/HTML/PDF. Returns the Google Docs URL and export paths.
Inputs: repo_path (required), title, export_pdf, share_with, +3 more. Returns: object
generate_readmeA
Generate a professional README.md for a repository based on code analysis. Includes badges, description, installation, usage, and API overview.
Inputs: repo_path (required), output_path. Returns: object
update_google_docB
Regenerate documentation and update an existing Google Doc by ID.
Inputs: doc_id (required), repo_path (required), title. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Most tools target distinct outputs (README, architecture, API, database, exports), but generate_project_documentation is a superset that overlaps with the individual generation and export tools, creating mild ambiguity about when to use it versus the separate tools.
All tool names follow a consistent verb_noun snake_case pattern (analyze_repository, generate_readme, export_pdf, share_google_doc), making the naming predictable and easy to navigate.
With 12 tools, the server is well-scoped for an engineering documentation workflow, covering analysis, generation, publishing, and exporting without excessive redundancy.
The tool surface covers the core documentation lifecycle (analyze, generate, publish, export, share), but lacks simple management operations like listing or deleting Google Docs, which are minor gaps for a full workflow.
Related MCP Connectors
Generate and review codebase docs. 77 tools; scoped, credit-approved repository reviews.
Architecture diagrams, explanations and Mermaid source for public GitHub repositories.
Generate wiki docs from source code. Supports PowerShell, Python, Go, C#, Java, COBOL.
Versioned documentation registry and semantic search for AI tools and coding assistants.
Related MCP Servers
- -licenseBqualityNot gradedmaintenanceAutomates the creation of standardized documentation by extracting information from source files and applying templates, with integration capabilities for GitHub, Google Drive, and Perplexity AI.33-
- AlicenseAqualityBmaintenanceGenerates professional documentation for multi-language codebases with deep AST-based code analysis, supporting Docusaurus, MkDocs, and Sphinx frameworks. Includes API documentation generation, PDF export, OpenAPI spec generation, and sales-ready documentation for code marketplaces.9MIT
- AlicenseNot gradedqualityDmaintenanceAutomatically generates comprehensive wiki documentation from any codebase, including Mermaid diagrams, source code citations, and automated quality checks.3MIT
- AlicenseNot gradedqualityDmaintenanceGenerates comprehensive documentation (architecture overview, dependency graph, API surface, and README) for any codebase locally without external APIs.8 npm1MIT