1. Conduid
  2. Developer Tools
  3. CLI
MCP server · Developer Tools

CLI

Runtime intelligence system that makes MCP servers debuggable, testable, and safe to run in production.

69Good

Scored 5 hours ago · breakdown

About CLI

CLI is an MCP server published by syrin-labs in the Developer Tools category: runtime intelligence system that makes MCP servers debuggable, testable, and safe to run in production.

The repository has 48 stars and 3 forks, with the last commit 8 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/syrin-labs/cli

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about CLI

Powered by Claude · Grounded in docs

I know everything about CLI. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 5 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.5.0v1.5.0 · 17 Feb 2026What's Changed New Features W116**: Schema-Description Drift rule - detects params not mentioned in tool description W117**: Idempotency Signal rule - detects mutation tools lacking idempotency signal Analysis Engine Improvements Fixed…
v1.4.3v1.4.3 · 16 Feb 2026What's Changed Critical Bug Fixes This hotfix release addresses 4 critical production bugs that were blocking public launch. 1. **ESM Compatibility - `__dirname` Error** Issue**: `src/utils/package-manager.ts` used `__dirname`, which…
v1.4.2v1.4.2 · 4 Feb 2026What's Changed Improvements Init** – Transport type (http/stdio) shown as checklist; no free-text input. Status** – UI split into Local / Global; config, .env, project, and LLM providers per section; minimal styling aligned with doctor.…
v1.4.1v1.4.1 · 3 Feb 2026What's Changed? Breaking Changes 1. **`--mcp-url` renamed to `--url`** - The `--mcp-url` flag in `syrin dev` has been renamed to `--url` for consistency across all commands. Improvements 1. **Updated Dependencies** - Upgraded all CLI…
v1.4.0v1.4.0 · 21 Jan 2026Features 1. **Global Configuration Support** - Syrin can now be used from anywhere without project-specific configuration. `syrin init --global` creates user-wide LLM configuration at `~/.syrin/syrin.yaml` `syrin dev` works with global…

README

Syrin

Syrin Logo

npm version Node.js Version

A linter + test runner for MCP servers.


The Problem

MCP (Model Context Protocol) is how AI agents call external tools — read files, query databases, hit APIs. If you are building or using an MCP server, your AI agent depends on those tool definitions being correct.

They usually are not.

  • Tool descriptions too vague for the LLM to pick the right one
  • Two tools look so similar the model picks one at random
  • Parameter schemas missing or wrong — LLM hallucinates values
  • A tool returns 12MB of JSON and blows the context window
  • Another tool silently writes to disk when it should not
  • Your logs look fine. The agent is broken.

Syrin catches all of this before production.

$ syrin analyse --transport http --url http://localhost:8000/mcp

 E110  Tool Ambiguity           get_user ↔ fetch_user
 E101  Missing Tool Description process_data has no description
 E102  Underspecified Input     user_id: no format, no example, no enum
 E105  Free Text Propagation    get_status → update_user (unconstrained string)
 W104  Generic Description      "Get data" — too vague for tool selection

 5 issues found (4 errors, 1 warning)

See It In Action

syrin analyse demo


Try It Right Now

One command. No install, no config, no API keys:

npx @syrin/cli analyse --transport http --url https://docs.syrin.dev/mcp

Have your own MCP server running? Point Syrin at it:

npx @syrin/cli analyse --transport http --url http://localhost:8000/mcp

If your server uses stdio instead of HTTP:

npx @syrin/cli analyse --transport stdio --script "python server.py"

Want to try more commands against a local example server?

git clone https://github.com/Syrin-Labs/cli.git
cd cli/examples/demo-mcp-py
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python server.py --mode http --port 8000 &

npx @syrin/cli list tools --transport http --url http://localhost:8000/mcp
npx @syrin/cli analyse --transport http --url http://localhost:8000/mcp

Requirements: Node.js >= 20.12, npm >= 9


What Syrin Catches

Code Issue What Happens Without Syrin
E110 Tool Ambiguity LLM picks the wrong tool at random
E101 Missing Description LLM has no idea what the tool does
E102 Underspecified Input LLM hallucinates parameter values
E105 Free Text Propagation LLM passes sentences where data is expected
E103 Type Mismatch Tool chains break silently
E107 Circular Dependency Agent loops forever, burns tokens
E301 Output Explosion 12MB response blows the context window
E500 Side Effect Detected Tool writes to disk when it should not

See the full list: Error Reference · Warning Reference


Commands

Command What It Does
syrin list Show tools, resources, and prompts a server exposes
syrin analyse Static analysis — catch contract issues without executing tools
syrin test Run tools in a sandbox and validate behavior against contracts
syrin dev Interactive session — watch an LLM interact with your tools in real time
syrin doctor Validate your config, environment, and connections

Zero-config commands: list, analyse, and test --connection work with just --url or --script. No config file needed.

Config required: dev mode needs LLM API keys. Run syrin init --global to set up once.


All Demos


Install

# Run without installing
npx @syrin/cli analyse --transport http --url http://localhost:8000/mcp

# Or install globally
npm install -g @syrin/cli
syrin --version

Set Up for a Project

syrin init                 # Creates syrin.yaml + tools/ directory
syrin doctor               # Validates config and connections
syrin analyse              # Analyse your MCP server
syrin test                 # Run contract tests
syrin dev --exec           # Interactive LLM-MCP session

Tool Contracts

Define behavioral guarantees for your tools in tools/<tool-name>.yaml:

version: 1
tool: fetch_user

contract:
  input_schema: FetchUserRequest
  output_schema: User

guarantees:
  side_effects: none
  max_output_size: 10kb

tests:
  - name: 'valid user'
    input:
      user_id: '123'
    expect:
      output_schema: User

  - name: 'invalid input'
    input:
      user_id: 123
    expect:
      error:
        type: input_validation

Run tests: syrin test or syrin test --tool fetch_user

Documentation: Writing Test Cases · Test Your MCP Tools


CI Integration

# .github/workflows/syrin.yml
name: MCP Validation
on: [push, pull_request]
jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm install -g @syrin/cli
      - run: syrin analyse --ci
      - run: syrin test --ci --strict

See full CI docs: Add Syrin to CI


Documentation

Full docs at docs.syrin.dev

Topic Link
Getting Started docs.syrin.dev/getting-started
Setup Guide docs.syrin.dev/setup
Configuration docs.syrin.dev/configuration
All Commands docs.syrin.dev/commands
Error Reference docs.syrin.dev/testing/error-reference

Community


Contributing

Contributions welcome. See Contributing Guide and Code of Conduct.

For security issues: Security Policy.

License

ISC License. See LICENSE.

Made by Syrin Labs.

README fetched from the repository 5 hours ago. The original is authoritative.

Questions

About CLI

How do I install CLI?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is CLI safe to use with an AI agent?

Its trust score is 69 out of 100 (good). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is CLI still maintained?

The last commit was 8 months ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.