Atlas / MCP servers / 4sh / Angular Starter

Angular StarterBLOCK

mcp/4sh/starter-angular

An Angular component library that natively integrates your design tokens to create a seamless bridge between design and code.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
7 7r · 0w · 0d
Transport
stdio
License
—
Stars
3
01

Overview

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

Angular 22 starter (standalone, signals, zoneless) for building a fully in-house design system, with no dependency on a proprietary UI library. Headless components (Angular CDK + native signals) styled exclusively through design tokens.

This is the Starter Angular side of the Dual-Engine strategy:

  • The logic depends on the stack: Angular CDK here (Radix UI on the React side).
  • The layer shared across stacks = the design tokens (CSS variables).
  • The component styling is co-located (Angular scoped .scss) and consumes these tokens.

This repo holds the [`@4sh/ui-kit`](https://www.npmjs.com/package/@4sh/ui-kit) package (54 ui-* components on 53 entry points, plus 5 cross-cutting ones) and the demo application that consumes it.

Both sites are redeployed on every push to main (deploy-pages.yml).

This page is for whoever works on the design system itself — adding a ui-* component, editing the tokens, cutting a release. To use the kit in an application you do not need this repo: everything is in the README shipped with the package, projects/ui-kit/README.md · Français.

Stack

Read from source at commit 5c97b0cf6795OBSERVED · 2026-10-11
Advertisement
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.

claude-code
claude mcp add ui-kit -- npx -y @4sh/[email protected]
claude-desktop
{
  "mcpServers": {
    "ui-kit": {
      "command": "npx",
      "args": [
        "-y",
        "@4sh/[email protected]"
      ]
    }
  }
}
03

Exposed tools (7)

7 read · 0 write · 0 destructive.

ToolRiskDescription
DéploiementsreadSuccès et échecs de mise en production.
QuotasreadSeuil de consommation atteint.
SécuritéreadConnexion depuis un appareil inconnu.
get_component_docread
get_shared_configread
list_componentsread
search_docsread
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

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

What the source does

Filesystem
declared (8 observation(s))
Network
declared (6 observation(s))
Shell
declared (4 observation(s))
Dependencies
pinned
Secrets in source
none-found

Findings (13)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
.claude/hooks/block-dangerous-commands.js:134
regex: /\b(cat|less|head|tail|more)\b.+(credentials|secrets?|\.pem|\.key|id_rsa|id_ed25519)/i,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
.claude/hooks/block-dangerous-commands.js:152
regex: /\brm\b.+\.ssh\/(id_|authorized_keys|known_hosts)/,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
.claude/hooks/protect-secrets.js:63
regex: /(?:^|\/)(id_rsa|id_ed25519|id_ecdsa|id_dsa)$/,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
.claude/hooks/protect-secrets.js:69
regex: /(?:^|\/)\.ssh\/authorized_keys$/,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
.claude/hooks/protect-secrets.js:70
reason: 'SSH authorized_keys',
Why it matters. touches a credential store
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
.claude/hooks/protect-secrets.js:298
reason: 'Exfiltrating secrets via netcat',
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
projects/ui-kit/base/ui-image/ui-image.stories.ts:518
src: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNDAiIGhlaWdodD0iMTYwIiB2aWV3Qm94PSIwIDAgMjQwIDE2MCI+PHJlY3Qgd2lkdGg9IjI0MCIgaGVpZ2h0PSIxNjAiIHJ4PSIxMiIg
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
projects/ui-kit/eslint.config.js:3
const rootConfig = require('../../eslint.config.js');
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
storybook/addons/ripple-toggle/manager.tsx:21
import { RIPPLE_GLOBAL, RIPPLE_ON } from '../../ripple-toolbar';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
storybook/addons/text-search/preset.cjs:22
const BUILDER = pathToFileURL(join(__dirname, '../../../scripts/docs.search.mjs')).href;
INFOInventory / provenance · inv.oversize · CWE-1104
figma/component-vars.json
figma/component-vars.json
Why it matters. 1009506 bytes not read
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
projects/ui-kit/base/ui-image/ui-image.mdx:221
<td><code>Access-Control-Allow-Credentials</code></td>
Why it matters. asks the agent to read credentials

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 5c97b0cf6795full audit observations/trust-audit/mcp-server/4sh__starter-angular.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-115c97b0cf6795BLOCKD69first audit
06

Questions

What is the @4sh/ui-kit MCP server?

An Angular component library that natively integrates your design tokens to create a seamless bridge between design and code.

What tools does @4sh/ui-kit expose?

7 in total: 7 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is @4sh/ui-kit safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does @4sh/ui-kit need?

No credential environment variables were found in its source, so it appears to need none.

How does @4sh/ui-kit run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @4sh/ui-kit at 0.13.0.

How current is this page?

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

Advertisement