CNPC JavaDoc MCP Server
Provides CNPC JavaDoc API lookups using JavaDoc hosted on GitHub Pages for CustomNPCs forks (CustomNPC+, Goodbird, BetaZavr).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CNPC JavaDoc MCP Serversearch for ICustomNpc class in 1.12.2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CNPC JavaDoc MCP Server
An MCP (Model Context Protocol) server that provides CustomNPCs (CNPC) JavaDoc API lookups. Lets AI coding agents search CNPC class methods, fields, and inheritance hierarchies across multiple Minecraft versions and forks.
What It Does
CustomNPCs is a Minecraft mod with a rich Java scripting API spanning 10+ Minecraft versions and 3 forks. This MCP server lets your AI agent:
Search CNPC JavaDoc for methods and fields with boolean expressions, column modifiers, and scoring
View class hierarchies — inheritance chains and direct subclasses
Auto-build caches on first use — fetches and parses JavaDoc HTML from kodevelopment.nl and GitHub Pages
Full interoperability with AI-MCP-NativeMinecraftAccess — identical search syntax
Use Cases
Scenario | How This Helps |
CNPC script development | Look up method signatures, parameters, and return types |
Class hierarchy exploration | Find parent interfaces and classes for API types |
Cross-version porting | Compare API surfaces between MC versions |
Fork development | Query CustomNPC+ or Goodbird fork APIs |
MCP Tools
Tool | Description |
| Search CNPC JavaDoc methods/fields with boolean expressions |
| Display class inheritance chain and direct subclasses |
Related MCP server: CHECK-MODULE MCP Server
Quick Install
Prerequisites
Node.js ≥ 18
Step 1: Clone & Build
git clone https://github.com/SaltfishSheep/AI-MCP-CNPCAPIAccess.git
cd AI-MCP-CNPCAPIAccess
npm install
npm run buildStep 2: Add to Your MCP Client
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"cnpc-javadoc": {
"command": "node",
"args": ["/absolute/path/to/AI-MCP-CNPCAPIAccess/dist/index.js"]
}
}
}OpenCode (opencode.json):
{
"mcp": {
"cnpc-javadoc": {
"type": "local",
"command": ["node", "/absolute/path/to/AI-MCP-CNPCAPIAccess/dist/index.js"],
"enabled": true
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"cnpc-javadoc": {
"command": "node",
"args": ["/absolute/path/to/AI-MCP-CNPCAPIAccess/dist/index.js"]
}
}
}Replace
/absolute/path/to/with the actual path where you cloned the repo.
Usage
Search Tool
search(mc_version="1.12.2", expression="ICustomNpc")
search(mc_version="1.12.2", expression="say:method")
search(mc_version="1.12.2", expression="health:field")Example queries:
Query | Description |
| All entries mentioning ICustomNpc |
| Methods with "say" in name |
| Fields with "health" in name |
| Class name exactly "ICustomNpc" |
| All entries under entity package |
| Methods returning boolean |
| Static methods containing "get" |
| Dialog or quest entries with "get" |
| Deduplicated class list |
Expression syntax:
Syntax | Meaning | Example |
| Case-insensitive substring match |
|
| Restrict to specific columns |
|
| Strong modifier — exact match |
|
| Dot notation → |
|
| AND (higher precedence) |
|
| OR |
|
| Grouping |
|
Modifiers:
Modifier | Searches | Description |
| class, name, desc, access, is_static | Default (excludes sideonly) |
| class | Full class path |
| class name after last | Class name only |
| package before last | Package only |
| name | Method/field names |
| name, type=method only | Methods only |
| name, type=field only | Fields only |
| desc | JVM descriptors |
| access, is_static | Access/static status |
| sideonly | Always "common" for CNPC |
Show-Hierarchy Tool
show-hierarchy(mc_version="1.12.2", class="noppes/npcs/api/entity/ICustomNpc")Example output:
Hierarchy: ICustomNpc -> IEntityLiving -> IEntityLivingBase -> IEntity -> Object
Subs:
ICustomNpcThe tool returns two sections:
Hierarchy: inheritance chain from the class up to root (
->separated)Subs: direct subclasses (if any)
Dot notation is also accepted: "noppes.npcs.api.entity.ICustomNpc".
Supported Versions
Source | Versions | Parser Profile |
kodevelopment.nl | 1.7.10 | kodevelopment-legacy |
kodevelopment.nl | 1.8.9, 1.9.4 | kodevelopment-old |
kodevelopment.nl | 1.10.2, 1.11.2 | kodevelopment-mid |
kodevelopment.nl | 1.12.2 | kodevelopment-modern |
kodevelopment.nl | 1.16.5, 1.18.2 | kodevelopment-latest |
CustomNPC+ (Kamkeel) | cnpc+:1.7.10 | kodevelopment-legacy |
Goodbird | 1.20.1 | goodbird |
BetaZavr | BetaZavr:1.12.2 | kodevelopment-modern |
BetaZavr | BetaZavr:1.20.1 | goodbird |
Note: CNPC has no official releases for MC 1.8–1.8.8, 1.9–1.9.3, 1.11, or 1.13–1.15.2.
Version Format
Standard:
"1.12.2","1.7.10","1.20.1"Fork:
"cnpc+:1.7.10"(CustomNPC+),"BetaZavr:1.12.2","BetaZavr:1.20.1"
How It Works
On first search for a given CNPC version, the server fetches JavaDoc HTML from kodevelopment.nl or GitHub Pages
It parses class pages using version-specific HTML parsers (6 profile names routing to 3 parser implementations)
Methods and fields are extracted with JVM descriptors and stored as CSV cache
Class hierarchy is extracted and stored as JSON cache
Subsequent searches use the cached data (validated against
package.jsonversion)
Project Structure
AI-MCP-CNPCAPIAccess/
├── package.json
├── tsconfig.json
├── src/
│ ├── index.ts # MCP server entry point (search + show-hierarchy)
│ ├── types.ts # TypeScript type definitions
│ ├── util.ts # Shared utilities (CSV parsing, package version)
│ ├── version-table.ts # CNPC version → doc URL + parser profile mapping
│ ├── builder/
│ │ ├── index.ts # buildJavadocCache entry point
│ │ ├── download.ts # HTTP fetch with retry
│ │ ├── javadoc-parser.ts # 3-implementation JavaDoc HTML parser (6 profiles)
│ │ ├── descriptor.ts # Java type → JVM descriptor converter
│ │ └── cache.ts # CSV + hierarchy JSON cache writer
│ └── search/
│ ├── index.ts # Re-exports
│ ├── expression.ts # Boolean expression parser (AND/OR/braces)
│ └── csv-reader.ts # CSV reader + search
├── dist/ # Built JavaScript (entry: dist/index.js)
└── .javadoc-caches/ # Generated cache files (gitignored)License
MIT License — see LICENSE.
Data Sources
kodevelopment.nl — Official CustomNPCs JavaDoc (1.7.10–1.18.2)
Kamkeel GitHub Pages — CustomNPC+ fork JavaDoc (1.7.10)
Goodbird GitHub Pages — Unofficial CNPC port JavaDoc (1.20.1)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SaltfishSheep/AI-MCP-CNPCAPIAccess'
If you have feedback or need assistance with the MCP directory API, please join our Discord server