Ignition-JavaDoc-MCP
# Ignition Javadocs MCP
An MCP (Model Context Protocol) server for extremely fast and accurate searching and documentation retrieval of the Ignition Inductive Automation Java API.
## Features
- **Lightning Fast Search**: Indexes the Javadoc JSON-like artifacts (e.g. `type-search-index.js`) to provide sub-second search responses without downloading full HTML.
- **Dynamic HTML Parsing**: When detailed documentation is requested, it dynamically fetches the Javadoc HTML and meticulously converts it into clean, AI-readable Markdown using `cheerio`.
- **Multi-Version Support**: Can query any version of Ignition (default `8.1.39`) that publishes Javadoc to the inductive automation SDK domain.
## Tools Provided
- **`search_ignition_api`**: Search for `class`, `package`, or `member` by keyword.
- **`get_ignition_class_docs`**: Retrieve the full Markdown documentation for a specific class (e.g., package: `com.inductiveautomation.ignition.common`, class: `Dataset`).
- **`get_ignition_package_docs`**: Retrieve the full Markdown documentation for a specific package.
- **`get_ignition_member_docs`**: Retrieve documentation for a single member (method/field/constructor). Use the `u` field from search results as `memberAnchor`.
## Caching
The search index is cached to disk in `.cache/` (one file per Ignition version) so restarts don't re-download it. Cache entries expire after 24 hours. Override the cache location with the `IGNITION_JAVADOC_CACHE_DIR` environment variable.
## Getting Started
### Prerequisites
- Node.js >= 18
### Installation & Build
```bash
# Install dependencies
npm install
# Compile the TypeScript to JavaScript
npm run build
```
### Usage with MCP Clients
To use this with an MCP client (such as Claude Desktop), configure your MCP settings file to run this server.
Example configuration:
```json
{
"mcpServers": {
"ignition-javadoc": {
"command": "node",
"args": [
"/path/to/Ignition-Module-Development-Docs/dist/index.js"
]
}
}
}
```
This MCP operates exclusively on `stdio`.
TDQS
Scored across 4 tools
Each tool targets a distinct aspect of the JavaDoc API: searching, retrieving class docs, package docs, or member docs. There is no overlap in their purposes, so an agent can easily choose the correct tool for a given task.
All tool names follow a consistent pattern of a verb (search/get) followed by 'ignition' and then the target type (api, class_docs, package_docs, member_docs). This uniform structure makes the tool set predictable and easy to navigate.
With only four tools, the server is tightly scoped to its purpose of exploring the Ignition API documentation. Each tool covers a fundamental operation (search, package, class, member) without unnecessary bloat, making the set feel complete and manageable.
The tool set covers the full lifecycle of browsing JavaDoc: searching for any API element, then drilling down into packages, classes, and members. There are no obvious missing operations for a documentation server, as search can find anything and retrieval covers all levels of detail.