Complete guide to building AI-powered applications with MSL (Macincode Scripting Language) using .mcn files
git clone <repository>
cd msl
# No installation required - use immediately
python run_msl.py run script.mcn
Create hello.mcn:
var name = "World"
log "Hello " + name + "!"
Run it:
python run_msl.py run hello.mcn
var name = "Alice"
var age = 25
var is_active = true
var scores = [85, 92, 78]
if age >= 18
log "Adult"
else
log "Minor"
var counter = 0
while counter < 5
log "Count: " + counter
counter = counter + 1
try
var result = risky_operation()
catch
log "Error: " + error
// Query database
var users = query("SELECT * FROM users WHERE age > ?", (18,))
// Insert data
query("INSERT INTO users (name, email) VALUES (?, ?)",
("Alice", "alice@example.com"))
// HTTP request
var response = trigger("https://api.example.com/data",
{"key": "value"}, "POST")
// Webhook
trigger("https://hooks.slack.com/webhook",
{"text": "Hello from MSL"})
// AI analysis
var summary = ai("Summarize this data: " + users)
// Context-aware AI
var user_name = "Alice"
var recommendation = ai("Suggest training for this user")
type "username" "string"
type "age" "number"
type "is_admin" "boolean"
var username = "alice" // ✓ Valid
var age = 25 // ✓ Valid
// Load packages
use "db"
use "http"
use "ai"
// Use package functions
var data = get_json("https://api.example.com/users")
var result = batch_insert("users", data)
// Create async tasks
task "email" "trigger" "https://mail.api.com/send"
{"to": "user@example.com"}
task "log" "query" "INSERT INTO logs VALUES (?)"
("User registered")
// Wait for completion
var results = await "email" "log"
use "db"
batch_insert("users", [
{"name": "Alice"},
{"name": "Bob"}
])
backup_table("users")
use "http"
var data = get_json("https://api.example.com/data")
post_form("https://forms.example.com",
{"name": "Alice"})
use "ai"
var sentiment = analyze_sentiment("I love this!")
var summary = summarize("Long text here...")
var trend = predict_trend([1, 2, 3, 4, 5])
# Serve single script
python run_msl.py serve --file api_service.mcn --port 8000
# Serve directory
python run_msl.py serve --dir examples/ --port 8000
// api_endpoint.mcn
var user_id = request_data.user_id
var user = query("SELECT * FROM users WHERE id = ?", (user_id,))
if user
var response = {"status": "success", "user": user[0]}
else
var response = {"status": "error", "message": "User not found"}
response // Automatically returned as JSON
try
var api_result = trigger("https://external-api.com/data")
log "Success: " + api_result.data
catch
log "API call failed: " + error
var api_result = {"data": "fallback_data"}
// ✓ Good: Parameterized queries
var user_id = 123
var user = query("SELECT * FROM users WHERE id = ?", (user_id,))
// ✗ Bad: String concatenation
// query("SELECT * FROM users WHERE id = " + user_id)
// Provide context for better AI responses
var context = "User: " + user_name + ", Role: " + user_role
var ai_response = ai("Generate welcome message. Context: " + context)