Skip to main content

Configuration Options

This reference guide covers all configuration options available in DocuMCP and the static site generators it supports.

DocuMCP Configuration

Environment Variables

DocuMCP supports the following environment variables:

VariableDefaultDescription
DOCUMCP_STORAGE_DIR.documcp/memoryDirectory for memory system storage
DEBUGfalseEnable debug logging
NODE_ENVdevelopmentNode.js environment

Memory System Configuration

The memory system stores analysis results and learning patterns:

# Default storage location (relative to project)
.documcp/memory/
├── analysis/ # Repository analysis results
├── recommendations/ # SSG recommendations
├── patterns/ # Learning patterns
└── metadata.json # System metadata

Memory Cleanup Options

// Cleanup configuration
{
"daysToKeep": 30, // Days to retain memories
"maxEntries": 1000, // Maximum memory entries
"compressionEnabled": true
}

Static Site Generator Configurations

Jekyll Configuration

_config.yml:

title: "Your Documentation Site"
description: "Project documentation"
baseurl: "/repository-name"
url: "https://username.github.io"

markdown: kramdown
highlighter: rouge
theme: minima

plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag

collections:
tutorials:
output: true
permalink: /:collection/:name/
how-to-guides:
output: true
permalink: /:collection/:name/

defaults:
- scope:
path: ""
values:
layout: "default"
- scope:
path: "_tutorials"
values:
layout: "tutorial"

Gemfile:

source 'https://rubygems.org'

gem 'jekyll', '~> 4.3.0'
gem 'jekyll-feed', '~> 0.17'
gem 'jekyll-sitemap', '~> 1.4'
gem 'jekyll-seo-tag', '~> 2.8'
gem 'minima', '~> 2.5'

group :jekyll_plugins do
gem 'jekyll-timeago', '~> 0.13.1'
end

Hugo Configuration

config.yml:

baseURL: "https://username.github.io/repository-name"
languageCode: "en-us"
title: "Documentation Site"
theme: "docsy"

params:
github_repo: "https://github.com/username/repository"
github_branch: "main"
edit_page: true
search:
enabled: true

menu:
main:
- name: "Tutorials"
url: "/tutorials/"
weight: 10
- name: "How-to Guides"
url: "/how-to/"
weight: 20
- name: "Reference"
url: "/reference/"
weight: 30
- name: "Explanation"
url: "/explanation/"
weight: 40

markup:
goldmark:
renderer:
unsafe: true
highlight:
style: github
lineNos: true
codeFences: true

security:
funcs:
getenv:
- ^HUGO_
- ^CI$

go.mod:

module github.com/username/repository

go 1.19

require (
github.com/google/docsy v0.6.0 // indirect
github.com/google/docsy/dependencies v0.6.0 // indirect
)

Docusaurus Configuration

docusaurus.config.js:

const config = {
title: "Documentation Site",
tagline: "Comprehensive project documentation",
url: "https://username.github.io",
baseUrl: "/repository-name/",

organizationName: "username",
projectName: "repository-name",
deploymentBranch: "gh-pages",
trailingSlash: false,

onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",

i18n: {
defaultLocale: "en",
locales: ["en"],
},

presets: [
[
"classic",
{
docs: {
routeBasePath: "/",
sidebarPath: require.resolve("./sidebars.js"),
editUrl: "https://github.com/username/repository/tree/main/",
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
gtag: {
trackingID: "G-XXXXXXXXXX",
anonymizeIP: true,
},
},
],
],

themeConfig: {
navbar: {
title: "Documentation",
items: [
{
type: "doc",
docId: "tutorials/index",
position: "left",
label: "Tutorials",
},
{
type: "doc",
docId: "how-to/index",
position: "left",
label: "How-to",
},
{
type: "doc",
docId: "reference/index",
position: "left",
label: "Reference",
},
{
href: "https://github.com/username/repository",
label: "GitHub",
position: "right",
},
],
},
footer: {
style: "dark",
copyright: `Copyright © ${new Date().getFullYear()} Your Project Name.`,
},
prism: {
theme: require("prism-react-renderer/themes/github"),
darkTheme: require("prism-react-renderer/themes/dracula"),
},
},
};

module.exports = config;

sidebars.js:

const sidebars = {
tutorialSidebar: [
"index",
{
type: "category",
label: "Tutorials",
items: [
"tutorials/getting-started",
"tutorials/first-deployment",
"tutorials/development-setup",
],
},
{
type: "category",
label: "How-to Guides",
items: [
"how-to/prompting-guide",
"how-to/repository-analysis",
"how-to/github-pages-deployment",
"how-to/troubleshooting",
],
},
{
type: "category",
label: "Reference",
items: [
"reference/mcp-tools",
"reference/configuration",
"reference/cli",
],
},
],
};

module.exports = sidebars;

MkDocs Configuration

mkdocs.yml:

site_name: Documentation Site
site_url: https://username.github.io/repository-name
site_description: Comprehensive project documentation

repo_name: username/repository
repo_url: https://github.com/username/repository
edit_uri: edit/main/docs/

theme:
name: material
palette:
- scheme: default
primary: blue
accent: blue
toggle:
icon: material/brightness-7
name: Switch to dark mode
- scheme: slate
primary: blue
accent: blue
toggle:
icon: material/brightness-4
name: Switch to light mode
features:
- navigation.tabs
- navigation.sections
- navigation.expand
- navigation.top
- search.highlight
- content.code.copy

nav:
- Home: index.md
- Tutorials:
- tutorials/index.md
- Getting Started: tutorials/getting-started.md
- First Deployment: tutorials/first-deployment.md
- How-to Guides:
- how-to/index.md
- Prompting Guide: how-to/prompting-guide.md
- Repository Analysis: how-to/repository-analysis.md
- Reference:
- reference/index.md
- MCP Tools: reference/mcp-tools.md
- Configuration: reference/configuration.md
- Explanation:
- explanation/index.md
- Architecture: explanation/architecture.md

plugins:
- search
- git-revision-date-localized:
enable_creation_date: true

markdown_extensions:
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
- admonition
- pymdownx.details
- pymdownx.tabbed:
alternate_style: true
- attr_list
- md_in_html

extra:
social:
- icon: fontawesome/brands/github
link: https://github.com/username/repository

requirements.txt:

mkdocs>=1.5.0
mkdocs-material>=9.0.0
mkdocs-git-revision-date-localized-plugin>=1.2.0

Eleventy Configuration

.eleventy.js:

const { EleventyHtmlBasePlugin } = require("@11ty/eleventy");
const markdownIt = require("markdown-it");
const markdownItAnchor = require("markdown-it-anchor");

module.exports = function (eleventyConfig) {
// Add plugins
eleventyConfig.addPlugin(EleventyHtmlBasePlugin);

// Configure Markdown
let markdownLibrary = markdownIt({
html: true,
breaks: true,
linkify: true,
}).use(markdownItAnchor, {
permalink: markdownItAnchor.permalink.ariaHidden({
placement: "after",
class: "direct-link",
symbol: "#",
}),
level: [1, 2, 3, 4],
slugify: eleventyConfig.getFilter("slug"),
});

eleventyConfig.setLibrary("md", markdownLibrary);

// Copy static files
eleventyConfig.addPassthroughCopy("src/assets");
eleventyConfig.addPassthroughCopy("src/css");

// Collections for Diataxis structure
eleventyConfig.addCollection("tutorials", function (collection) {
return collection.getFilteredByGlob("src/tutorials/*.md");
});

eleventyConfig.addCollection("howto", function (collection) {
return collection.getFilteredByGlob("src/how-to/*.md");
});

eleventyConfig.addCollection("reference", function (collection) {
return collection.getFilteredByGlob("src/reference/*.md");
});

eleventyConfig.addCollection("explanation", function (collection) {
return collection.getFilteredByGlob("src/explanation/*.md");
});

return {
dir: {
input: "src",
output: "_site",
includes: "_includes",
layouts: "_layouts",
data: "_data",
},
pathPrefix: "/repository-name/",
markdownTemplateEngine: "njk",
htmlTemplateEngine: "njk",
};
};

package.json additions:

{
"scripts": {
"build": "eleventy",
"serve": "eleventy --serve",
"debug": "DEBUG=Eleventy* eleventy"
},
"devDependencies": {
"@11ty/eleventy": "^2.0.0",
"markdown-it": "^13.0.0",
"markdown-it-anchor": "^8.6.0"
}
}

GitHub Actions Configuration

Common Workflow Settings

All generated workflows include these optimizations:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

Caching Configuration

Node.js dependencies:

- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

Ruby dependencies (Jekyll):

- name: Cache gems
uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-

Performance Configuration

Build Optimization

Docusaurus:

const config = {
future: {
experimental_faster: true,
},
webpack: {
jsLoader: (isServer) => ({
loader: "esbuild-loader",
options: {
loader: "tsx",
target: isServer ? "node12" : "es2017",
},
}),
},
};

Hugo:

build:
writeStats: true
noJSConfigInAssets: true

caches:
getjson:
maxAge: "1m"
getcsv:
maxAge: "1m"

SEO Configuration

All SSGs include:

  • Meta tags for social sharing
  • Structured data markup
  • XML sitemaps
  • RSS feeds
  • Canonical URLs
  • Open Graph tags

Security Configuration

Content Security Policy

Generated sites include CSP headers:

<meta
http-equiv="Content-Security-Policy"
content="
default-src 'self';
script-src 'self' 'unsafe-inline' https://www.googletagmanager.com;
style-src 'self' 'unsafe-inline';
img-src 'self' data: https:;
connect-src 'self' https://www.google-analytics.com;
"
/>

HTTPS Enforcement

All deployments force HTTPS and include HSTS headers.

Troubleshooting Configuration Issues

Common Problems

BaseURL Mismatch:

# Check your configuration matches repository name
baseURL: "https://username.github.io/repository-name/" # Must match exactly

Build Failures:

# Verify Node.js version in workflows
node-version: '20' # Must match your local version

Asset Loading Issues:

# Ensure relative paths
<img src="./images/logo.png" /> # Good
<img src="/images/logo.png" /> # May fail

For more troubleshooting help, see the Troubleshooting Guide.