sailor
Verified Safeby aj-geddes
Overview
AI-powered generation and rendering of Mermaid diagrams from natural language, code, or data for documentation and visualization purposes.
Installation
python -m sailor_mcp.serverEnvironment Variables
- SECRET_KEY
- OPENAI_API_KEY
- ANTHROPIC_API_KEY
- FLASK_ENV
- CORS_ORIGINS
- RATE_LIMIT_STORAGE_URI
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
- SENTRY_DSN
- SENTRY_TRACES_SAMPLE_RATE
- SENTRY_RELEASE
- ENABLE_METRICS
- SAILOR_LOG_LEVEL
- PORT
- HOST
- RATE_LIMIT_REQUESTS
- RATE_LIMIT_WINDOW
- RATE_LIMIT_RENDER
Security Notes
The project demonstrates a strong focus on security, leveraging non-root Docker users, read-only file systems, and security headers (Talisman) in production. Rate limiting is implemented to prevent API abuse. Critical `SECRET_KEY` usage for session management includes a runtime check that prevents startup in production if unset, which is a good safeguard. API keys are handled via environment variables and are filtered from Sentry logs. However, the `QA_ASSESSMENT_REPORT.md` in the archive points to several historical and potentially still relevant areas for improvement, such as stricter CORS configuration, ensuring all API keys are fully redacted from all log types, and robust input sanitization. The Playwright browser runs with `--no-sandbox` and `--disable-setuid-sandbox` in Docker, which is a known risk, but the Docker environment is configured for containment.
Similar Servers
mcp-mermaid
Generate Mermaid diagrams and charts dynamically using AI models, supporting various output formats and styling options.
consult-llm-mcp
Facilitates Claude Code to consult powerful external AI models for complex code analysis, debugging, and review tasks.
claude-mermaid
Renders Mermaid diagrams in a browser with live reload functionality and provides expert guidance through a built-in Claude skill for iterative diagram development.
vibes
Vibes transforms Claude Desktop into a conversational development environment through distributed MCP servers, allowing users to describe what they want to build and have Claude implement it while teaching them.