FluffOS MCP Server
FluffOS MCP-Server
Echte Treiber-Validierung für die LPC-Entwicklung - Ein MCP-Server, der FluffOS-CLI-Tools kapselt, um eine tatsächliche Validierung und Fehlersuche auf Treiberebene zu ermöglichen.
Dieser MCP-Server stellt die leistungsstarken CLI-Dienstprogramme von FluffOS (symbol und lpcc) für KI-Assistenten bereit, sodass diese LPC-Code anhand des tatsächlichen Treibers validieren und kompilierten Bytecode untersuchen können.
Was dies ermöglicht
KI-Assistenten können jetzt:
LPC-Dateien mit dem tatsächlichen FluffOS-Treiber validieren (nicht nur Syntaxprüfung)
Kompilierungsprobleme zur Laufzeit erkennen, die bei der statischen Analyse übersehen werden
Kompilierten Bytecode untersuchen, um Leistungs- oder Verhaltensprobleme zu beheben
Verstehen, wie LPC-Code tatsächlich kompiliert wird
Related MCP server: LPC MCP Server
Tools
fluffos_validate: Validiert eine LPC-Datei mit demsymbol-Tool von FluffOSfluffos_disassemble: Disassembliert LPC in Bytecode mithilfe vonlpccfluffos_doc_lookup: Durchsucht die FluffOS-Dokumentation nach Efuns, Applies, Konzepten usw.
Alle drei Tools sind schreibgeschützt und idempotent – sie verändern niemals Dateien, Treiber oder laufende MUDs und sind sicher für die automatische Ausführung durch Agenten.
Wann welches Tool zu verwenden ist
Ich möchte… | Verwenden Sie |
Prüfen, ob eine Datei mit dem Treiber kompiliert |
|
Den Bytecode sehen, zu dem eine Funktion kompiliert wird |
|
Untersuchen, warum ein Muster langsam ist |
|
Eine Efun-Signatur oder Apply-Semantik nachschlagen |
|
Herausfinden, ob eine Efun in diesem Treiber-Build existiert |
|
Pre-Commit / Pre-Deploy Plausibilitätsprüfung |
|
fluffos_doc_lookup wird nur registriert, wenn der Server mit gesetztem FLUFFOS_DOCS_DIR gestartet wird.
Voraussetzungen
1. FluffOS-Installation
Sie benötigen eine FluffOS-Installation mit verfügbaren CLI-Tools. Die folgenden Binärdateien sollten vorhanden sein:
symbol- Zur Validierung von LPC-Dateienlpcc- Zum Disassemblieren in Bytecode
2. Node.js
Node.js 16+ erforderlich:
node --version # Should be v16.0.0 or higherInstallation
Sie können den Server über npm installieren:
npm install -g @gesslar/fluffos-mcpOder lokal klonen und installieren:
git clone https://github.com/gesslar/fluffos-mcp.git
cd fluffos-mcp
npm installKonfiguration
Der Server benötigt diese Umgebungsvariablen:
FLUFFOS_BIN_DIR- Verzeichnis, das die FluffOS-Binärdateien enthält (symbol,lpcc)MUD_RUNTIME_CONFIG_FILE- Pfad zu Ihrer FluffOS-Konfigurationsdatei (z. B./mud/lib/etc/config.test)FLUFFOS_DOCS_DIR- (Optional) Verzeichnis mit der FluffOS-Dokumentation für die Suche
Einrichtung für verschiedene KI-Tools
Warp (Terminal)
Fügen Sie dies zu Ihrer Warp-MCP-Konfiguration hinzu:
Ort: Settings → AI → Model Context Protocol
Bei Installation 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"
}
}
}Bei lokalem Klonen:
{
"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"
}
}
}Wichtig: Verwenden Sie absolute Pfade!
Starten Sie Warp nach dem Hinzufügen der Konfiguration neu.
Claude Desktop
Fügen Sie dies zu ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder äquivalent hinzu:
Bei Installation 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"
}
}
}
}Bei lokalem Klonen:
{
"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"
}
}
}
}Starten Sie Claude Desktop nach der Konfiguration neu.
Anwendungsbeispiele
Sobald die Konfiguration abgeschlossen ist, können Sie Ihren KI-Assistenten fragen:
"Validieren Sie diese LPC-Datei mit dem tatsächlichen Treiber"
→ KI verwendet fluffos_validate, um symbol auszuführen
"Zeigen Sie mir den Bytecode für diese Funktion"
→ KI verwendet fluffos_disassemble, um lpcc auszuführen
"Warum ist dieser Code langsam?" → KI untersucht das Disassembly, um ineffiziente Muster zu identifizieren
"Wie lautet die Syntax für call_out?"
→ KI verwendet fluffos_doc_lookup, um die Dokumentation zu durchsuchen
"Wie verwende ich Mappings?" → KI durchsucht die Dokumentation nach Mapping-bezogenen Informationen
Funktionsweise
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 CodeKI-Assistent sendet MCP-Tool-Anfragen
Server startet das entsprechende FluffOS-CLI-Tool
CLI-Tool validiert/disassembliert mithilfe des Treibers
Server sendet Ergebnisse an die KI zurück
Die KI versteht Ihren Code auf Treiberebene und kann auf die FluffOS-Dokumentation verweisen, um die Funktionsweise zu erklären!
Implementierungsdetails
Architektur
Der Server basiert auf dem Model Context Protocol SDK und folgt einer klassenbasierten Architektur:
FluffOSMCPServer-Klasse: Haupt-Server-Implementierung
MCP SDK Server: Handhabt die Protokollkommunikation über stdio
Child process spawning: Führt FluffOS-CLI-Tools aus
Pfadnormalisierung: Konvertiert absolute Pfade in mudlib-relative Pfade
Pfadbehandlung
Der Server handhabt Dateipfade intelligent:
Analysiert das
mudlib directoryaus Ihrer FluffOS-KonfigurationsdateiNormalisiert absolute Pfade zu mudlib-relativen Pfaden
Übergibt normalisierte Pfade an FluffOS-Tools (die relative Pfade erwarten)
Beispiel: /mud/ox/lib/std/object.c → std/object.c
Tool-Implementierung
fluffos_validate:
Startet
symbol <config> <file>aus dem KonfigurationsverzeichnisErfasst stdout/stderr
Gibt Erfolg/Fehler mit Kompilierungsfehlern zurück
Exit-Code 0 = Validierung erfolgreich
fluffos_disassemble:
Startet
lpcc <config> <file>aus dem KonfigurationsverzeichnisGibt das vollständige Bytecode-Disassembly zurück
Enthält Funktionstabellen, Strings und Details auf Instruktionsebene
fluffos_doc_lookup (optional):
Führt das Hilfsskript
scripts/search_docs.shausVerwendet
grep, um Markdown-Dateien zu durchsuchenNur verfügbar, wenn
FLUFFOS_DOCS_DIRgesetzt ist
Fehlerbehandlung
Validiert erforderliche Umgebungsvariablen beim Start
Gibt strukturierte Fehlerantworten über MCP zurück
Handhabt fehlende Konfigurationen oder Fehler bei der Tool-Ausführung elegant
Exit-Codes ungleich Null werden gemeldet, führen aber nicht zum Absturz des Servers
Ergänzende Tools
Dieser Server funktioniert hervorragend zusammen mit:
lpc-mcp - Language-Server-Integration für Code-Intelligenz
VS Code mit jlchmura's LPC-Erweiterung - IDE-Unterstützung
Verwenden Sie diese zusammen für das komplette LPC-Entwicklungserlebnis!
Mitwirken
Pull Requests sind willkommen! Dies ist ein einfacher Wrapper, der mit weiteren FluffOS-Tools erweitert werden kann.
Credits
FluffOS Team - Für den fantastischen Treiber und die CLI-Tools
Model Context Protocol - Die diese Integration möglich macht
Lizenz
@gesslar/fluffos-mcp ist unter der 0BSD veröffentlicht.
Dieses Paket enthält oder hängt von Komponenten Dritter ab, die unter ihren eigenen Lizenzen stehen:
Abhängigkeit | Lizenz |
0BSD | |
MIT | |
MIT |
Available Tools
2 toolsfluffos_disassembleB
Disassemble an LPC file to show compiled bytecode using lpcc. Useful for debugging and understanding how code compiles.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Absolute path to the LPC file to disassemble |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool is 'useful for debugging and understanding how code compiles,' which gives some behavioral context about its purpose. However, it doesn't disclose important behavioral traits like whether this is a read-only operation, what permissions are needed, whether it modifies the file, error handling, or output format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded. The first sentence clearly states the core functionality, and the second sentence adds valuable context about when to use it. Both sentences earn their place with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 1 parameter with 100% schema coverage and no output schema, the description provides adequate but minimal context. It explains what the tool does and its use cases, but for a tool with no annotations and no output schema, it should ideally provide more behavioral details about what the disassembly output looks like or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'file' well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Disassemble an LPC file to show compiled bytecode using lpcc.' It specifies the verb (disassemble), resource (LPC file), and method (using lpcc). However, it doesn't explicitly differentiate from the sibling tool 'fluffos_validate', which appears to be a different operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context: 'Useful for debugging and understanding how code compiles.' This suggests when to use the tool, but doesn't explicitly state when not to use it or mention alternatives. No comparison to the sibling tool is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fluffos_validateA
Validate an LPC file using the FluffOS driver's symbol tool. Returns success/failure and any compilation errors.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Absolute path to the LPC file to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the validation outcome ('success/failure and any compilation errors'), which is useful context beyond basic functionality. However, it doesn't address important behavioral aspects like error handling, performance characteristics, or whether this operation has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place: the first states the core functionality, and the second describes the return value. There's zero waste or redundancy, and it's appropriately front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter validation tool with no annotations and no output schema, the description provides adequate but minimal information. It covers what the tool does and what it returns, but doesn't address potential complexities like what constitutes validation success versus failure, error message formats, or limitations of the validation process.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single 'file' parameter. The description doesn't add any additional meaning about the parameter beyond what the schema provides, such as file format requirements or validation scope limitations. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('validate an LPC file') and resource ('using the FluffOS driver's symbol tool'), distinguishing it from the sibling tool 'fluffos_disassemble' which implies a different operation. It provides a complete verb+resource+scope statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the sibling tool name suggests a different function, the description doesn't explicitly state when to choose validation over disassembly or other potential options. There's no mention of prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
fluffos_disassemble - First observed
fluffos_validate
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: disassemble focuses on showing compiled bytecode for debugging, while validate checks for compilation errors and success/failure. There is no overlap or ambiguity between these functions.
Both tools follow a consistent 'fluffos_verb' naming pattern (fluffos_disassemble and fluffos_validate), using the same prefix and verb-based structure. This makes them predictable and easy to identify.
With only 2 tools, the server feels thin for a FluffOS/LPC development environment. While disassembly and validation are useful, typical development workflows would benefit from additional tools like code execution, file management, or debugging support, making this set under-scoped.
The server covers only disassembly and validation, leaving significant gaps for a FluffOS development tool. Missing are core operations like running LPC code, editing files, managing projects, or advanced debugging features, which limits agents' ability to handle comprehensive development tasks.
Maintenance
Related MCP Connectors
The OpenZeppelin Solidity Contracts MCP server integrates OpenZeppelin's security and style rules into AI-driven development workflows, enabling AI assistants to generate safe, correct, and production-ready smart contracts. It automatically validates generated code against OpenZeppelin standards (including imports, modifiers, naming conventions, and security checks) and supports various contract types including ERC-20, ERC-721, ERC-1155, Stablecoins, RWA, Governor, and Account contracts through prompt-driven workflows.
Architecture compiler for AI code. 11 tools, 92 actions, 872 Lean4 proofs, 100/100 self-cert.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to compile, execute, and check Almide code for syntax or compilation errors. It provides tools for generating ASTs and accessing language grammar resources.-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to understand and query LPC codebases through natural language, using a language server for hover info, definitions, references, and diagnostics.18 npm2BSD Zero Clause
- FlicenseAqualityDmaintenanceCompile, validate, and explore TON smart contracts using the Tolk compiler from any MCP-compatible AI assistant.3-
- AlicenseNot gradedqualityDmaintenanceEnables verification of Lean 4 mathematical proofs via MCP tools, allowing AI clients to compile and check theorems with Mathlib.1MIT