Skip to main content
Glama

Zelinqa MCP

The official MCP adapter for goal-oriented question selection. The model handles the conversation; the SDK handles session IDs, pending decisions and state versions.

Python 3.11+ required. Release prerequisites are in PUBLISHING.md.

MCP host → zelinqa-mcp → Python SDK zelinqa → api.zelinqa.ai

Start

Run the published package:

uvx zelinqa-mcp

To run from source:

git clone https://github.com/Zelinqa/zelinqa-mcp.git
cd zelinqa-mcp
uv sync --group dev --locked
uv run zelinqa-mcp --version

Configure ZELINQA_API_KEY in the host's secret environment (runtime scope). Never paste keys into a chat, repository or report. Host examples are in examples/; replace local checkout paths where necessary.

Environment variable

Purpose

ZELINQA_API_KEY

Required runtime key, scoped to one published domain

ZELINQA_BASE_URL

Default https://api.zelinqa.ai

ZELINQA_TIMEOUT_SECONDS

Per-attempt timeout, default 30 seconds

ZELINQA_MAX_RETRIES

Retry count, default 2

ZELINQA_SESSION_ID

Optional host-owned session to resume after restart

ZELINQA_CONVERSATION

Local name of that resumed session; default conversation

The supported transport is stdio, one isolated process per trusted host/user. HTTP hosting is disabled pending authentication and session isolation. Logs use stderr; stdout is reserved for MCP. Do not share one process across untrusted users.

Related MCP server: QuReDec MCP Server

Business tools (default)

Tool

What it does

zelinqa_start

Start or recover a named conversation and return its first or pending question

zelinqa_next_question

Record the person's reply and return the next question; without a reply, redisplay the pending question without a new turn

zelinqa_add_context

Add a context summary without asking a question

zelinqa_adjust

Apply confirmed data, dimension statuses or an objective override without consuming a turn

zelinqa_status

Refresh progress and the pending question

zelinqa_feedback

Record an observed business result: success, partial or failure

zelinqa_forget

Free the local handle; does not delete API data

The seven business tools use this loop: start, ask the returned question, then pass the person's reply to zelinqa_next_question. Repeat until stopped or the objective is achieved, then report the real business result with zelinqa_feedback.

Example tool sequence (the second call only redisplays the pending question):

{"tool":"zelinqa_start","arguments":{"conversation":"demo-42"}}
{"tool":"zelinqa_next_question","arguments":{"conversation":"demo-42"}}
{"tool":"zelinqa_next_question","arguments":{"conversation":"demo-42","user_text":"For my living room"}}

For a displayed choice use choice_labels: ["Contemporary"]. Use candidate_rank when asking a candidate other than rank 1. Session, decision and question IDs, as well as state versions, are not tool inputs. An open question requires the person's words in user_text. An outcome alone is accepted only for refused or asked_no_answer, for any question type. Closed and semi-open questions accept exact choice_labels; semi-open choices can also include free_text. assistant_text records the wording actually asked. Never invent an answer or outcome. A reply with no pending question is an error. Invalid local answers leave the pending question unchanged and can be corrected without an API call. Calling without reply fields only redisplays the pending question; candidate_rank defaults to 1.

When a CRM already knows an answer, use zelinqa_adjust instead of asking again. It accepts dimensions: [{"id":"configured_dimension_id","status":"excluded"}], data: [{"id":"configured_information_id","value":2500}], or objective: "not_achieved". Dimension statuses are achieved, not_achieved, and excluded; data also supports operation: "unset" and operation: "not_applicable" without a value. These are configured business IDs, not session or decision IDs. Use only verified information; adjust does not consume a turn and returns the usual business view. After a conflict, call status and reconcile before retrying. A question already pending is not recalculated by adjust; inspect the returned view and prefer adjusting before next_question.

Results include question text, ranks, choice labels, objective progress and counters. Next-decision results also include warnings, stop reason and degraded-mode reasons. The full target/ID maps are deliberately absent. A turn-limit warning is not proof of objective completion.

State, retries and memory

  • The registry holds at most 128 conversations. It never silently evicts one; use forget when finished. It stores current state, not a conversation transcript.

  • Calls mutating the same conversation must be sequential. A simultaneous call is rejected, not queued with a stale answer. Different conversations stay separate.

  • The SDK reuses one idempotency key across retries of a single HTTP mutation. Repeating a tool call manually is a new operation, not an automatic replay.

  • On a conflict or interrupted request, call zelinqa_status and reconcile with the pending question before answering again. Errors are not hidden.

  • Names are process-local. For restart persistence the host must retain the API session ID and inject the resume variables above outside the model.

zelinqa-mcp --advanced exposes the six low-level tools instead: create_session, resume_session, next, apply_events, get_session, submit_feedback (all prefixed zelinqa_). This mode intentionally exposes API identifiers and full state. Configuration management is not a MCP tool: use the SDK's separate configuration client/scopes.

Prompts, resource and skill

Item

Purpose

Resource zelinqa://guide

The same guide supplied as the server's instructions

Prompt zelinqa_integration_check

User-selected integration test checklist

Skill zelinqa

Short MCP workflow pointing to the guide as the reference

Reading these does not call the Zelinqa API or start a conversation. Copy the skills/zelinqa directory into your host's supported skills directory. No installation or credentials are granted by the skill itself.

Tests

uv run ruff check src tests
uv run ruff format --check src tests
uv run mypy src
uv run pytest
uv build
uv run twine check dist/*

CI runs functional tests over the in-memory MCP transport with a fake SDK, plus lint, types and packaging. Live tests are separate and opt-in: ZELINQA_LIVE=1 with ZELINQA_LIVE_RUNTIME_KEY, then uv run pytest -m live tests/live. Optional revoked/read-only keys exercise authorization failures. Use a dedicated synthetic Zelinqa: the live tests create sessions and feedback. Unit tests alone do not prove the deployed API or database persistence.

Apache-2.0. See SECURITY.md for vulnerability reporting.

Available Tools

7 tools
zelinqa_add_contextB

Report extra conversation context without asking a question or consuming a turn. This text may require language-model analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYes
conversationYesA unique business name for this conversation, not a session ID. No personal data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses two useful traits: no question is asked, and no turn is consumed, plus that the text may require language-model analysis. It does not explain side effects, persistence, auth requirements, or what happens to the reported context.

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?

Two short sentences, front-loaded with the core action. The second sentence adds a behavioral note but is somewhat vague. Overall efficient with no wasted words.

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 2-parameter tool with no annotations and only 50% schema coverage, the description omits side effects, persistence, and parameter meaning. Output schema covers return values, but the description remains too thin to guide correct 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 only 50%: the 'conversation' parameter is documented in the schema, but 'summary' is not. The description never names either parameter and only vaguely refers to 'extra conversation context' and 'This text.' It adds no meaningful semantics beyond the schema.

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?

States a specific verb and resource: 'Report extra conversation context.' The phrase 'without asking a question or consuming a turn' distinguishes it from next_question, but it does not name that sibling or differentiate from adjust, feedback, or forget. Clear but lacks explicit sibling differentiation.

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?

Usage is implied by 'without asking a question or consuming a turn' — use it when you have extra context to report and do not want to consume a turn. However, no when-not conditions or named alternatives are given, leaving the agent to infer the full routing decision.

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

zelinqa_adjustA

Apply confirmed business data, dimension statuses or an objective override without asking a question or consuming a turn. Use configured information and dimension IDs; never invent values or mark an unverified result achieved.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
objectiveNo
dimensionsNo
conversationYesA unique business name for this conversation, not a session ID. No personal data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the call is silent (no question, no turn consumed) and that it writes at the highest evidence priority (implied by "confirmed"), but it says nothing about reversibility, error behavior on unknown IDs, or idempotency for a clear mutation tool.

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?

Two dense sentences with the action and its silent-mode benefit front-loaded. Slightly jargon-heavy ("without asking a question or consuming a turn") but no wasted text.

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?

An output schema exists and the nested $defs describe operation/value semantics, so the description need not cover return values. Given that supporting structure, the description's coverage of intent and the evidence-integrity constraint is close to sufficient, with only the interaction between data/dimensions/objective left implicit.

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 description coverage is only 25%, yet the description only nods at the parameters by category ("data", "dimension statuses", "objective override") without adding format or constraint detail. The nested $defs do document operation and value semantics richly, so the description adds marginal value rather than compensating for the gap.

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?

States a specific verb (apply) with three concrete resources: confirmed business data, dimension statuses, and an objective override. It implicitly differentiates from the question-flow siblings by noting it does not ask a question or consume a turn, but it never names an alternative tool.

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?

Gives real context for when to use it: when information is already confirmed and the agent should not go through the questioning path. It also states a negative constraint (never invent values or mark unverified results achieved), but stops short of explicitly naming zelinqa_next_question as the alternative for unconfirmed cases.

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

zelinqa_feedbackB

Record the actual business result: success, partial or failure. This does not itself mark the conversation objective achieved.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
resultYes
conversationYesA unique business name for this conversation, not a session ID. No personal data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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, and it does disclose one genuinely non-obvious semantic: recording a result is decoupled from marking the objective achieved. However, it says nothing about permissions, whether the conversation must already exist, idempotency, or what happens if feedback is recorded twice.

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 short sentences, no filler, with the primary action front-loaded and the important caveat placed second. Every sentence 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?

An output schema exists, so return values need not be explained, and the core recording action is clear. But for a mutation-style tool with no annotations and a largely undocumented parameter set, the description omits prerequisites, repeat-call behavior, and the purpose of 'label', leaving real 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?

Schema description coverage is only 33%: only 'conversation' is documented in the schema, and 'label' has no description anywhere. The description restates the 'result' enum rather than adding format or constraint meaning, and gives no help on the optional 'label' parameter, so it 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.

Purpose4/5

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

States a specific verb ('Record') and resource ('the actual business result') and enumerates the accepted values (success, partial, failure), which lets an agent match it to the result enum immediately. It does not name or contrast with any sibling tool, so it falls short of 5.

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 clause 'This does not itself mark the conversation objective achieved' hints at a distinction from the tool that does close out an objective, but no alternative is named and no explicit when/when-not condition is given. Usage is implied rather than stated.

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

zelinqa_forgetA

Release a finished conversation from this process's memory. Does NOT delete server data. The host must keep its session ID outside the model to resume later.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationYesA unique business name for this conversation, not a session ID. No personal data.

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 and does well: it clarifies this does NOT delete server data and warns that the host must keep the session ID outside the model to resume. It omits any auth/permission requirements, which is a minor gap for a mutation-flavored memory operation.

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?

Three short sentences, front-loaded with the core action and scoping caveat. Every sentence carries a distinct, necessary fact: what is released, what is not deleted, and what the host must retain.

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 one-parameter tool with an output schema, the description covers the essential semantics: local-only release, no server deletion, and the external session-ID requirement. It is nearly complete, with only auth/permission behavior left unstated.

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 description coverage is 100% with a single parameter ('conversation'), so the schema already explains the naming constraint and the no-personal-data rule. The description adds no additional meaning about the parameter, matching the baseline 3.

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 names a specific verb ('Release') and resource ('a finished conversation from this process's memory'), making the effect on local memory distinct from server data. It is clearly separable from siblings like zelinqa_start, zelinqa_next_question, and zelinqa_status, though it never names an alternative explicitly.

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?

'Release a finished conversation' implies the trigger condition (the conversation is complete), but there is no explicit when-to-use/when-not-to-use guidance and no routing to or from sibling tools. Usage is inferable but not stated.

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

zelinqa_next_questionA

Report the person's reply to the pending question and get the next one. Without a reply, returns the pending question without consuming a turn. Use exact displayed choice labels; never invent an outcome. For an open question, send the person's words; an outcome alone is refused except refused or asked_no_answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
outcomeNo
free_textNo
user_textNo
conversationYesA unique business name for this conversation, not a session ID. No personal data.
choice_labelsNo
assistant_textNo
candidate_rankNo

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 and discloses two genuinely non-obvious behaviors: a missing reply returns the pending question without consuming a turn, and an outcome alone is refused except for 'refused' or 'asked_no_answer'. It does not explain permissions, error behavior, or how the several text fields interact.

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?

Three tight sentences, front-loaded with the primary action and the no-reply branch, then the validation rules. No filler, though the final sentence is dense enough to require a second read.

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?

An output schema exists so return values need not be described, and the core reply semantics are covered. However, for a 7-parameter tool with 14% schema coverage and no annotations, several parameters and the required-input combinations per question type remain undocumented.

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 description coverage is only 14%, so the description must compensate. It explains choice_labels (exact displayed labels), the outcome enum restrictions, and that open questions take the person's words, but leaves assistant_text, candidate_rank, and the free_text/user_text distinction unexplained.

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?

States a specific verb+resource: report the person's reply to the pending question and get the next one. Clearly implies a conversational loop, distinct from siblings like zelinqa_start or zelinqa_status, though it never names an alternative explicitly.

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?

Gives concrete conditional usage: supply a reply to advance, or omit it to re-fetch the pending question without consuming a turn. Also states the constraint to use exact displayed choice labels and never invent an outcome. It lacks explicit when-not-to-use or sibling routing, but the operating conditions are clear.

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

zelinqa_startA

Start or recover a named conversation and get its first (or pending) question. Reusing a name returns its current state, not a new session.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationYesA unique business name for this conversation, not a session ID. No personal data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/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 usefully discloses idempotent-by-name semantics (reuse returns current state, not a new session). However it says nothing about error behavior for invalid names, auth requirements, or side effects of creating a conversation.

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 short sentences, zero filler, with the core action front-loaded and the non-obvious reuse behavior second. Nothing could be cut without losing information.

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?

An output schema exists, so return values needn't be explained, and the description covers both start and recover paths plus question retrieval. The only real gap is the unresolved overlap with zelinqa_next_question.

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?

Schema coverage is 100% and the single parameter's description already covers uniqueness, name-vs-session-ID, and the no-personal-data constraint. The description reinforces the naming concept ('named conversation') but adds little beyond what the schema documents.

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?

States a specific verb+resource pair: start or recover a named conversation, then return its first/pending question. It is clear on its own, but it never names zelinqa_next_question, the sibling whose job is fetching subsequent questions, so the boundary is left to inference.

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?

Gives clear context for use (begin or resume a conversation) and an important reuse rule: a repeated name resumes state rather than creating a new session. It stops short of explicitly saying when to prefer zelinqa_next_question or other siblings.

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

zelinqa_statusA

Refresh progress and the pending question. Read-only; also required after an interrupted call or conflict. Reconcile before sending another answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationYesA unique business name for this conversation, not a session ID. No personal data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose that the tool is read-only and that it is required after interrupted calls or conflicts, plus a reconciliation prerequisite. However, it does not cover other behavioral traits such as idempotency, error behavior, or rate limits, leaving meaningful gaps for a tool with no annotation coverage.

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?

Three short sentences, front-loaded with the core action and immediately followed by the read-only guarantee and the required usage condition. Every sentence earns its place and there is no waste.

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?

Given that an output schema exists and the input schema fully documents the single parameter, the description covers the essential action, safety profile, and workflow trigger. It is nearly complete for this tool, though some operational details like conflict resolution specifics could add more context.

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 description coverage is 100%, so the schema already documents the single 'conversation' parameter thoroughly, including that it is a unique business name and not a session ID. The description adds no parameter-specific meaning beyond the schema, which is the expected baseline when schema coverage is high.

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 specific verb+resource: 'Refresh progress and the pending question.' It distinguishes itself somewhat from siblings by focusing on status/progress refresh rather than asking the next question or adjusting state. It does not explicitly name alternatives like zelinqa_next_question, so it falls short of a 5.

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 clear context for when to use this tool: after an interrupted call or conflict, and before sending another answer. It does not explicitly state when not to use it or name alternative sibling tools, so it stops short of full when/when-not/alternatives guidance.

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. 7 tool updatesv1.0.0
    • First observedzelinqa_add_context
    • First observedzelinqa_adjust
    • First observedzelinqa_feedback
    • First observedzelinqa_forget
    • First observedzelinqa_next_question
    • First observedzelinqa_start
    • First observedzelinqa_status

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have clear distinct roles (start, status, feedback, forget, next_question), but adjust, add_context and next_question all send information 'without consuming a turn', creating subtle boundaries an agent could misselect between. The detailed descriptions largely resolve this.

Naming Consistency4/5

All names share a consistent zelinqa_ prefix and are readable, though there is minor mixing of verb forms (adjust, start, forget) with noun forms (status, feedback, next_question). The pattern is predictable enough.

Tool Count5/5

Seven tools is well within the ideal range and each maps to a distinct step in the conversation lifecycle. Nothing feels padded or missing at the count level.

Completeness4/5

The set covers the full guided-conversation lifecycle: start/recover, advance (next_question), inspect (status), enrich (adjust, add_context), report outcome (feedback), and release (forget). Minor gaps like an explicit conversation-list or end tool are workable around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers