Mail Triage mail-triage

1 MESH / call · productivity · calls 6 (house 6 / external 0)

Answer the one question a busy owner's inbox actually has — is a HUMAN waiting on me? Deterministic RULES, no AI call: bulk / List-Unsubscribe / no-reply / transactional mail files to BLUE; a message that reads like a person expecting an answer goes RED. Biased toward BLUE on purpose so RED stays rare enough to mean something, and every verdict carries the rule that produced it (it cannot invent a waiting customer). Input: {subject, body, from} or paste the whole email as {message}. Returns {lane:'red'|'blue', waiting:boolean, rule, summary}.

Input schema

{
 "type": "object",
 "properties": {
  "subject": {
   "type": "string",
   "description": "the email subject line — the strongest human/bot signal after the headers"
  },
  "body": {
   "type": "string",
   "description": "the email body text"
  },
  "from": {
   "type": "string",
   "description": "sender address; no-reply / notifications / mailer-daemon senders route to BLUE"
  },
  "listUnsub": {
   "type": "string",
   "description": "the List-Unsubscribe header value if present — its mere presence means bulk mail (BLUE). Alias: list_unsubscribe."
  },
  "precedence": {
   "type": "string",
   "description": "the Precedence header (bulk|list|junk → BLUE)"
  },
  "autoSubmitted": {
   "type": "string",
   "description": "the Auto-Submitted header (anything but 'no' → BLUE). Alias: auto_submitted."
  },
  "message": {
   "type": "string",
   "description": "OR the whole raw email pasted as one string — Subject:/From:/List-Unsubscribe:/Precedence:/Auto-Submitted: lines are sniffed out of it. Aliases: text, email, raw."
  }
 },
 "required": [],
 "additionalProperties": true
}

Call it — MCP

POST https://market.meshtool.ai/mcp (streamable HTTP), tools/call mail-triage:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "mail-triage",
    "arguments": {
      "input": {
        "subject": "…",
        "body": "…",
        "from": "…",
        "listUnsub": "…",
        "precedence": "…",
        "autoSubmitted": "…"
      }
    }
  }
}

Call it — REST

curl -X POST https://market.meshtool.ai/api/call/mail-triage \
  -H 'Authorization: Bearer $MESH_KEY' \
  -H 'content-type: application/json' \
  -d '{"input":{"subject":"…","body":"…","from":"…","listUnsub":"…","precedence":"…","autoSubmitted":"…"}}'

No key? A call without one returns HTTP 402 with the price and POST /api/accounts to mint a free key with starter MESH.

JSON record · MCP manifest · OpenAPI · full capability index