1. Conduid
  2. AI
  3. Server
MCP server · AI

Server

Fast architecture smell detector for TypeScript/JavaScript

Unclaimed MIT ai
42Fair

Scored 5 days ago · breakdown

About Server

Server is an MCP server published by archlinter in the AI category: fast architecture smell detector for TypeScript/JavaScript.

The repository has 43 stars and 2 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

Claude Code
claude mcp add server-2288 -- npx -y @archlinter/mcp-server
npx
npx -y @archlinter/mcp-server

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 Server

Powered by Claude · Grounded in docs

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

Security checks

Static checks derived from the repository 4 days 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.

1 check has not been run yet.

Releases

v0.17.1v0.17.1 · 3 Aug 20260.17.1 (2026-08-03) Bug Fixes engine: apply the global ignore list at detector input (#40) (22bffb4), closes #38
v0.16.0v0.16.0 · 16 Jan 20260.16.0 (2026-01-16) Features complexity: add cognitive complexity detector and rename classic to cyclomatic (#31) (bd2cb63)
v0.15.1v0.15.1 · 16 Jan 20260.15.1 (2026-01-16) Bug Fixes presets: ignore nestjs lifecycle methods in dead_symbols (fixes #30) (#32) (9a1c20c)
v0.15.0v0.15.0 · 15 Jan 20260.15.0 (2026-01-15) Features abstractness: improve detector with semantic rules and better r… (#29) (717ebb1)
v0.14.1v0.14.1 · 15 Jan 20260.14.1 (2026-01-15) Bug Fixes lcom: support TypeScript parameter properties and update oxc_ast (#28) (aa798ce)

README


Your codebase has 47 circular dependencies. Everyone knows. Nobody has time to fix them.

And that's okay.

What's not okay is adding the 48th one in your next PR.

npx -y @archlinter/cli diff HEAD~1 --explain
🔴 REGRESSION: New cycle detected

  src/orders/service.ts → src/payments/processor.ts → src/orders/service.ts

  Why this is bad:
    Circular dependencies create tight coupling between modules.
    Changes in one module can cause unexpected failures in the other.

  How to fix:
    Extract shared logic into a separate module, or use dependency injection.

Exit code: 1

PR blocked. Architecture protected. Zero onboarding required.


The Problem

Static analysis tools love to dump 500 issues on you and call it a day.

  • SonarQube: "You have 127 code smells" → team ignores it
  • ESLint: "379 warnings" → // eslint-disable-next-line
  • You: "We'll fix it later" → you won't

The result? Technical debt compounds silently until refactoring becomes a 6-month project.

The Solution

Archlint doesn't ask you to fix everything.

It asks you to stop making it worse.

# GitHub Actions
- name: archlint
  uses: archlinter/action@v1
  with:
    baseline: origin/${{ github.base_ref }}
    fail-on: medium
    github-token: ${{ github.token }}

That's it. Your PR now fails only if:

  • You introduce a new architectural smell
  • You worsen an existing one

Everything else passes. Your legacy code is safe. Your future code is protected.


Quick Start

# One command. No config. No server.
npx @archlinter/cli scan

# Save a baseline (e.g., on main branch)
npx @archlinter/cli snapshot -o .archlint-baseline.json

# Check for regressions in PR
npx @archlinter/cli diff .archlint-baseline.json

Why Archlint?

SonarQube ESLint Archlint
Focus Code smells Syntax/style Architecture
Setup Server + DB + tokens Config files npx
Diff mode Issues count ❌ Semantic regressions
Explains why Generic ❌ Per-smell context
Blocks PRs on New issues Rules Architectural drift

What Archlint Catches

Dependency Issues:

  • Circular dependencies (file & type-level)
  • Layer violations (domain → infra? blocked)
  • Stable Dependencies Principle violations

Design Smells:

  • God modules (doing too much)
  • Hub modules (everything depends on it)
  • Low cohesion classes (LCOM4 metric)

Code Organization:

  • Dead code & unused exports
  • Barrel file abuse
  • High coupling

→ See all 30+ detectors


CI Integration

GitHub Actions

The recommended way to use archlint on GitHub is via our official GitHub Action:

name: Architecture

on: [pull_request]

jobs:
  archlint:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write # Required for PR comments
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Important for git diff analysis

      - name: archlint
        uses: archlinter/action@v1
        with:
          baseline: origin/${{ github.base_ref }}
          fail-on: medium
          github-token: ${{ github.token }}

GitLab CI

architecture:
  script:
    - npx @archlinter/cli diff origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"

Pre-commit Hook

#!/bin/bash
npx @archlinter/cli diff HEAD~1 --fail-on high

Configuration

Create .archlint.yaml for project-specific rules:

rules:
  # Layer architecture enforcement
  layer_violation:
    layers:
      - name: domain
        path: '**/domain/**'
        allowed_imports: []

      - name: application
        path: '**/application/**'
        allowed_imports: ['domain']

  god_module:
    severity: high
    fan_in: 15
    fan_out: 15

  high_coupling:
    max_cbo: 20

# Framework-aware analysis
extends: nestjs # knows controllers are entry points

ESLint Plugin

Get architectural feedback directly in your editor:

npm install --save-dev @archlinter/eslint-plugin
// eslint.config.js
import archlint from '@archlinter/eslint-plugin';

export default [archlint.configs['flat/recommended']];

Performance

  • ~200 files in <5s — Rust + oxc parser
  • Instant re-runs — content-based caching
  • Watch mode — real-time feedback during development

Philosophy

  1. Ratchet, don't renovate — lock current state, prevent degradation
  2. Explain, don't just report — every regression comes with context
  3. Zero friction — npx, no server, no tokens, no config required
  4. Architecture > syntax — ESLint handles style, we handle structure

Links


License

MIT — use it, fork it, make your architecture better.

README fetched from the repository 4 days ago. The original is authoritative.

Questions

About Server

How do I install Server?

Run claude mcp add server-2288 -- npx -y @archlinter/mcp-server, then add the server to your MCP client's configuration.

Is Server safe to use with an AI agent?

Its trust score is 42 out of 100 (fair). It passes 4 of the 5 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 Server still maintained?

Yes — the latest release is v0.17.1 (3 Aug 2026), and the last commit was 2 months ago. The repository has 43 stars and 1 open issues.