Purpose: Force AI clients to use ONLY the correct ArcLang syntax
- URI:
arclang://syntax-rules - Exposed as MCP resource to AI clients
- Contains mandatory syntax rules
- Claude Desktop will read this BEFORE generating code
Tool descriptions now include:
MANDATORY SYNTAX: Use 'req ID "Title" { }' format
CORRECT: requirements stakeholder { req STK-001 "Title" { } }
WRONG: requirement "REQ-001" { }
- Location:
mcp-server/ARCLANG_SYNTAX_RULES.md - 315 lines of detailed rules
- Shows ✅ CORRECT and ❌ WRONG syntax
- Complete examples
- All generated models validated by compiler
- Syntax errors rejected immediately
- Feedback loop forces correct syntax
✅ model ModelName { }
❌ model "Name" { }
❌ system "Name" { }
✅ requirements stakeholder { req ID "Title" { } }
❌ requirement "ID" { }
❌ requirements { } (top-level)
✅ architecture logical { }
❌ logical_architecture { }
❌ logical_architecture ArchName { }
✅ component Name "Display" { }
❌ component "Name" { }
❌ Nested function or port blocks
- AI Client Connects to MCP server
- Reads Resource
arclang://syntax-rules - Sees Tool Descriptions with syntax constraints
- Generates Code following rules
- MCP Server Validates with compiler
- Returns Errors if syntax wrong
- AI Client Learns and corrects
mcp-server/
├── ARCLANG_SYNTAX_RULES.md # 315 lines - Complete reference
├── src/arclang_mcp/
│ ├── server.py # Enhanced tool descriptions
│ └── resources/
│ ├── __init__.py
│ └── syntax_guide.py # MCP resource implementation
- Consistent Output: All AI clients generate same syntax
- No Manual Correction: Syntax enforced automatically
- Fast Feedback: Errors caught immediately
- Self-Learning: AI clients adapt to rules
- MCP Standard: Uses MCP resource protocol
When connected to MCP server, AI will:
- Read
arclang://syntax-rulesresource - Follow syntax rules automatically
- Get validation feedback
# MCP server automatically enforces syntax
# No additional configuration neededUser asks: "Generate ACC system requirements"
AI reads arclang://syntax-rules resource
AI generates:
model AdaptiveCruiseControl {
requirements stakeholder {
req STK-001 "Distance Control" {
description: "System shall maintain safe distance"
priority: Critical
safety_level: ASIL_B
}
}
}
NOT:
❌ system "ACC" {
requirement "STK-001" { }
}
100% compliance with ArcLang syntax
No alternative syntaxes allowed
AI clients forced to use correct format
✅ Mission accomplished!