Atlas / MCP servers / lexq-io / lexq-cli

lexq-cliSAFE

mcp/lexq-io/lexq-cli

The Decision Operations Platform for engineering teams. CLI and MCP server for LexQ

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
77 43r · 29w · 5d
Transport
stdio · streamable-http
License
Apache-2.0
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The Decision Operations Platform for engineering teams. CLI and MCP server for LexQ — move business rules out of your deploy pipeline, prove every change with Impact Simulation, and ship without a git push.

[Website](https://lexq.io) · [Docs](https://docs.lexq.io) · [Console](https://console.lexq.io) · [MCP Registry](https://registry.modelcontextprotocol.io)

[](https://www.npmjs.com/package/@lexq/cli) [](LICENSE)

Why LexQ?

Your business rules — pricing, promotions, fee logic, eligibility checks — change often. But every change ships through the same PR → review → staging → deploy cycle as your core application code. A one-line discount rule takes two weeks.

This is an architectural problem, not a process problem. Business logic that changes weekly shouldn't live in code that ships quarterly.

LexQ separates the two. Rules live outside your application. You change them in a visual console or through this CLI. You prove every change with Impact Simulation against real execution data. You deploy without touching your codebase.

Every decision leaves a full audit trace.

Install

npm install -g @lexq/cli

Or run without installing:

npx @lexq/cli

Requires Node.js 22+.

Quick Start

# 1. Authenticate
lexq auth login
# Enter your API key (create one with the Manage scope at console.lexq.io → Management → API Keys)

# 2. Verify
lexq auth whoami

# 3. Start from a domain template — provisions facts, sample rules, and a policy group
lexq domain-templates list
lexq domain-templates apply --template ECOMMERCE
# Returns: policyGroupId, policyVersionId, factsCreated, rulesCreated

# 4. Test a rule against your data before shipping
lexq analytics dry-run --version-id  --debug \
--json '{"facts":{"loyaltyTier":"PLATINUM","purchaseSubtotalUs
Read from source at commit 2eb7efcdf45bOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add cli --env LEXQ_API_KEY=${LEXQ_API_KEY} -- npx -y @lexq/[email protected] serve
03

Exposed tools (77)

43 read · 29 write · 5 destructive. Blast radius: 5 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
lexq_ab_test_adjustread
lexq_ab_test_startwrite
lexq_ab_test_stopwrite
lexq_dataset_templateread
lexq_dataset_uploadwrite
lexq_deploy_deployablewrite
lexq_deploy_detailwrite
lexq_deploy_diffwrite
lexq_deploy_historywrite
lexq_deploy_livewrite
lexq_deploy_overviewwrite
lexq_deploy_publishwrite
lexq_deploy_rollbackwrite
lexq_deploy_schedulewrite
lexq_deploy_scheduleswrite
lexq_deploy_undeploywrite
lexq_deploy_unschedulewrite
lexq_domain_templates_applywrite
lexq_domain_templates_listread
lexq_domain_templates_previewread
lexq_dry_runwrite
lexq_dry_run_comparewrite
lexq_facts_action_metadataread
lexq_facts_createwrite
lexq_facts_deletedestructive
lexq_facts_exportread
lexq_facts_listread
lexq_facts_unregisteredread
lexq_facts_updatewrite
lexq_groups_createwrite
lexq_groups_deletedestructive
lexq_groups_getread
lexq_groups_listread
lexq_groups_reorderread
lexq_groups_updatewrite
lexq_history_getread
lexq_history_listread
lexq_history_statsread
lexq_logs_actionread
lexq_logs_bulk_actionread
lexq_logs_getread
lexq_logs_listread
lexq_pii_reveals_listread
lexq_profile_overviewread
lexq_profile_ruleread
lexq_provenance_getread
lexq_replay_cancelread
lexq_replay_decisionread
lexq_replay_exportread
lexq_replay_listread
lexq_replay_startwrite
lexq_replay_statusread
lexq_requirementsread
lexq_rules_createwrite
lexq_rules_deletedestructive
lexq_rules_getread
lexq_rules_listread
lexq_rules_reorderread
lexq_rules_toggleread
lexq_rules_updatewrite
lexq_simulation_cancelread
lexq_simulation_exportread
lexq_simulation_listread
lexq_simulation_startwrite
lexq_simulation_statusread
lexq_versions_cloneread
lexq_versions_createwrite
lexq_versions_deletedestructive
lexq_versions_getread
lexq_versions_listread
lexq_versions_updatewrite
lexq_webhook_subscriptions_deletedestructive
lexq_webhook_subscriptions_getread
lexq_webhook_subscriptions_listread
lexq_webhook_subscriptions_savewrite
lexq_webhook_subscriptions_testread
lexq_whoamiread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (4 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (4)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
lexq_facts_delete, lexq_groups_delete, lexq_rules_delete, lexq_versions_delete, lexq_webhook_subscriptions_delete
Why it matters. 5 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/exact-decimals.mjs:139
const baseUrl = `http://127.0.0.1:${port}/`;
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/server, cli-table3, commander, dedent, zod, @eslint/js, @modelcontextprotocol/client, @types/node
Why it matters. 14 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 2eb7efcdf45bfull audit observations/trust-audit/mcp-server/lexq-io__lexq-cli.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-112eb7efcdf45bSAFEB89first audit
06

Questions

What is the lexq-cli MCP server?

The Decision Operations Platform for engineering teams. CLI and MCP server for LexQ

What tools does lexq-cli expose?

77 in total: 43 read-only, 29 that write, and 5 that can delete or overwrite (lexq_facts_delete, lexq_groups_delete, lexq_rules_delete, lexq_versions_delete, lexq_webhook_subscriptions_delete). Every one is listed on this page with its risk.

Is lexq-cli safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 5 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does lexq-cli need?

It reads LEXQ_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does lexq-cli run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @lexq/cli at 1.1.2.

How current is this page?

The grade is for one exact copy of the source (2eb7efcdf45b), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement