Back to Browse

Laya MCP Server

by dockndevai
Developer ToolsScan in ProgressLocalNew
Free

Safe-by-default MCP for Laya: fast, local, typed decisions (classify/score/yes-no), 100+ langs.

About

Safe-by-default MCP for Laya: fast, local, typed decisions (classify/score/yes-no), 100+ langs.

Security Report

0.0
Use Caution0.0Moderate Risk

8 tools verified · Open access · No issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Remote servers are capped at 8.0 because source code is not available for review. The score reflects endpoint verification only.

What You'll Need

Set these up before or after installing:

Checkpoint to use: auto (Router picks) | english | multilingual | typed-decisions.Optional

Environment variable: LAYA_DEFAULT_MODEL

Comma-separated allowlist of checkpoints that may load. Empty = all.Optional

Environment variable: LAYA_MODELS

Allow the one-time Hugging Face checkpoint download. Off by default (offline).Optional

Environment variable: LAYA_ALLOW_DOWNLOAD

Flag answers below this calibrated confidence (0 = never flag).Optional

Environment variable: LAYA_MIN_CONFIDENCE

Inference device: auto | cpu | cuda.Optional

Environment variable: LAYA_DEVICE

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-dockndevai-mcp-laya": {
      "env": {
        "LAYA_DEVICE": "your-laya-device-here",
        "LAYA_MODELS": "your-laya-models-here",
        "LAYA_DEFAULT_MODEL": "your-laya-default-model-here",
        "LAYA_ALLOW_DOWNLOAD": "your-laya-allow-download-here",
        "LAYA_MIN_CONFIDENCE": "your-laya-min-confidence-here"
      },
      "args": [
        "mcp-laya"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

mcp-laya

PyPI CI licence

A safe-by-default Model Context Protocol server for Laya — a fast, non-autoregressive System-1 decision engine. It gives an agent a thinking primitive: typed decisions — classify, score, yes/no — over any state (text, an email, a ticket, a JSON object), in a single local forward pass (~33 ms), across 100+ languages, with no text generation — nothing to parse and nothing to hallucinate, and a calibrated confidence on every answer.

Instead of burning a slow, costly LLM round-trip on "which team should handle this? is it urgent? is this a refund request?", the agent calls a typed tool that answers locally, in milliseconds, offline. It's the safest server in the suite — laya only reads a state and returns a decision; it changes nothing.

Part of the dockndevai MCP server suite — one governance model across all of them. (This is the first Python server in the suite; the rest are Node/TS.)

What it gives an agent

ToolFor
decideanswer several typed questions (choice/score/noul) in one pass — the full engine
classifyassign the single best category (one choice)
scorerate on an ordinal scale, e.g. urgency (one score)
checka yes/no/unknown gate for control flow (one noul)
triagea ready-made decision set via a laya preset (triage / email / moderation / guard)
detect_languagescript + language of a text (sub-ms, no model)
explain_routingwhich checkpoint would answer, without running inference
list_modelsthe checkpoints available, default, device, offline status

Three checkpoints, auto-routed per request: english (ModernBERT-large), multilingual (mmBERT, 100+ languages), typed-decisions.

Install

pipx install mcp-laya      # or: pip install mcp-laya

Python 3.10+. laya pulls in torch; the model checkpoints download once from Hugging Face (see below), after which it runs fully offline.

First run: fetch the model once

Downloads are off by default (nothing leaves your machine at runtime). Pre-fetch the checkpoints one time with network access:

LAYA_ALLOW_DOWNLOAD=true python -c "import laya; laya.Router(preload=True)"

Then run the server offline.

Configure

{
  "mcpServers": {
    "laya": {
      "command": "mcp-laya",
      "env": { "LAYA_DEFAULT_MODEL": "auto" }
    }
  }
}

See docs/CLIENTS.md for Claude Code / Cursor / Codex / VS Code / Windsurf, and .env.example for every variable.

Example

Ask your agent to "use laya to classify this ticket's department and whether it's a churn risk":

// classify(state, criteria={billing, technical, sales, other})
{ "choice": "billing", "confidence": 0.95, "probabilities": { "billing": 0.95, ... } }
// check(state, "Does the user threaten to cancel?")
{ "answer": "yes", "probability_yes": 0.91, "confidence": 0.91 }

Safe by default

laya is read-only inference, so the guardrails (in src/mcp_laya/security.py) are about privacy and resource control, not write-gating:

  • Offline by default — the model runs locally; nothing is sent anywhere. The one exception, the first-time checkpoint download, is disabled unless LAYA_ALLOW_DOWNLOAD=true.
  • Model allowlist — LAYA_MODELS pins which checkpoints may load.
  • Input caps — LAYA_MAX_INPUT_CHARS / LAYA_MAX_QUESTIONS bound each request.
  • Confidence honesty — LAYA_MIN_CONFIDENCE flags (never silently trusts) low-confidence answers; every answer already carries a calibrated confidence.
  • Log privacy — LAYA_REDACT_STATE keeps the input text out of the JSON audit log by default.

There's a bundled skill, laya-decisions, teaching an agent when to offload a decision to laya and how to phrase typed questions. See also SECURITY.md.

Developing

python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
ruff check src tests && mypy src && pytest      # the policy tests need no model
python -m mcp_laya                              # run the server (stdio)

Credits

Built on laya by Convai Innovations (Apache-2.0). This server wraps that library; all model work is theirs. See NOTICE.

Licence

MIT

Reviews

No reviews yet

Be the first to review this server!