This documentation
How this site is built, how the tools reference is generated, and how it is published.
This site is built with Fumadocs on Next.js, exported as static files, and published on GitHub Pages. It lives in docs-site/.
Run it locally
cd docs-site
npm install
npm run devOpen http://localhost:3000/xiv-mcp. Pages reload as you edit them.
Where the pages are
- Each page is an
.mdxfile with atitleanddescriptionin its frontmatter, and optionally anicon(a Lucide name). meta.jsonsets the order of the pages in a folder.useranddeveloperare marked"root": true, which makes them the two sections of the sidebar.- Link to other pages with their full path, such as
/docs/user/connect. The base path is added for you. - Screenshots go into
public/images/and are shown with<Screenshot src="name.png" alt="…" caption="…" />.
The tools reference
content/docs/user/tools.mdx is generated by scripts/generate-tools.mjs before every npm run dev and npm run build, and is not committed. It reads:
| File | For |
|---|---|
XivMcp.Core/Permissions/PermissionCatalog.cs | The modules, their defaults, and which tool belongs to which |
XivMcp.Core/Integrations/IntegrationCatalog.cs | The integrations and the capabilities of their tools |
XivMcp.Core/Mcp/ToolSummaries.cs | The sentence for the player |
XivMcp/**/*.cs | Whether a tool changes something (ReadOnly = false) |
The same script writes content/docs/user/plugins.mdx (also not committed) from XivMcp.Core/Integrations/PluginCatalog.cs, ToolRequirements.cs and IntegrationCatalog.cs.
It warns when a tool has no summary or no definition, or uses a plugin that is not in the catalog. If one of these files changes its format, the script stops with an error instead of writing an empty page.
Build and publish
npm run build # writes the static site to out/The site is served from /xiv-mcp. Set DOCS_BASE_PATH="" to build it for the root of a domain instead.
.github/workflows/docs.yml builds the site on every push to master that touches it or the catalogs, and on pull requests. It deploys to GitHub Pages only while the repository is public; on a private repository the build still runs as a check.
Writing style
The same rules as in the plugin apply: plain words, short sentences, no contractions. See Writing for players.