Quickstart

Create a project, send your first event, and get a simple dashboard plus optional AI review.

1. Get a token

Sign in, create or use your default project, then create an ingest token from the dashboard. It looks like slf_pub_01H…

Sign in → get token

2. Send your first event

Any HTTP client works. The simplest form needs no headers — sulfur infers severity from the body text.

Plain text (no headers required)

curl -X POST https://sulfur.sh/e/$SULFUR_TOKEN/my-app \
  -d "DB connection failed after 3 retries"

JSON body (structured — Claude can describe individual fields)

curl -X POST https://sulfur.sh/e/$SULFUR_TOKEN/my-app \
  -H "Content-Type: application/json" \
  -H "X-Severity: error" \
  -d '{"message":"Connection timeout","endpoint":"/api/checkout","latency_ms":5200}'

PowerShell

Invoke-RestMethod -Uri "https://sulfur.sh/e/$env:SULFUR_TOKEN/my-app" `
  -Method POST -Body "DB connection failed after 3 retries"

Replace $SULFUR_TOKEN with your token. Response: {"id":"…","signature":"abc123def456","received_at":…}

3. Add to your application

For a Cloudflare Worker, wrap it in a fire-and-forget helper so it never blocks your main request path:

// In your existing Worker's catch block
async function logToSulfur(env, severity, payload) {
  await fetch(`https://sulfur.sh/e/${env.SULFUR_TOKEN}/my-worker`, {
    method: 'POST',
    headers: { 'content-type': 'application/json', 'x-severity': severity },
    body: JSON.stringify(payload),
  }).catch(() => {/* fire and forget */});
}

For Python, AWS Lambda, or other environments, see the full examples in the docs.

4. Connect Claude Desktop

Create an MCP token from the dashboard if you want Claude to read your project data directly, then add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "sulfur": {
      "url": "https://mcp.sulfur.sh",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer slf_mcp_YOUR_TOKEN_HERE"
      }
    }
  }
}

This local bearer-token setup works today for manual MCP use. sulfur is being updated toward newer remote MCP authorization flows, so expect the long-term setup path to evolve.

5. Connect Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "sulfur": {
      "url": "https://mcp.sulfur.sh",
      "headers": { "Authorization": "Bearer slf_mcp_YOUR_TOKEN_HERE" }
    }
  }
}

Ask Claude anything

"Any failures in my-app today?"
"What's the most common error in the last 6 hours?"
"Show me the full payload for signature abc123def456"
"Is my worker degraded? Check sulfur."