Skip to main content
Glama
MartinCeska

suitest-docs

by MartinCeska
README.md
# suitest-docs-mcp

An MCP server exposing the [Suitest documentation](https://suite.st/docs/) as searchable tools for LLM clients (Claude Code, Claude Desktop, etc).

It works by crawling suite.st/docs once into local Markdown files, indexing them into a SQLite FTS5 full-text search database, then serving `search_docs` / `get_page` tools from that local index over stdio. No live network calls to suite.st happen at runtime.

> Note: `suite.st/docs/sitemap.xml` is broken upstream (every `<loc>` is the literal string `"None"`), so the crawler discovers pages by following links from the docs homepage instead.

## Setup

```sh
npm install
npm run crawl         # crawls suite.st/docs -> data/pages/*.md (takes a few minutes)
npm run build-index   # builds data/docs.db from data/pages/*.md
```

Re-run both commands whenever you want to refresh the content (there's no automatic re-crawl).

## Running the server

```sh
npm start
```

This starts the MCP server on stdio.

A `.mcp.json` is already checked into this project root, so any Claude Code session (CLI or the VS Code extension — no global `claude` npm install required) opened against this project will pick it up automatically:

```json
{
  "mcpServers": {
    "suitest-docs": {
      "command": "npx",
      "args": ["tsx", "src/server.ts"]
    }
  }
}
```

If you have the `claude` CLI installed, you can instead register it globally with:

```sh
claude mcp add suitest-docs -- npx tsx /absolute/path/to/docs-mcp/src/server.ts
```

(Or point at the compiled `dist/server.js` after running `npm run build`.)

## Tools

- `search_docs(query, limit?)` — full-text search over the indexed docs, returns ranked results with snippets.
- `get_page(url)` — fetches the full Markdown content of a page by URL (as returned by `search_docs`).

## Debugging

```sh
npx @modelcontextprotocol/inspector npx tsx src/server.ts
```

It's intentionally not a project devDependency (its `concurrently` → `shell-quote` transitive dependency currently has an unpatched critical advisory) — `npx` fetches and discards it on demand instead. If `npx` hits a stale/corrupted cached install, clear it with `npm cache clean --force` and retry, or run `npm install --no-save @modelcontextprotocol/inspector` temporarily.

## License & content

The code in this repository (crawler, indexer, MCP server) is MIT licensed — see [LICENSE](LICENSE).

The documentation content itself is © Suitest, "all rights reserved." This repo does **not** redistribute it: `data/` (crawled Markdown + the SQLite index) is gitignored and generated locally by each user via `npm run crawl && npm run build-index`.