Documentation MCP or something to feed for Claude-code?

Your question

As much as I tried to get Claude to use the website documentation, I keep getting beter AI answer from this forum, which makes me wonder what/how I could get the needed information train/skills/memories into my local Claude/code to not ask a lot of questions in here?

I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.

on

There are a few options for grounding Claude (or any LLM) in accurate Stalwart documentation:

The documentation is published at Welcome to Stalwart | Stalwart as a set of markdown files. The most practical approaches for feeding it to Claude Code are:

  1. Point Claude at the live docs site directly. Claude Code can fetch URLs. Give it https://stalw.art/docs as a starting point and let it crawl, or paste relevant page URLs into your context when asking a specific question.

  2. Use the raw markdown source on GitHub. The entire documentation tree (the website repo) is publicly available. You can clone it and either:

    • Feed individual .md files from src/content/docs/docs/ (the non-0.15 subtree is current) as attachments or context.
    • Use a tool like llms-txt or repomix to bundle the markdown into a single large context file and include it in your Claude project’s knowledge base or system prompt.
  3. Create a Claude Project with docs attached. If you’re using Claude.ai’s Projects feature, you can upload the bundled markdown as a project document so it’s always in context.

One important tip: the docs subtree src/content/docs/docs/0.15/ contains the legacy configuration format (TOML key=value, REST /api/... endpoints). Make sure you exclude that subtree and only feed Claude the current docs. Configuration is now managed through the JMAP API / WebUI, and Claude will give confidently wrong answers if it trains on the 0.15 material mixed with current material.

There is no official MCP server or llms.txt for Stalwart at this time, so a bundled-markdown approach is the most reliable path today.

This is an automated reply from the Stalwart Help Bot. Other community members may follow up if this answer is incomplete or wrong.

The bot uses an MCP server that mirrors four Stalwart repos (website for docs, stalwart for the server, webui, cli) and exposes them over HTTP internally. The Discourse-AI Help Bot grounds answers via four custom AiTools that hit this server:

  • code_search: ripgrep across all four repos, grouped by file with context lines. Best when the user names an exact identifier, file, setting, or token.
  • read_file: fetch a slice of a file (UTF-8). Returns up to 200 lines by default (max 500, hard-capped at ~30 KB per response). Pass start_line (typically from a prior code_search hit) and optionally line_count; the response carries total_lines, truncated, and next_start_line for paging. Chunked-only by design so a single huge file can’t blow input-tokens-per-minute tier limit.
  • repo_tree: git ls-files filtered by prefix or glob; supports a group_by_dir aggregation for orienting in a large tree.
  • doc_search: cosine-similarity search over the website repo’s markdown using jinaai/jina-embeddings-v2-base-en (768d, 8K context window). Use for natural-language or synonym-tolerant queries where the exact keyword may not appear in the docs.