Skip to main content
Glama

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.

Related MCP server: jev-code

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

Available Tools

8 tools
checkA

Answer a single yes/no/unknown question about a state (a noul gate).

Returns answer (yes | no), the probability of yes (0..1), and calibrated confidence. Ideal for agent control flow: "does the user request a refund?", "is this a security incident?".

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
stateYes
instructionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description itself explains the output contract (answer, probability of yes, calibrated confidence) and implies a read-only evaluation of state. It does not disclose model-selection behavior, errors, or side effects, but for a query-style tool the main behavior is captured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the core behavior, then add return details and two illustrative examples. No fluff or repeated schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema covers return values, but the description lacks guidance on the model parameter, the meaning of 'noul gate', and how to choose check over decide/classify/triage. It is not complete enough on its own for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that state is the thing being evaluated and instructions are the yes/no question, but it never explains the optional model parameter or the expected format of instructions, leaving a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb ('Answer'), a single decision type ('yes/no/unknown'), and a target resource ('a state / noul gate'), with concrete control-flow examples. This is enough to separate it from siblings like classify, score, and decide even though no sibling is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Ideal for agent control flow' plus the refund/security examples gives a clear when-to-use context for binary gating questions. It does not name alternatives or exclusions, so it stops short of the highest level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classifyB

Assign the single best category to a state (one choice question).

Provide either labels (a list of category names) or criteria (a map of category -> short description; more accurate). Returns the chosen label, calibrated confidence, and the probability over all labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
stateYes
labelsNo
criteriaNo
instructionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does it well: it discloses that exactly one category is assigned, that confidence is calibrated, and that the full probability distribution over labels is returned. It omits edge-case behavior when neither labels nor criteria are supplied, but core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight blocks with no filler: the primary action leads, parameter guidance follows, and the return contract closes the description. Every sentence adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and 0% schema coverage, too much is left unresolved: whether labels or criteria are mandatory despite the schema only requiring state, how instructions affect behavior, what model defaults to, and what happens if neither labels nor criteria is provided. The output schema covers return shape, but calling semantics remain incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives meaning to labels and criteria, and implies state is the thing being classified, but it never explains the model or instructions parameters, and does not define what kinds of values state may take.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Assign the single best category to a state' and narrows the task to 'one choice question'. It makes the classification purpose clear, though it does not explicitly contrast this tool with siblings like decide or score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives actionable guidance on parameter selection: 'Provide either labels ... or criteria', and even notes that criteria is 'more accurate'. However, it does not say when to prefer classify over sibling tools, and it provides no exclusions or alternative tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decideA

Answer several typed questions about a state in one local forward pass.

Use this to offload System-1 judgment calls from the main model: classification, routing, scoring and yes/no gates over text, an email, a ticket or a JSON object — fast, local, and without hallucination. Each question is one of three types:

  • choice: {"type":"choice","instructions":"...","criteria":{"labelA":"desc","labelB":"desc"}}

  • score: {"type":"score","instructions":"...","criteria":["level0","level1","level2"]}

  • noul: {"type":"noul","instructions":"..."} (yes/no/unknown)

Returns every answer with its calibrated confidence and full probabilities, plus routing metadata explaining which checkpoint answered. model optionally pins english | multilingual | typed-decisions (default: the Router auto-selects per language/task).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
stateYes
questionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers: it discloses that the tool performs a 'local forward pass', is 'fast, local, and without hallucination', returns 'calibrated confidence and full probabilities', and includes 'routing metadata' and model auto-selection. It does not detail potential side effects, but the local-inference framing implies a read-only, stateless operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but every sentence carries information: purpose, use cases, question-type syntax, return value, and model options are all present and front-loaded. It could be tightened slightly, but there is no redundant or self-evident filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the key call aspects: input shapes for each question type, return payload (confidence, probabilities, routing), and model selection. Since an output schema exists, return-value details are partially covered there. A complete worked example of a full request would be helpful, but the description is sufficient for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains 'state' as text, email, ticket, or JSON object; defines the 'questions' structure with concrete JSON examples for choice, score, and noul; and documents the 'model' parameter with allowed values and default behavior. Every parameter is given meaningful semantics beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Answer') and resource ('several typed questions about a state') and clearly differentiates from siblings by emphasizing the batch/composite nature ('several typed questions in one forward pass') versus single-operation siblings like classify/score/check. It also lists the exact judgment types covered (classification, routing, scoring, yes/no gates), leaving no ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context for when to use the tool: 'offload System-1 judgment calls from the main model... fast, local, and without hallucination'. It implies alternatives through the mention of classification, routing, scoring, and yes/no gates, which map to siblings, but it does not state explicit when-not-to-use conditions or name the alternative tools directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_languageB

Detect the script and language of a text (sub-millisecond, no model forward pass).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal that the tool is fast and does not use a model forward pass, which is a meaningful behavioral trait. However, it does not state what the tool returns (though an output schema exists), error behavior, or any limitations. For a simple detection tool, the disclosed behavior is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly written sentence that front-loads the action and includes a notable efficiency claim. There is zero redundancy; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and a single simple parameter, the description is nearly complete for calling it correctly. However, it lacks any guidance on when to use it and does not mention potential edge cases (e.g., very short text, ambiguous scripts). The core purpose is covered, but the lack of usage context and parameter explanation leaves some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines one required parameter 'text' as a string, and the description does not add any additional meaning or constraints beyond that. Since schema description coverage is 0%, the description fails to compensate by explaining what kind of text is expected (e.g., encoding, language range, length). The parameter is straightforward, but the description adds no value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Detect' and the resource 'script and language of a text', which is specific and distinguishable from the sibling tools (decide, classify, etc.). It also adds a distinctive performance and implementation detail ('sub-millisecond, no model forward pass') that sets it apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or conditions. It does not mention any sibling tools or scenarios where a different tool would be more appropriate. The purpose is clear, but usage context is entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_routingA

Explain which checkpoint the Router would use for this state, without running inference.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes
questionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses a key behavioral trait: the tool does not run inference, which implies a read-only, explanatory operation. It does not detail side effects or permissions, but for this tool type the no-inference statement is a material and useful disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the core purpose and immediately adds the limiting 'without running inference'. Every word contributes meaning with no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex with a nested 'questions' parameter and no annotations, but its purpose is simple and an output schema exists, so return values need not be explained. However, the description leaves the role of 'questions' unclear, which is a meaningful gap for an agent that must construct a valid input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only indirectly references 'state' while saying nothing about 'questions'. The schema provides names and types but no semantics for what should go into the questions object, so the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Explain') and resource ('which checkpoint the Router would use'), and adds a clear scoping qualifier ('without running inference'). This distinguishes it from sibling tools like decide, classify, and triage, which imply execution rather than explanation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clarifies what the tool does not do ('without running inference') and thus implies it is for explanation rather than execution. However, it does not explicitly state when to prefer this tool over siblings like decide or triage, nor does it provide any when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA

List the laya checkpoints this server may use, the default, device and offline status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description indicates the tool returns a list of checkpoints with default, device, and offline status, but does not explicitly state that it is a read-only, non-destructive operation, nor does it mention any side effects, authentication, or rate limits. The verb 'List' implies safety, but the description could be more explicit about its read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core action ('List the laya checkpoints') and then specifies the scope (default, device, offline status). There is no extraneous information, and every word contributes to the meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless list tool with an output schema present, the description is sufficiently complete. It tells the agent exactly what information will be returned (checkpoints, default, device, offline status). While it doesn't mention potential pagination or limits, these are unlikely to be significant for a small set of checkpoints. The description provides enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides no parameter information. According to the rubric, a tool with 0 parameters gets a baseline of 4. The description adds nothing about parameters (as none exist), and no compensation is needed. The description's mention of 'default, device and offline status' describes output fields, not parameters, so it doesn't add parameter semantics but is acceptable for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'laya checkpoints', and specifies additional details (default, device, offline status). It distinguishes itself from the action-oriented sibling tools (decide, classify, score, etc.) by being a read-only query about available models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context about what the tool does (lists available checkpoints) but does not explicitly mention when to use it versus alternatives. Since it is a list operation and the siblings are all inference/classification actions, the use case is implied. It lacks explicit exclusions or alternative routing, but the context is clear enough for an agent to infer when to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scoreB

Rate a state on an ordinal scale (one score question).

levels are the ordered rungs, lowest first, e.g. ["not urgent","soon","critical"]. Returns an expected score (0..len-1), the level legend, calibrated confidence, and per-level probabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
stateYes
levelsYes
instructionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses level ordering and the return payload (expected score, legend, calibrated confidence, per-level probabilities), but it does not mention side effects, model parameter behavior, error conditions, or what the instructions parameter controls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by a useful example and return summary. There is no filler, though the phrase 'one score question' is slightly terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema likely covers the return structure, so the description's return summary is helpful but not strictly necessary. However, it omits guidance on when to choose score over sibling tools and leaves two parameters unexplained, making it adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains levels and their ordering, but leaves state, instructions, and model semantically undefined in both the schema and description. This is only partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation: rating a state on an ordinal scale using ordered levels. It emphasizes 'one score question' and 'ordinal scale,' which distinguishes it from categorical classification, though it doesn't explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for ordinal scoring but provides no explicit guidance on when to use this tool instead of siblings like classify, decide, triage, or check. There are no stated exclusions or alternative selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

triageA

Run a ready-made set of decisions over a state using a laya preset.

presets: triage (department/urgency/sentiment…), email, moderation (safety categories), guard (prompt-injection / policy gates). Returns all answers with confidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
stateYes
presetNotriage

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Because annotations are absent, the description carries the full burden. It does disclose the key behavior—running preset decision sets and 'returns all answers with confidence'—which clarifies output style. It does not mention side effects, authorization, or model execution, so it is only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler: the first states the operation and the second packs preset guidance plus output expectations into a compact list. Information is front-loaded and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is adequate for a simple preset-driven tool, especially since an output schema exists and the return value ('all answers with confidence') is mentioned. It falls short on explaining the 'model' parameter, the meaning of 'laya', and when to choose this over sibling tools like decide/classify/score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds real semantics for 'preset' by listing valid values and for 'state' as the analyzed input. However, the optional 'model' parameter is never explained, and 'state' structure is left vague.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb–resource pair: 'Run a ready-made set of decisions over a state' and then enumerates presets. This is not a tautology and is distinct from a single classification call, though it never names the sibling tools explicitly, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides concrete usage context by listing preset names and their domains (triage for department/urgency/sentiment, moderation for safety categories, guard for prompt-injection/policy gates). There are no exclusions or explicit alternatives, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedcheck
    • First observedclassify
    • First observeddecide
    • First observeddetect_language
    • First observedexplain_routing
    • First observedlist_models
    • First observedscore
    • First observedtriage

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation3/5

classify, score, and check are single-question wrappers around decide's choice/score/noul modes, so an agent choosing between decide and a specialized tool may face ambiguity for a one-off task. Their descriptions clearly separate the single-vs-multiple use cases, but the underlying semantics overlap.

Naming Consistency4/5

All tool names are lowercase and start with an imperative verb, with compound names following verb_noun (detect_language, explain_routing, list_models). The single-word verbs (decide, classify, score, check, triage) are a minor stylistic deviation from the compound pattern but remain predictable.

Tool Count4/5

Eight tools is a reasonable size for a decision-model server and stays inside the ideal 3-15 range. The count is slightly padded, though, because classify/score/check are specialized versions of decide's three question types.

Completeness4/5

The set covers general and specialized decisions, ready-made triage presets, language detection, routing explanation, and model listing—no obvious dead ends for inference workflows. Minor gaps include no queryable preset list or way to register custom presets, but these can be worked around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables local, LLM-free probabilistic decisions (choice, classification, scoring, yes/no) with real probabilities in 100+ languages, as a drop-in replacement for jev-local tools.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to perform typed decisions (choice, score, noul) over text, emails, tickets, or JSON documents, with automatic language routing and source ranking across 100+ languages via a single forward pass.
    Apache 2.0