XIV MCP

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 dev

Open http://localhost:3000/xiv-mcp. Pages reload as you edit them.

Where the pages are

meta.json
index.mdx
tools.mdx (generated)
  • Each page is an .mdx file with a title and description in its frontmatter, and optionally an icon (a Lucide name).
  • meta.json sets the order of the pages in a folder. user and developer are 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:

FileFor
XivMcp.Core/Permissions/PermissionCatalog.csThe modules, their defaults, and which tool belongs to which
XivMcp.Core/Integrations/IntegrationCatalog.csThe integrations and the capabilities of their tools
XivMcp.Core/Mcp/ToolSummaries.csThe sentence for the player
XivMcp/**/*.csWhether 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.

On this page