Uses Jinja2 templating engine to auto-generate 13+ specialized documentation templates including architecture guides, phase plans, checklists, and research reports with security sandboxing.
Supports PostgreSQL as an enterprise storage backend for team deployments, enabling multi-user access to documentation and audit trails with bulletproof crash recovery.
Includes comprehensive test suite with 69+ functional tests covering all core functionality, performance benchmarks, and integration testing.
Built as a Python 3.11+ MCP server providing CLI tools and programmatic APIs for documentation management, template generation, and audit trail logging.
Provides zero-config SQLite storage backend for documentation and logging with atomic operations, write-ahead logging, and automatic corruption detection.
Click on "Install 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., "@Scribe MCP Serverlog today's progress on the authentication module"
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.
π Scribe MCP Server
Enterprise-grade documentation governance for AI-powered development β by Corta Labs
Drop-in ready β’ 13+ specialized templates β’ Zero-config SQLite β’ Production-tested
Update v2.2 (Architecture Cleanup)
Scribe MCP v2.2 delivers major architectural improvements:
Performance:
Connection Pooling: New
storage/pool.pywith SQLiteConnectionPool delivers 50-80% latency reductionOptimized Indexes: New composite indexes for agent/emoji filtering
Code Quality:
ResponseFormatter Decomposition: Monolithic 2,934-line class split into 7 specialized modules in
utils/formatters/Database-First State: Session state migrated from state.json to database
Data Management:
Retention Policy: New
scribe_entries_archivetable with configurable cleanup (default 90 days)Agent Isolation: All tools require
agentparameter for session isolation
History: Update v2.1.1 (Diff Editor, Readable Output & ANSI Colors)
Scribe MCP 2.1.1 introduces foundational document lifecycle upgrades, including a fully automated YAML frontmatter engine with round-trip safety, canonical metadata defaults, and extensible schema support. Frontmatter is created on first edit if missing, auto-updates last_updated, and supports explicit overrides without breaking existing fields. These changes establish a metadata plane separate from document body content, enabling safe diff operations, deterministic header/TOC tooling, and template-driven document creation.
New: Enhanced Readable Output (Phase 1.5/1.6)
ANSI Color Support: Tool output now renders with colors in Claude Code/Codex - cyan boxes, green line numbers, bold titles
Green Line Numbers: Clean
1. contentformat with dot separator, matching Claude's native Read tool styleCallToolResult Fix: Workaround for Issue #9962 - returns TextContent-only for proper newline rendering
Config-Driven Colors: Enable/disable via
use_ansi_colors: truein.scribe/config/scribe.yaml5-Char Line Padding: Consistent line number width for improved readability
Structured edits are now the default path: agents express intent, the server compiles and applies deterministic mutations, and diagnostics remain explicit. Structural actions no longer auto-heal doc targets; if doc_name is not registered, the action fails with DOC_NOT_FOUND rather than redirecting the write.
manage_docsnow supports apply_patch and replace_range for precise edits.apply_patchauto-detects mode: unified whenpatchprovided, structured wheneditprovided.patch_source_hashenforces stale-source protection for patches.Reminder system teaches scaffold-only
replace_section, preferring structured/line edits.New doc lifecycle actions:
normalize_headers,generate_toc,create,validate_crosslinks.createis the unified document creation action. Usemetadata.doc_typeto specify type:custom,research,bug,review, oragent_card. Content goes inmetadata.body. Usemetadata.register_doc=trueto add the doc to the project registry.validate_crosslinksis read-only diagnostics (no write, no doc_updates log).normalize_headerssupports ATX headers with or without space and Setext (====/----), skipping fenced code blocks. Output is canonical ATX.generate_tocuses GitHub-style anchors (NFKD normalization, ASCII folding, emoji removal, punctuation collapse, de-duped suffixes).Structural actions validate
doc_nameagainst the registry and fail hard on unknown docs (no silent redirects).
New:
The read_file tool is now a comprehensive code intelligence platform for Python and Markdown files, providing SWE agents with instant codebase understanding without reading full files:
Python Intelligence:
Full Signature Extraction: Captures complete function/method signatures with type hints, default values, and return types
Example:
async def fetch_project(self, name: str) -> Optional[ProjectRecord]
Line Range Analysis: Shows start-end lines for every class, function, and method with line counts for complexity assessment
Example:
async def _initialise(self) -> None (lines 645-1121 (477))- instantly identifies a 477-line method needing refactoring
Class Structure Display: Shows class hierarchy with first 10 methods by default, including async markers
Structure Filtering: Regex-based search to find specific classes or functions
Example:
structure_filter="validate"finds all validation functions with full signatures
Structure Pagination: Browse large classes page-by-page (default: 10 items/page)
Navigate through a 62-method class: page 1 shows methods 1-10, page 2 shows 11-20, etc.
Dependency Analysis: Static import analysis with resolved paths for local modules
Markdown Intelligence:
Heading Extraction: Complete document outline with all heading levels and line numbers
Quick Navigation: Jump directly to specific sections using extracted line numbers
Complete Workflow Example:
Key Benefits:
Token Efficiency: Get complete structural overview without reading full file content
Instant Complexity Assessment: Line counts reveal 477-line monsters needing refactoring
Type-Aware Navigation: Full signatures show exactly how to call each function
Regex Precision: Find all functions matching
^_validate.*|^_sanitizein secondsPagination for Scale: Browse classes with 50+ methods without overwhelming output
Parameters: path, mode (scan_only/chunk/page/line_range/search), structure_filter, structure_page, structure_page_size, include_dependencies, format
New:
The search tool provides grep/ripgrep-equivalent codebase search directly through MCP, with repo-boundary enforcement and audit logging:
Regex and Literal Patterns: Full regex by default, with
regex=Falsefor literal string matchingFile Filtering: Filter by glob pattern (
glob="*.py") or file type (type="py")Three Output Modes:
content(matching lines with context),files_with_matches(file paths only),count(match counts per file)Context Control: Configurable before/after context lines around matches
Multiline Matching: Patterns can span multiple lines with
multiline=TrueSafety Limits: Configurable max matches per file (50), total matches (200), max files (100), and file size cap (10MB)
Parameters: agent, pattern, path, glob, type, output_mode, format, context_lines, before_context, after_context, case_insensitive, regex, multiline, max_matches_per_file, max_total_matches, max_files, line_numbers, skip_binary, max_file_size_mb
New:
The edit_file tool provides exact string replacement with built-in safety mechanisms:
Read-Before-Edit Enforcement: The file MUST have been read with
read_filein the current session before editing (tool-enforced)Dry-Run by Default:
dry_run=Trueis the default -- you must explicitly setdry_run=Falseto commit changesExact String Matching: Finds and replaces exact strings (no regex), failing clearly if the target string is not found or is ambiguous
Replace All Mode: Optional
replace_all=Truefor renaming variables or updating repeated patternsDiff Preview: Dry-run mode returns a unified diff preview before committing
Repo-Boundary Enforcement: Cannot edit files outside the repository root
Parameters: agent, path, old_string, new_string, replace_all (default: False), dry_run (default: True), format
scribe_doctorreports repo root, config, plugin status, and vector readiness for faster diagnostics.manage_docsnow supports semantic search viaaction="search"withsearch_mode="semantic", including doc/log separation anddoc_k/log_koverrides.Vector indexing now prefers registry-managed docs only; log/rotated-log files are excluded from doc indexing.
Reindex supports
--rebuild(clear index),--safe(low-thread fallback), and--wait-for-drainto block until embeddings are written.
Example (structured mode with edit):
Example (unified diff mode - auto-detected when patch provided):
π Why Scribe MCP?
Scribe transforms how AI agents and developers maintain project documentation. Instead of scattered notes and outdated docs, Scribe provides bulletproof audit trails, automated template generation, and cross-project intelligence that keeps your entire development ecosystem in sync.
Perfect for:
π€ AI Agent Teams - Structured workflows and quality grading
π’ Enterprise Teams - Audit trails and compliance documentation
π¨βπ» Solo Developers - Automatic documentation that actually works
π Research Projects - Structured logs and reproducible reports
Immediate Value:
β 30-second setup - Drop into any repository and start logging
π― 18+ specialized templates - From architecture guides to bug reports
π Cross-project search - Find patterns across your entire codebase
π Agent report cards - Performance grading for AI workflows
π‘οΈ Bulletproof storage - Atomic operations with crash recovery
β‘ Quick Start
Get Scribe running in under 60 seconds (MCP-first, CLI optional):
1οΈβ£ Install Dependencies
2οΈβ£ Add Scribe MCP Server to Claude Code, Codex
Codex CLI registration example:
codex mcp add scribe \ --env SCRIBE_ROOT=/home/path/to/scribe_mcp \ --env REPO_ROOT=/home/path/to/your_project \ --env SCRIBE_STORAGE_BACKEND=sqlite \ -- bash -lc 'cd /home/path/to/scribe_mcp && exec scribe-server'Claude Code registration example:
claude mcp add scribe \ --env SCRIBE_ROOT=/home/path/to/scribe_mcp \ --env REPO_ROOT=/home/path/to/your_project \ --env SCRIBE_STORAGE_BACKEND=sqlite \ -- bash -lc 'cd /home/path/to/scribe_mcp && exec scribe-server'Global Claude MCP example:
claude mcp add scribe --scope user \ --env SCRIBE_ROOT=/home/path/to/scribe_mcp \ --env REPO_ROOT=/home/path/to/your_project \ --env SCRIBE_STORAGE_BACKEND=sqlite \ -- bash -lc 'cd /home/path/to/scribe_mcp && exec scribe-server'
Compatibility note: legacy launch python -m server still works during migration.
Once connected from Claude / Codex MCP:
Use
set_projectto register/select a project and bootstrap dev_plan docs (passroot=/abs/path/to/repoto work in any repo).Use
append_entryfor all logging (single/bulk).Use
manage_docsfor architecture/phase/checklist updates. 2.1.1 introduces diff edits.Use
read_filefor safe, auditable file reads (scan/chunk/page/search).Use
scribe_doctorfor readiness checks (repo root, config, vector index status).Use
read_recentto resume context after compaction.
Automatic log routing (BUG / SECURITY)
status=bug(or a bug emoji) will also write toBUG_LOG.mdwhen required meta is present (severity,component,status).Security events can also tee to
SECURITY_LOG.md(example: use a security emoji, or--meta security_event=true,impact=...,status=...).If required meta is missing, Scribe returns a teaching reminder instead of inventing data.
3οΈβ£ (Optional) Manual CLI Tool Calls
For shell workflows or CI checks, use the unified CLI runtime:
This path uses the same runtime dispatcher as MCP (invoke_tool), so mode/session guard behavior stays aligned.
π― Try These Examples
Project Management:
Research Workflows:
Team Collaboration:
π³ Docker Deployment
Deploy Scribe MCP as a containerized service with SSE transport:
Quick Start (Standalone)
Quick Start (With Council + PostgreSQL)
Connecting MCP Clients to Docker
Configure your MCP client for SSE transport instead of stdio:
Key features:
SSE transport on port 8200 (HTTP-based, replaces stdio)
PostgreSQL support with Docker secrets for credentials
Compose overlay pattern for Council integration
Health checks at
/healthendpointNon-root user (UID 1001), minimal attack surface
For full documentation including configuration, PostgreSQL setup, troubleshooting, and Council integration, see deploy/README.md.
π οΈ Installation Options
Prerequisites
Python 3.11+ - Modern Python with async support
pip - Standard Python package manager
Optional: PostgreSQL for team deployments (SQLite works out of the box)
Storage Backends
ποΈ SQLite (Default - Zero Config)
Perfect for solo developers and small teams
No setup required - just run and go
Automatic database creation and management
π PostgreSQL (Enterprise)
Ideal for large teams and production deployments
One-command interactive bootstrap (no env exports required):
scribe bootstrapThe interactive flow now explains setup-only vs runtime values:
Scribe admin database: usuallypostgres, used for admin/setup connections.Scribe app database: where Scribe stores runtime data.
Bootstrap writes
.envkeys automatically (SCRIBE_STORAGE_BACKEND,SCRIBE_DB_URL, schema/role fields).For CI or scripting (non-interactive), pass flags directly:
scribe bootstrap --no-interactive --superuser-password '<superuser-password>' --app-db scribe --schema scribe
Postgres Env Vars (Runtime + MCP)
When running Scribe in Postgres mode (including via MCP), set these environment variables in the server process:
SCRIBE_STORAGE_BACKEND=postgresSCRIBE_DB_URL=postgresql://<app_user>:<app_password>@<host>:<port>/<app_db>SCRIBE_POSTGRES_SCHEMA=scribe(default schema namespace)SCRIBE_DB_SCHEMA=...(supported alias for schema;SCRIBE_POSTGRES_SCHEMAtakes precedence)
Optional pool/network tuning (recommended for remote DBs):
SCRIBE_POSTGRES_POOL_MIN_SIZE=2SCRIBE_POSTGRES_POOL_MAX_SIZE=20SCRIBE_POSTGRES_CONNECT_TIMEOUT_SECONDS=10SCRIBE_POSTGRES_COMMAND_TIMEOUT_SECONDS=30SCRIBE_POSTGRES_CONNECT_RETRIES=3SCRIBE_POSTGRES_CONNECT_RETRY_BACKOFF_SECONDS=1.0SCRIBE_POSTGRES_MAX_INACTIVE_SECONDS=300
These can be generated automatically by scribe bootstrap into your .env, then passed through your MCP client configuration.
MCP Integration
In all examples below:
SCRIBE_ROOT= where Scribe is installed (the directory you runscribe-serverfrom).REPO_ROOT= the project repository you want Scribe to work in (the repo that gets.scribe/docs/plans once selected).Select the repo in-session with
set_project(..., root=/abs/path/to/repo).
For Claude Desktop (JSON config):
For Codex / Claude Code CLI:
Notes:
REPO_ROOTis a launch-time convenience value for your MCP config.Scribe project context is selected in-session via
set_project(name=..., root=/abs/path/to/repo).The launch command should run from
SCRIBE_ROOT, not the target project repo.
π Using Scribe Outside This Repo
You can run Scribe from any codebase (not just MCP_SPINE) by pointing it at that projectβs root:
Start the MCP server from your Scribe install path (
SCRIBE_ROOT).Set
REPO_ROOT=/abs/path/to/your/repoin your MCP config so the target repo is explicit.Call
set_project(..., root=/abs/path/to/your/repo)to activate that repo and create/update its.scribe/workspace.Use
set_project(..., root=/abs/path/to/another/repo)to switch repositories without re-registering MCP.Optional env vars:
SCRIBE_STATE_PATH=/abs/path/to/state.json(DEPRECATED in v2.2 - sessions now stored in database)SCRIBE_STORAGE_BACKEND=postgresandSCRIBE_DB_URL=postgresql://...if you want Postgres.
Prefer launching via installed entry points (
scribe-server,scribe) so no manualPYTHONPATHwiring is required.
π§ Project Registry & Lifecycle (High-Level)
Scribe includes a SQLite-backed Project Registry that tracks every projectβs lifecycle and documentation state:
Lifecycle states:
planning,in_progress,blocked,complete,archived,abandoned.Core hooks:
set_projectβ bootstraps docs (ARCHITECTURE_GUIDE,PHASE_PLAN,CHECKLIST,PROGRESS_LOG) and ensures a registry row exists.append_entryβ writes progress logs, updates activity metrics, and can autoβpromoteplanningβin_progressonce docs + first entry exist.manage_docsβ applies atomic doc updates and records baseline/current hashes and docβhygiene flags in the registry.list_projectsβ surfaces registry data (status, timestamps, counts, tags,meta.activity,meta.docs.flags) with filters likestatus,tags, andorder_by.
At a glance, you can:
See which projects are fresh, stale, or long inactive.
Detect when architecture/phase/checklist docs are still at template state.
Spot drift between implementation logs and documentation.
For full technical details, see docs/whitepapers/scribe_mcp_whitepaper.md.
π License & Commercial Use
Scribe MCP is source-available and free to use for:
Individual developers
Open-source contributors
Researchers and educational use
Small teams and small businesses that:
Have fewer than 25 employees, and
Generate less than $1,000,000 USD in annual revenue, and
Are not selling, hosting, or packaging Scribe MCP (or derivatives) as part of a paid product or service.
You may not use Scribe MCP under the community license if:
Your organization exceeds the employee or revenue limits above, or
You embed Scribe MCP into a paid SaaS, internal platform, or commercial agent/orchestration product.
For enterprise or large-scale commercial use, contact licensing@cortalabs.com to obtain a commercial license.
Details:
Current code is licensed under the Scribe MCP License (Community + Small Business License) in
LICENSE.Earlier snapshots were MIT-licensed; see
LICENSE_HISTORY.mdfor historical licensing context.
Notes:
.envis auto-loaded on startup when present (via python-dotenv); shell exports/direnv still work the same.Overlap checks only block true path collisions (same progress_log/docs_dir). Sharing one repo root with many dev_plan folders is supported.
π¨ Template System Showcase
Scribe includes 13+ specialized templates that auto-generate professional documentation:
π Document Templates
π Architecture Guides - System design and technical blueprints
π Phase Plans - Development roadmaps with milestones
β Checklists - Verification ledgers with acceptance criteria
π¬ Research Reports - Structured investigation documentation
π Bug Reports - Automated issue tracking with indexing
π Agent Report Cards - Performance grading and quality metrics
π Progress Logs - Append-only audit trails with UTC timestamps
π Security Logs - Compliance and security event tracking
π Template Features
π Security Sandboxing - Jinja2 templates run in restricted environments
π Template Inheritance - Create custom template families
π― Smart Discovery - Project β Repository β Built-in template hierarchy (precedence:
.scribe/templatesβ repo custom β project templates β packs β built-ins)β‘ Atomic Generation - Bulletproof template creation with integrity verification
For a deeper dive into available variables and expected metadata per template, see docs/TEMPLATE_VARIABLES.md.
Example: Generate Architecture Guide
π» CLI Power Tools
Scribe's command-line interface (386 lines of pure functionality) gives you complete control:
π― Core Commands
π¨ Rich Features
π Emoji Support - Built-in emoji mapping for all status types
π Metadata Tracking - Rich key=value metadata for organization
π Multiple Log Types - Progress, bugs, security, and custom logs
π Timestamp Control - Override timestamps for bulk imports
π― Project Discovery - Automatic project configuration detection
Status Types & Emojis
infoβΉοΈ - General information and updatessuccessβ - Completed tasks and achievementswarnβ οΈ - Warning messages and cautionserrorβ - Errors and failuresbugπ - Bug reports and issuesplanπ - Planning and roadmap entries
π Enterprise Features
π Agent Report Cards
Performance grading infrastructure for AI workflows:
Quality metrics tracking and trend analysis
Performance levels with UPSERT operations
Automated agent evaluation and reporting
π Security & Compliance
π‘οΈ Security Sandboxing - Restricted Jinja2 environments with 22+ built-in controls
π Audit Trails - Complete change tracking with metadata
π Access Control - Path validation and input sanitization
π Compliance Reporting - Structured logs for regulatory requirements
β‘ Advanced Search
Phase 4 Enhanced Search capabilities:
π Cross-Project Validation - Find patterns across your entire codebase
π Relevance Scoring - 0.0-1.0 quality filtering
π― Code Reference Verification - Validate referenced code exists
π Temporal Filtering - Search by time ranges ("last_30d", "last_7d")
π Documentation Management
Structured doc editing with full schema exposure:
π§ Complete MCP Schema - All
manage_docsparameters properly exposed via JSON Schemaπ― Type-Safe Operations - Proper parameter typing for reliable tool discovery and validation
π Action-Driven Interface - Atomic updates for architecture, phase plans, checklists, and research docs
manage_docs Quick Reference
7 Primary Actions:
Action | Purpose | Required Params |
| Create new doc (research/bug/custom) |
|
| Replace content by section anchor |
|
| Apply unified diff patch |
|
| Replace explicit line range |
|
| Find/replace text pattern |
|
| Append content to doc/section |
|
| Update checklist item status |
|
Global Optional Params: project, dry_run, target_dir
doc_type Values (INSIDE metadata): custom (default), research, bug, review, agent_card
Create Examples:
Edit Examples:
For complete documentation, see docs/Scribe_Usage.md or the /scribe-mcp-usage skill.
πΎ Bulletproof Storage
ποΈ Multi-Backend Support - SQLite (zero-config) + PostgreSQL (enterprise)
β‘ Atomic Operations - Temp-file-then-rename with fsync guarantees
π Write-Ahead Logging - Bulletproof crash recovery with journaling
β Integrity Verification - Automatic corruption detection and recovery
π§ Intelligent Reminders
Scribe keeps your documentation in sync with intelligent context awareness:
π Smart Reminders
Every MCP tool response includes contextual reminders about:
π Stale Documentation - When architecture docs need updates
β° Overdue Logs - Gentle nudges to maintain progress tracking
π― Project Context - Active project status and recent activity
π Drift Detection - When implementation deviates from plans
Reminders are throttled with a short cooldown per (repo_root, agent_id) so you see what matters without constant repetition. If an agent gets confused, you can clear cooldowns with set_project(reset_reminders=true).
If you call a project-bound tool without selecting a project, Scribe returns a βlast known projectβ hint (including last access time) to help you recover quickly.
βοΈ Customization
π Environment Variables
SCRIBE_REMINDER_IDLE_MINUTES- Work session reset timeout (default: 45)SCRIBE_REMINDER_WARMUP_MINUTES- Grace period after resuming (default: 5)SCRIBE_REMINDER_DEFAULTS- JSON configuration for all projectsSCRIBE_REMINDER_CACHE_PATH- Optional path for reminder cooldown cache (default:data/reminder_cooldowns.json)
ποΈ Project Structure
Per-repo output location (dev plans + logs)
Default:
<repo>/.scribe/docs/dev_plans/<project_slug>/...Back-compat: if
<repo>/docs/dev_plans/<project_slug>exists, Scribe keeps using it.Override: set
SCRIBE_DEV_PLANS_BASE(example:docs/dev_plans) to force a different base.
π§ͺ Testing & Quality
Comprehensive testing infrastructure with 79+ test files:
π§ͺ Run Tests
β Quality Assurance
π¬ Functional Testing - 69 comprehensive tests covering all core functionality
β‘ Performance Testing - Optimized benchmarks for file operations
π‘οΈ Security Testing - Template sandboxing and access control validation
π Integration Testing - MCP server protocol compliance verification
π Smoke Test
π‘ Real-World Use Cases
π€ AI Agent Teams
Structured workflows for AI development:
π’ Enterprise Documentation
Compliance and audit trails:
π Research Projects
Structured research documentation:
π§ Troubleshooting
Common Issues & Solutions
π¨ MCP SDK Missing
π§ No Tools Returned
ποΈ SQLite Permission Issues
π Python Path / Packaging Issues
π€ BertModel / torchvision mismatch warning
If startup logs show Could not import module 'BertModel', your torch and
torchvision builds are likely mismatched (common CUDA tag mismatch).
Scribe now guards this case by disabling broken torchvision integration for transformers so text embeddings can still initialize. For a full env-level fix, install matching torch/torchvision builds (same CUDA tag), or remove torchvision if your workload is text-only.
β‘ Server Not Starting
Getting Help
π Documentation: Check
docs/whitepapers/scribe_mcp_whitepaper.mdfor comprehensive technical detailsπ§ͺ Test Suite: Run
pytestto verify system functionalityπ Project Templates: Use
--list-projectsto see available configurationsπ Smoke Test: Run
python scripts/test_mcp_server.pyfor MCP validation
π€ Contributing
We welcome contributions! Here's how to get started:
π§ͺ Development Workflow
π Development Guidelines
β Test Coverage: All new features must include tests
π Documentation: Update relevant documentation sections
π§ Integration: Ensure MCP server compatibility
π‘οΈ Security: Follow security best practices for templates and inputs
π Quality Standards
π§ͺ 69+ functional tests must pass
β‘ Performance benchmarks for file operations
π Security validation for template sandboxing
π MCP protocol compliance verification
π Further Reading
π Technical Documentation
π Whitepaper v2.1 - Comprehensive technical architecture
π§ API Reference - Complete MCP tool documentation
π¨ Template Guide - Custom template development
ποΈ Architecture Patterns - System design and integration
π Hooks & Enforcement
Hooks Setup Guide - Protect managed docs from direct Write/Edit with Claude Code hooks
Scribe Onboarding Prompt - Full instructional prompt for onboarding any project to Scribe MCP (protocol, tools, manage_docs, hooks)
π Advanced Features
π€ Claude Code Integration - Structured workflows and subagent coordination
π Agent Report Cards - Performance grading and quality metrics
π Vector Search - FAISS integration for semantic search
π Security Framework - Comprehensive access control and audit trails
π Production Deployment
π PostgreSQL Setup - Enterprise-scale deployment guide
π Monitoring - Performance tracking and alerting
π Backup & Recovery - Data protection strategies
π Multi-tenant - Organizational deployment patterns
β οΈ Known Limitations
Concurrent Agent Session Collision
MCP Transport Limitation: Session identity is {repo_root}:{transport}:{agent_name}. When multiple agents with the same name work on different Scribe projects within the same repository concurrently, their sessions collide.
Best Practice: Use scoped agent names for concurrent work:
Not affected: Sequential dispatches, different repositories, or single agent switching projects.
See Scribe_Usage.md for details.
π Acknowledgments
Built with passion for better documentation and AI-human collaboration. Special thanks to:
The MCP protocol team for the standardized AI tool interface
Jinja2 for the powerful and secure templating system
Our early adopters for invaluable feedback and feature suggestions
π Ready to transform your documentation?
Start Logging β’ Explore Templates β’ Read Whitepaper
Join thousands of developers and AI teams using Scribe for bulletproof documentation governance