Skip to main content
Glama
README.md
# react-analyzer-mcp

Local Docker-managed MCP server for analyzing React code and generating
component docs from a mounted workspace.

This is based on the upstream
[`azer/react-analyzer-mcp`](https://github.com/azer/react-analyzer-mcp),
adapted for Docker MCP Toolkit:

- no hardcoded project root
- mounted workspace root via Docker MCP config
- safer path handling for project analysis
- local image and catalog entry like your other custom MCP servers

## Tools

- `analyze-react`
  - analyze a JSX or TSX source string directly
- `analyze-project`
  - scan a mounted project path and generate markdown docs for components
- `list-projects`
  - list top-level directories under the mounted workspace root
- `react-analyzer__server-status`
  - show the effective workspace root and whether it is accessible

## Build

```bash
docker build -t react-analyzer-mcp:latest .
```

## Local Node Build

```bash
npm install
npm run build
```

## Direct Docker Run

```bash
docker run -i --rm \
  -e REACT_ANALYZER_MCP_WORKSPACE_ROOT=/workspace \
  -v /Users/mwdghaz:/workspace:rw \
  react-analyzer-mcp:latest
```

## Cross-Platform Notes

- set `workspace_root` to your real host project root
- inside the container, the mounted root is always `/workspace`
- examples:
  - macOS: `/Users/name/project`
  - Linux: `/home/name/project`
  - Windows: `C:\\Users\\name\\project`

## Docker MCP

Import the local catalog:

```bash
docker mcp catalog import /Users/mwdghaz/mcp-workspace/react-analyzer-mcp/catalog.yaml
```

Then configure and enable the server in Docker MCP Toolkit.

The local config template is [config.yaml](/Users/mwdghaz/mcp-workspace/react-analyzer-mcp/config.yaml).

## Codex / Docker Gateway

This repo can be exposed through the Docker MCP gateway with:

```bash
docker mcp gateway run \
  --additional-catalog /Users/mwdghaz/mcp-workspace/react-analyzer-mcp/catalog.yaml \
  --additional-config /Users/mwdghaz/mcp-workspace/react-analyzer-mcp/config.yaml
```

## Notes

- `analyze-project` scans `.jsx` and `.tsx` files recursively.
- common heavy folders like `node_modules`, `dist`, `build`, `.next`, and `.git`
  are skipped.
- paths outside the mounted workspace root are blocked.