GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - dockndevai/mcp-laya: Safe-by-default MCP server for Laya — fast, local, non-autoregressive typed decisions (classify / score / yes-no) for AI agents, in 100+ languages.

BranchesTags
Open more actions menu

Latest commit

 

History

5 Commits
5 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude/skills/laya-decisions
.claude/skills/laya-decisions
 
 
.github/workflows
.github/workflows
 
 
docs
docs
 
 
src/mcp_laya
src/mcp_laya
 
 
tests
tests
 
 
.env.example
.env.example
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
NOTICE
NOTICE
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
glama.json
glama.json
 
 
pyproject.toml
pyproject.toml
 
 
server.json
server.json
 
 

Repository files navigation

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

Tool For
decide answer several typed questions (choice/score/noul) in one pass — the full engine
classify assign the single best category (one choice)
score rate on an ordinal scale, e.g. urgency (one score)
check a yes/no/unknown gate for control flow (one noul)
triage a ready-made decision set via a laya preset (triage / email / moderation / guard)
detect_language script + language of a text (sub-ms, no model)
explain_routing which checkpoint would answer, without running inference
list_models the 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 bounds the state and, separately, the serialized questions; LAYA_MAX_QUESTIONS bounds their number.
  • 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. Refused requests are audited too (outcome: "rejected").
  • Read-only annotations — every tool is advertised with readOnlyHint: true.

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

About

Safe-by-default MCP server for Laya — fast, local, non-autoregressive typed decisions (classify / score / yes-no) for AI agents, in 100+ languages.

Topics

aiclassificationlayamcpmodel-context-protocolnlppythontriage

Resources

Readme
MIT license

Security policy

Security policy
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.