Zelinqa MCP

io.github.ZelinqaPublished by GitHub account Zelinqav1.0.1Updated Oct 24, 2026

Goal-oriented conversations and next-question selection through the Zelinqa API.

VerifiedSTDIODesktop onlyProductivity & WorkflowAI & ML

Overview

AI-generated overview

Lets an assistant run a guided, goal-oriented conversation defined in Zelinqa: start it, pass replies, get the next question, record the outcome.

What you can do
  • Start or recover a named conversation and get its first or pending question
  • Record a reply and receive the next question, or redisplay the pending one
  • Add context or apply confirmed data and objective overrides without consuming a turn
  • Refresh progress and the pending question, and record an observed business result
  • Free the local conversation handle
When to use it
Useful when an assistant must ask before it decides: interviews, lead qualification, orientation, triage or recommendations, where the questions should come from a published Zelinqa domain instead of being improvised.
Requirements
Local process run with uvx, needing Python 3.11+ and uv. A runtime API key for one published domain, created in Zelinqa Studio (a free Developer edition account suffices), supplied as the ZELINQA_API_KEY environment variable. Optional variables set the base URL, timeout, retries and session resume. Network access to the Zelinqa API.
Before you install
Requires the secret ZELINQA_API_KEY, scoped to one published domain. Some calls create sessions and record feedback, so keep the host's tool-approval policy. Conversation names are process-local; resuming after a restart means the host stores the API session id outside the model. The forget tool frees only the local handle and does not delete API data. Reaching the turn limit does not prove the objective was achieved.

Installation

In SourceWeft

  1. Open Zelinqa MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[Zelinqa MCP]

[PyPI version] [CI] [Python 3.11+] [MCP registry name] [License Apache-2.0]

Install · Example · Tools · Configuration · Operations · Français


Your assistant handles the conversation. Zelinqa decides what to ask next. Describe once, in Zelinqa Studio, what a conversation must find out. This server gives any MCP host the tools to run that conversation: start it, pass each reply, get the next question, record the result. The model only ever sees question text, choice labels and a conversation name. Session, decision and state identifiers stay inside the server.

[An MCP host calls the zelinqa-mcp server over stdio; the server calls the Zelinqa API with the Python SDK and returns question text, choice labels and progress.]

Fewer tokens, deterministic, explainable

[70 percent fewer tokens, measured on 700+ conversations; deterministic: the same state returns the same question and choosing never calls a model; explainable: every question says what it collects and progress is reported per dimension.]

The engine chooses the questions, so the model stops generating them and stops re-asking: fewer tokens for the same dialogue. The choice itself is a selection over your published domain, not a generation: the same state always yields the same question, and each decision carries what the question collects, the progress of every dimension and an explicit stop reason, so a conversation can be audited after the fact. Token figures: internal test bench, September 2026: more than 700 conversations replayed twice with the same assistant, alone then steered by the Zelinqa engine, with simulated respondents replayed identically on both sides. Protocol, figures and limits: read the test bench report. A scientific benchmark with shared data and code is planned before the end of 2026.

Why

[Without Zelinqa, the model generates every question and decides with gaps. With Zelinqa, the engine runs the questioning phase from the published domain and the model decides once, with a complete typed state.]

Any assistant that has to ask before it decides, for an interview, a qualification, an orientation, a triage or a recommendation, improvises its questions and decides with gaps. With this server, the engine runs the questioning phase from your published domain and the model decides once, with a complete, typed state.

Install

You need Python 3.11+ with uv, and a runtime API key for a published domain, created in Zelinqa Studio. A free Developer edition account is enough.

[Install in Cursor]   [Install in VS Code]

Or add the server to your host by hand. The command is the same everywhere: uvx zelinqa-mcp, with the key in the host's secret environment.

Claude CodeClaude Desktop · Cursor · Windsurf
bash
claude mcp add zelinqa \  -e ZELINQA_API_KEY=YOUR_RUNTIME_API_KEY \  -- uvx zelinqa-mcp
json
{  "mcpServers": {    "zelinqa": {      "command": "uvx",      "args": ["zelinqa-mcp"],      "env": {        "ZELINQA_API_KEY": "YOUR_RUNTIME_API_KEY"      }    }  }}
Codex (~/.codex/config.toml)From a checkout
toml
[mcp_servers.zelinqa]command = "uvx"args = ["zelinqa-mcp"]env = { ZELINQA_API_KEY = "YOUR_RUNTIME_API_KEY" }
bash
git clone https://github.com/Zelinqa/zelinqa-mcp.gitcd zelinqa-mcpuv sync --group dev --lockeduv run zelinqa-mcp --version

Ready-to-copy files for each host are in examples/. Keep your host's tool-approval policy: some calls create sessions and feedback.

A conversation in four tool calls

The model calls zelinqa_start, asks the returned question in its own words, passes the person's reply to zelinqa_next_question, and repeats until the engine stops. At the end it records what really happened.

text
▶ zelinqa_start           {"conversation": "lead-42"}◀ ask  ·  "Which budget range are you considering this year?"          choices: Under €10k · €10k to €50k · Over €50k
▶ zelinqa_next_question   {"conversation": "lead-42", "choice_labels": ["€10k to €50k"]}◀ ask  ·  "When would you like to start?"          progress: budget covered · timeline not started
▶ zelinqa_next_question   {"conversation": "lead-42", "user_text": "Next quarter, after the sales kickoff."}◀ stop ·  objective achieved
▶ zelinqa_feedback        {"conversation": "lead-42", "result": "success"}

Calling zelinqa_next_question without a reply only redisplays the pending question. When a CRM already knows an answer, zelinqa_adjust records it without asking. zelinqa_adjust and zelinqa_add_context can replace the pending question, for example when the information it asked for is now known: always ask the question they return. The full answering rules are in docs/operations.md.

Tools

ToolWhat it does
zelinqa_startStart or recover a named conversation and return its first or pending question
zelinqa_next_questionRecord the person's reply and return the next question; without a reply, redisplay the pending question without a new turn
zelinqa_add_contextAdd a context summary without asking a question
zelinqa_adjustApply confirmed data, dimension statuses or an objective override without consuming a turn
zelinqa_statusRefresh progress and the pending question
zelinqa_feedbackRecord an observed business result: success, partial or failure
zelinqa_forgetFree the local handle; does not delete API data

Results carry question text, ranks, choice labels, objective progress and counters; next-decision results add warnings, the stop reason and degraded-mode reasons. At max_turns the result has action: "stop" and stop_reason: "max_turns_reached", and later calls return the same stop. Reaching the turn limit is not proof that the objective was achieved.

Also availablePurpose
Resource zelinqa://guideThe same guide supplied as the server's instructions
Prompt zelinqa_integration_checkUser-selected integration test checklist
Skill zelinqaShort workflow for hosts that support skills; copy the directory into your host's skills folder

zelinqa-mcp --advanced swaps the business tools for six low-level ones that expose API identifiers and full state. See docs/operations.md.

Configuration

Environment variablePurpose
ZELINQA_API_KEYRequired runtime key, scoped to one published domain
ZELINQA_BASE_URLDefault https://api.zelinqa.ai
ZELINQA_TIMEOUT_SECONDSPer-attempt timeout, default 30 seconds
ZELINQA_MAX_RETRIESRetry count, default 2
ZELINQA_SESSION_IDOptional host-owned session to resume after restart
ZELINQA_CONVERSATIONLocal name of that resumed session; default conversation

Security and state

  • Transport is stdio, one isolated process per trusted host and user. HTTP hosting is disabled until authentication and session isolation exist. Logs go to stderr; stdout is reserved for MCP.
  • The server holds at most 128 named conversations in memory and never evicts one silently. Names are process-local: to survive a restart, the host keeps the API session id and injects the resume variables above, outside the model.
  • Calls that mutate the same conversation must be sequential; a simultaneous call is rejected rather than answered with stale state. After a conflict, call zelinqa_status and reconcile before answering again.

Details, retry semantics and the test suites: docs/operations.md. Vulnerability reports: SECURITY.md.

Related

  • zelinqa-sdk: the Python and TypeScript clients this server is built on, for applications that call the API directly.
  • docs.zelinqa.ai: concepts, Studio guide and API reference.

License

Apache-2.0. Release steps are in RELEASING.md.

Source: README.md at commit 98537b8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v1.0.1LatestSep 29, 2026
  2. v1.0.0Sep 28, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts