Transform natural language conversations into beautifully formatted documentation with AI-powered content management.
FlowDocs is an innovative documentation system that bridges the gap between natural language conversations and professional documentation sites. Simply talk to an AI assistant (like Claude), and watch your ideas transform into structured, searchable documentation in real-time.
- π€ AI-Powered Content Creation - Create documentation through natural conversation with Claude Desktop
- π Real-Time Sync - Changes appear instantly on your documentation site
- π Full CRUD Operations - Create, read, update, and delete documentation via natural language
- π¨ Beautiful UI - Modern, responsive documentation powered by Docusaurus
- π Smart Search - Full-text search across all your documentation
- π·οΈ Tag & Categorize - Organize content with flexible tagging system
- π One-Click Deployment - Single script starts all services
- π Extensible Architecture - Built with modern, modular technologies
- Technical Documentation - API docs, guides, tutorials
- Knowledge Bases - Internal wikis, FAQs, processes
- Content Publishing - Blogs, articles, educational content
- Project Documentation - Architecture docs, release notes, specifications
User Chat (Claude Desktop) β MCP Server β Strapi API β Content Storage
β
β
Hot Sync β Docusaurus Site Rendering
- Node.js 18+
- Git
- Modern web browser
git clone <repository-url>
cd flowdocs./start-all.shThis launches:
- Strapi CMS at http://localhost:1337 (Admin: /admin)
- Docusaurus Site at http://localhost:3000
- MCP Server (for Claude Desktop integration)
- Open Claude Desktop settings
- The MCP server is auto-configured
- Restart Claude to load tools
Ask Claude: "What tools do you have available?" You should see 6 Strapi documentation tools listed.
- Installed Strapi v5.24.2 via npx quickstart
- Created "Article" content type with fields:
- title (Required, String)
- slug (UID, auto-generated)
- content (RichText, Required)
- category (String)
- tags (Many-to-Many Relation to Tag)
- author (String, default "AI Generated")
- excerpt (Text)
- articlestatus (Enum: draft/published, default "published")
- Configured API permissions (Public: read, Authenticated: create/update/delete)
- Generated full-access API token (store securely in environment variables)
- Tested API endpoints successfully
- Created TypeScript Docusaurus v3 site
- Implemented Strapi integration client (
src/lib/strapiClient.ts) - Built sync system (
scripts/syncContent.js):- Fetches articles from Strapi API
- Generates Markdown files in
docs/ai-generated/ - Updates Docusaurus sidebar configuration
- Added hot-reload watcher (
scripts/watcher.js):- Polls Strapi API every 10 seconds
- Auto-regenerates content on changes
- Configured sidebar categories for AI-generated content
- Built custom MCP server (
src/simple-server.js) - Handles JSON-RPC 2.0 protocol over stdio
- Implements 6 documentation management tools:
create_documentation_page- Create new articleslist_documentation_pages- List/filter articlesupdate_documentation_page- Update existing articlesget_documentation_page- Fetch articles by ID/slugdelete_documentation_page- Delete articlessearch_documentation- Full-text search
- Proper error handling and response formatting
- Claude Desktop MCP configuration updated
- Created unified startup script (
start-all.sh):- Launches all services simultaneously
- Handles PID management and cleanup
- Provides status URLs
- Verified end-to-end functionality:
- Strapi API responses correctly
- Docusaurus generates and displays content
- MCP server responds to Claude tools
- Hot-sync updates Docusaurus in real-time
- After
npm run developin strapi/:- Go to http://localhost:1337/admin
- Create admin account
- Navigate to Content-Types Builder
- Create Collection Type: "Article" with above fields
- Configure User & Permissions:
- Public: Enable
findandfindOnefor Article - Authenticated: Enable all operations for Article
- Public: Enable
- Create API Token (Settings β API Tokens):
- Name: "MCP-Server-Token"
- Type: Full Access
- Copy token and add to MCP config env
- Modify sidebar configuration in
docusaurus/sidebars.ts - Add custom themes or plugins via
docusaurus.config.ts - Customize article layouts in
docusaurus/src/components/
The /Users/.../claude_desktop_config.json should contain:
{
"mcpServers": {
"strapi-docs": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/src/simple-server.js"],
"env": {
"STRAPI_BASE_URL": "http://localhost:1337",
"STRAPI_API_TOKEN": "your_token_here",
"DOTENV_CONFIG_SILENT": "true"
}
}
}
}-
Strapi API Test:
curl http://localhost:1337/api/articles
-
MCP Server Test: (Manual)
- Claude: "Create a documentation page about machine learning"
-
End-to-End Test:
- Verify article appears in Strapi admin
- Check Docusaurus updates within 10 seconds
- Error 400 from Strapi: Check API permissions and request payload
- Protocol errors: Ensure protocol version compatibility
- Connection failures: Restart Claude and verify config path
- Watcher not updating: Check Strapi API accessibility
- Docusaurus not reloading: Verify webpack is running
- API token expired: Regenerate in Strapi admin
- Permissions denied: Reconfigure user roles
flowdocs/
βββ strapi/ # Strapi CMS instance
βββ docusaurus/ # Docusaurus documentation site
β βββ src/lib/strapiClient.js/ts
β βββ scripts/syncContent.js
β βββ scripts/watcher.js
βββ mcp-server/ # MCP server for LLM integration
β βββ src/simple-server.js
β βββ src/handlers/
βββ start-all.sh # Orchestration script
βββ README.md # This file
- β Strapi headless CMS with REST API
- β Claude Desktop MCP integration
- β Docusaurus real-time documentation sync
- β Full CRUD operations via natural language
- β Hot-reload content updates
- β Production-ready architecture
- β Orchestrated multi-service startup
- Webhook-based sync (vs polling)
- Rich text editor integration
- Content versioning system
- Multi-provider LLM support (OpenAI, Anthropic, etc.)
- Docker containerization
- Production deployment guides
- CI/CD pipeline templates
- Multi-language support
- Advanced analytics and metrics
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Strapi - The leading open-source headless CMS
- Documentation powered by Docusaurus - Easy to maintain documentation websites
- AI integration via Model Context Protocol (MCP)
- Inspired by the need for seamless AI-human collaboration in documentation
- π Documentation: Check out the docs at
http://localhost:3000when running locally - π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
If you find this project useful, please consider giving it a star! It helps others discover the project.
Built with β€οΈ for the open-source community
