@gesslar/fluffos-mcp
v0.1.3
Published
MCP server for FluffOS driver tools - validate and disassemble LPC code
Maintainers
Readme
FluffOS MCP Server
Real driver validation for LPC development - An MCP server that wraps FluffOS CLI tools to provide actual driver-level validation and debugging.
This MCP server exposes FluffOS's powerful CLI utilities (symbol and lpcc) to AI assistants, enabling them to validate LPC code against the actual driver and examine compiled bytecode.
What This Enables
AI assistants can now:
- Validate LPC files using the actual FluffOS driver (not just syntax checking)
- Catch runtime compilation issues that static analysis misses
- Examine compiled bytecode to debug performance or behavior issues
- Understand how LPC code actually compiles
Tools
fluffos_validate: Validate an LPC file using FluffOS'ssymboltoolfluffos_disassemble: Disassemble LPC to bytecode usinglpccfluffos_doc_lookup: Search FluffOS documentation for efuns, applies, concepts, etc.
Prerequisites
1. FluffOS Installation
You need FluffOS installed with the CLI tools available. The following binaries should exist:
symbol- For validating LPC fileslpcc- For disassembling to bytecode
2. Node.js
Node.js 16+ required:
node --version # Should be v16.0.0 or higherInstallation
You can install the server via npm:
npm install -g @gesslar/fluffos-mcpOr clone and install locally:
git clone https://github.com/gesslar/fluffos-mcp.git
cd fluffos-mcp
npm installConfiguration
The server requires these environment variables:
FLUFFOS_BIN_DIR- Directory containing FluffOS binaries (symbol,lpcc)MUD_RUNTIME_CONFIG_FILE- Path to your FluffOS config file (e.g.,/mud/lib/etc/config.test)FLUFFOS_DOCS_DIR- (Optional) Directory containing FluffOS documentation for doc lookup
Setup for Different AI Tools
Warp (Terminal)
Add to your Warp MCP configuration:
Location: Settings → AI → Model Context Protocol
If installed via npm:
{
"fluffos": {
"command": "npx",
"args": ["@gesslar/fluffos-mcp"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}If cloned locally:
{
"fluffos": {
"command": "node",
"args": ["/absolute/path/to/fluffos-mcp/index.js"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}Important: Use absolute paths!
Restart Warp after adding the configuration.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent:
If installed via npm:
{
"mcpServers": {
"fluffos": {
"command": "npx",
"args": ["@gesslar/fluffos-mcp"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}
}If cloned locally:
{
"mcpServers": {
"fluffos": {
"command": "node",
"args": ["/absolute/path/to/fluffos-mcp/index.js"],
"env": {
"FLUFFOS_BIN_DIR": "/path/to/fluffos/bin",
"MUD_RUNTIME_CONFIG_FILE": "/mud/lib/etc/config.test",
"FLUFFOS_DOCS_DIR": "/path/to/fluffos/docs"
}
}
}
}Restart Claude Desktop after configuration.
Usage Examples
Once configured, you can ask your AI assistant:
"Validate this LPC file with the actual driver"
→ AI uses fluffos_validate to run symbol
"Show me the bytecode for this function"
→ AI uses fluffos_disassemble to run lpcc
"Why is this code slow?" → AI examines the disassembly to identify inefficient patterns
"What's the syntax for call_out?"
→ AI uses fluffos_doc_lookup to search documentation
"How do I use mappings?" → AI searches docs for mapping-related documentation
How It Works
AI Assistant
↓ (natural language)
MCP Protocol
↓ (tool calls: fluffos_validate, fluffos_disassemble)
This Server
↓ (spawns: symbol, lpcc)
FluffOS CLI Tools
↓ (validates/compiles with actual driver)
Your LPC Code- AI assistant sends MCP tool requests
- Server spawns appropriate FluffOS CLI tool
- CLI tool validates/disassembles using the driver
- Server returns results to AI
- AI understands your code at the driver level and can reference FluffOS documentation to explain how functions work!
Implementation Details
Architecture
The server is built using the Model Context Protocol SDK and follows a class-based architecture:
- FluffOSMCPServer class: Main server implementation
- MCP SDK Server: Handles protocol communication via stdio
- Child process spawning: Executes FluffOS CLI tools
- Path normalization: Converts absolute paths to mudlib-relative paths
Path Handling
The server intelligently handles file paths:
- Parses
mudlib directoryfrom your FluffOS config file - Normalizes absolute paths to mudlib-relative paths
- Passes normalized paths to FluffOS tools (which expect relative paths)
Example: /mud/ox/lib/std/object.c → std/object.c
Tool Implementation
fluffos_validate:
- Spawns
symbol <config> <file>from the config directory - Captures stdout/stderr
- Returns success/failure with compilation errors
- Exit code 0 = validation passed
fluffos_disassemble:
- Spawns
lpcc <config> <file>from the config directory - Returns complete bytecode disassembly
- Includes function tables, strings, and instruction-level detail
fluffos_doc_lookup (optional):
- Runs
scripts/search_docs.shhelper script - Uses
grepto search markdown files - Only available if
FLUFFOS_DOCS_DIRis set
Error Handling
- Validates required environment variables on startup
- Returns structured error responses via MCP
- Gracefully handles missing config or tool execution failures
- Non-zero exit codes are reported but don't crash the server
Complementary Tools
This server works great alongside:
- lpc-mcp - Language server integration for code intelligence
- VS Code with jlchmura's LPC extension - IDE support
Use them together for the complete LPC development experience!
Contributing
PRs welcome! This is a simple wrapper that can be extended with more FluffOS tools.
Credits
- FluffOS Team - For the amazing driver and CLI tools
- Model Context Protocol - Making this integration possible
~~License~~
Unlicense - Public Domain. Do whatever you want with this code.
