Skip to main content
Glama
README.md
# Hudu MCP Server

Connect Claude AI to your [Hudu](https://www.hudu.com) IT documentation platform. Once installed, Claude can search, read, create, and update your Hudu knowledge base, assets, passwords, companies, and more — directly from any Claude interface.

---

## What This Does

This server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io), giving Claude secure, structured access to the Hudu REST API. It runs as a local stdio process that Claude Desktop or Claude Code launches on demand.

### Available Tools

| Category | Tools |
|----------|-------|
| **Articles** | list, get, create, update, delete, archive, unarchive |
| **Assets** | list (global + per-company), get, create, update, delete, archive, unarchive, move layout |
| **Asset Layouts** | list, get, create, update |
| **Asset Passwords** | list, get, create, update, delete, archive, unarchive |
| **Companies** | list, get, create, update, delete, archive, unarchive |
| **Expirations** | list, update, delete |
| **Exports** | list, get, create |
| **S3 Exports** | create |
| **Flag Types** | list, get, create, update, delete |
| **Flags** | list, get, create, update, delete |
| **Folders** | list, get, create, update, delete |
| **Groups** | list, get |
| **IP Addresses** | list, get, create, update, delete |
| **Lists** | list, get, create, update, delete |
| **Magic Dash** | list, upsert, delete (by title or ID), update positions |
| **Matchers** | list, update, delete |
| **Networks** | list, get, create, update, delete |
| **Password Folders** | list, get, create, update, delete |
| **Photos** | list, get, create, update, delete |
| **Public Photos** | list, get, create, update |
| **Procedures** | list, get, create, update, delete, kickoff, duplicate, create from template |
| **Procedure Tasks** | list, get, create, update, delete |
| **Rack Storages** | list, get, create, update, delete |
| **Rack Storage Items** | list, get, create, update, delete |
| **Relations** | list, create, delete |
| **Uploads** | list, get, delete |
| **Users** | list, get |
| **VLANs** | list, get, create, update, delete |
| **VLAN Zones** | list, get, create, update, delete |
| **Websites** | list, get, create, update, delete |
| **Activity Logs** | list, delete |
| **Navigation** | jump to card, jump to company |
| **API Info** | get version |

---

## Prerequisites

- **Node.js 18 or newer** — [nodejs.org](https://nodejs.org)
- **Claude Desktop** or **Claude Code**
- **A Hudu API key** — generate one at **Hudu Admin → Basic Information → API Keys**

---

## Installation

### 1. Clone and build

Clone the repo into the standard install location and build:

```powershell
git clone https://github.com/Allied-Business-Solutions/hudu-mcp.git "$env:LOCALAPPDATA\Programs\HuduMCP"
cd "$env:LOCALAPPDATA\Programs\HuduMCP"
npm install
npm run build
```

This compiles the TypeScript source into `dist/`.

### 2. Configure Claude Desktop

Open (or create) your Claude Desktop config file:

- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`

Add the `hudu` entry under `mcpServers`:

```json
{
  "mcpServers": {
    "hudu": {
      "command": "node",
      "args": ["C:/Users/YOUR_USERNAME/AppData/Local/Programs/HuduMCP/dist/index.js"],
      "env": {
        "HUDU_API_KEY": "your_api_key_here",
        "HUDU_BASE_URL": "https://your-instance.huducloud.com/api/v1"
      }
    }
  }
}
```

Replace `YOUR_USERNAME` with your Windows username, then fill in your API key and Hudu URL. Restart Claude Desktop.

### 3. Configure Claude Code

Add to `~/.claude/settings.json` (or `.claude/settings.json` in your project):

```json
{
  "mcpServers": {
    "hudu": {
      "command": "node",
      "args": ["C:/Users/YOUR_USERNAME/AppData/Local/Programs/HuduMCP/dist/index.js"],
      "env": {
        "HUDU_API_KEY": "your_api_key_here",
        "HUDU_BASE_URL": "https://your-instance.huducloud.com/api/v1"
      }
    }
  }
}
```

Replace `YOUR_USERNAME` with your Windows username, then fill in your API key and Hudu URL.

---

## Environment Variables

| Variable | Description |
|----------|-------------|
| `HUDU_API_KEY` | Your Hudu API key (from Hudu Admin → Basic Information → API Keys) |
| `HUDU_BASE_URL` | Your Hudu instance API base URL, e.g. `https://your-instance.huducloud.com/api/v1` |

See `.env.example` for a template.

---

## Example Prompts

Once connected, you can ask Claude things like:

> "Search Hudu for any articles about VPN setup and summarize what we have"

> "Find all assets for Acme Corp and list their serial numbers"

> "Create a new article called 'Windows 11 Deployment Guide' under the Acme Corp company with these steps: [paste steps]"

> "Look up the password entry for the Acme firewall admin account"

> "What procedures do we have documented for onboarding new employees?"

> "Show me all SSL certificate expirations coming up in the next 30 days"

---

## Troubleshooting

**Tools don't appear in Claude**
Verify the config file is valid JSON and the path to `dist/index.js` is correct (e.g. `C:/Users/YOUR_USERNAME/AppData/Local/Programs/HuduMCP/dist/index.js`). Restart Claude Desktop after any config change.

**`HUDU_API_KEY is required` error**
The `env` block in your Claude config is missing or the key name is wrong. Check that it's exactly `HUDU_API_KEY`.

**`HUDU_BASE_URL is required` error**
Same — check that `HUDU_BASE_URL` is set and ends with `/api/v1`.

**401 Unauthorized from Hudu**
Your API key is invalid or expired. Generate a new one from Hudu Admin → Basic Information → API Keys.

**Node.js not found**
Install Node.js 18+ from [nodejs.org](https://nodejs.org) and restart your terminal/Claude Desktop.

---

## Development

```bash
npm run build    # compile TypeScript → dist/
npm run dev      # watch mode (recompiles on save)
npm start        # run the compiled server
```

## File Structure

```
hudu-mcp/
├── src/
│   ├── api.ts       ← HTTP client helpers
│   ├── tools.ts     ← MCP tool definitions
│   └── index.ts     ← Server entry point + tool dispatch
├── dist/            ← Compiled output (git-ignored)
├── reference/
│   └── HuduRESTAPI.json  ← Hudu OpenAPI spec
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
└── README.md
```

---

## Contributing

To add a new tool:
1. Add a `Tool` entry to the `TOOLS` array in `src/tools.ts`
2. Add the corresponding `case` to the `callTool` switch in `src/index.ts`
3. Run `npm run build` to verify it compiles

The [Hudu API docs](https://developer.hudu.com) describe all available endpoints.

---

## License

MIT

TDQS

C2.6/5.0

Scored across 147 tools

Disambiguation4/5

Most tools follow a clear resource+action pattern, making their purposes obvious. A few pairs like list_assets/list_company_assets and delete_magic_dash/delete_magic_dash_by_id could cause minor selection confusion, but the descriptions generally resolve the ambiguity.

Naming Consistency4/5

The vast majority of tools use a consistent verb_noun pattern such as list_*, get_*, create_*, update_*, delete_*, archive_*, and unarchive_*. Minor deviations like kickoff_procedure, upsert_magic_dash, jump_to_card, and lookup_cards break the pattern slightly, but the overall convention remains predictable.

Tool Count1/5

With 147 tools, this server is dramatically over-scoped for an MCP surface. Even though Hudu has many resource types, exposing every CRUD operation as a separate tool creates an unwieldy interface that could be consolidated or grouped.

Completeness4/5

The tool set covers CRUD and lifecycle operations for most major Hudu resources, including articles, assets, companies, procedures, networks, VLANs, and photos. Minor gaps exist, such as missing create_matcher, no delete for asset layouts, and limited user/group management, but agents can generally work around these.

Maintenance

ActivityInactive
ResponsivenessNo issues