프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

uta-shield Remote (Barter-enabled)

제작자: eddyflores100-lang버전 0.3.0i★ –i클라우드에서 실행
레지스트리 이름io.github.eddyflores100-lang/uta-shield-remote

설치

개요

제작자가 쓴 설명(영어 원문)

Remote MCP firewall with barter protocol: identity, threat-intel, IoC lookup.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 사이버 보안

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 2개 중 1개 통과 실패
  • 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:

  1. Settings → Connectors 열기
  2. Add custom connector 누르기
  3. 아래 주소를 붙여 넣고 Add 누르기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Add2https://…3
https://wall.utalabs.tech/mcp

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http uta-shield-remote https://wall.utalabs.tech/mcp

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "uta-shield-remote": {
      "url": "https://wall.utalabs.tech/mcp"
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "uta-shield-remote": {
      "type": "http",
      "url": "https://wall.utalabs.tech/mcp"
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:

  1. 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
  2. Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
  3. 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Create2https://…3
https://wall.utalabs.tech/mcp

메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

마지막으로 점검했을 때 서버가 응답하지 않아서 도구를 읽지 못했어요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 eddyflores100-lang 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • ✕ 실패

    엔드포인트 응답

    점검할 때 6초 안에 응답하지 않았어요

  • – 해당 없음

    OAuth로 로그인

    점검할 때 6초 안에 응답하지 않았어요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요

사이버 보안 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 996개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 996개 중 78%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 996개 중 21%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

uta-shield Remote (Barter-enabled), 안전한가요?

해당하는 기본 점검 2개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 11일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Action1 MCP by usefulapi, QNSQY, EchelonGraph CVE & Exposure

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Read endpoints, missing updates, CVE vulnerabilities, installed software and reports in Action1.

클라우드에서 실행오늘 업데이트
설치

QNSQY

제작자: quantumsequrity

Linux only, local: post-quantum CBOM scan, encrypt to public keys, verify. Takes no secrets

내 컴퓨터에서 실행오늘 업데이트
설치

EchelonGraph CVE & Exposure

제작자: echelongraph

CVE, KEV, EPSS, SBOM and advisory lookups; per-CVE exposure from Shodan data (© Shodan). Keyless.

컴퓨터 또는 클라우드오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

uta-shield

Provider-side firewall for MCP servers + PhishGuard threat-intel MCP server — in one zero-dependency package.

Landing / docs: https://wall.utalabs.tech

Every gateway in the MCP security category (Lasso, Mintive, Obot, agentgateway, Cequence) protects the consumer — the company whose employees connect agents to third-party servers. Nothing protects the operator — the SaaS that publishes its MCP server and exposes its database to every anonymous agent on the internet.

uta-shield is the mirror side: you wrap YOUR MCP server and gain verified identity, per-tool authorization, threat-intel blocking (in AND out), two-tier rate limits, DLP masking, proxy hardening, per-call metering and a JSONL audit trail — without touching your server code.

Backed by a real, documented campaign: the taikotalent phishing case (fake-recruiter malware against open-source developers, domain taken down in ~12h, C2 infra tracked). The bundled feed ships its 23 verified IOCs.

Quickstart

# 1. Screen any indicator offline (exit code 1 on match → scriptable)

npx uta-shield check gaganata.ink # → MATCH (C2, campaign taikotalent-2026-10) npx uta-shield check example.com # → NO_MATCH

2. Screen text (email body, web content, tool output)

echo "verify at https://taikotalent.xyz/verify_m" | npx uta-shield screen

3. Run the PhishGuard MCP server (agents get lookup_ioc / check_url / screen_text)

npx uta-shield mcp

4. THE FIREWALL: wrap your MCP server (fail-closed: keys or explicit opt-out)

cat > keys.json <<'EOF' { "recruiter-agent": "generate-a-long-random-secret", "auditor-agent": "another-secret" } EOF npx uta-shield wrap --upstream http://localhost:3001 --port 8787 --keys-file keys.json --admin-token "$(openssl rand -hex 24)"

→ agents now talk to :8787; your server stays at :3001

GET /health · GET /pricing (x402-ready) · GET /audit (admin-only: x-uta-admin header)

5. See it all live

node demo/run-demo.mjs

Verified identity (v0.2.0, ACL strict mode v0.2.2)

Identity is no longer declared-only. Agents present three headers:

x-agent-name:      recruiter-agent

x-agent-timestamp: 1761196800000 (ms; ±5 min window) x-agent-signature: HMAC_SHA256(secret, ${agent}|${ts}|${sha256(rawBody)})

  • Valid signature → ALLOW_VERIFIED (per-agent rate buckets, ACL enforcement, metering).
  • Presented-but-invalid credentials → `REJECT_AUTH` (401). Fail-closed, always.
  • No credentials → REJECT_ANON (401) unless the operator passes --allow-anonymous.
  • Declared names (no signature) are labels only, verified:false — they earn no per-agent rate bucket.
  • Per-tool ACL (--acl-file): by default, agents absent from the map are unrestricted. For allow-list semantics, add --acl-deny-unlisted — unlisted agents get 403 REJECT_FORBIDDEN even with a valid signature. The CLI refuses --acl-deny-unlisted without an ACL file (with no map, deny-unlisted would reject every agent). /health discloses identity.acl_deny_unlisted.

Signing a request (client side, any language):

import { createHmac, createHash } from "node:crypto";

const ts = Date.now(); const bodyHash = createHash("sha256").update(rawBody).digest("hex"); const sig = createHmac("sha256", secret).update(${agent}|${ts}|${bodyHash}).digest("hex");

The 8 layers

#LayerStatus in v0.2.2
1Agent identity: HMAC-SHA256 verified (--keys-file, anti-replay window, fail-closed) + per-tool ACL (--acl-file) + declared/anonymous fallbackSHIPPED
2Reputation score per agenthook (identity verdicts recorded; scoring = roadmap)
3Threat-intel in/out: inbound args blocked; outbound responses under explicit policy (`--outbound-policy block\redact\log, default redact`)SHIPPED
4Rate limiting: two-tier — per-IP bucket (always) + per-agent bucket (verified only); free/paid tiersSHIPPED
5Billing: per-call metering + x402-ready pricing manifest (settlement delegated to operator payment layer)SHIPPED (metering)
6DLP: emails (plain + obfuscated), JWTs, AWS/GCP keys, GitHub PATs, Stripe keys, bearer tokens, PEM blocks, hex secrets, credit cards (Luhn-validated), optional base64 blobsSHIPPED
7Reverse drift alerts (notify clients if schema changes)roadmap
8Audit: JSONL per decision (indicator + campaign for triage, never raw args or secrets)SHIPPED

Honesty policy: this README marks exactly what ships. Layers 2 and 7 are design hooks — no inflated claims.

Proxy hardening (v0.2.1)

ControlDefaultFlag
Startup fail-closedrefuses to run without --keys-file or --allow-anonymous—
`/audit` authenticateddisabled (404) without a token; with one, requires `x-uta-admin` (timing-safe compare) — the trail holds IOCs and agent names, it is operator telemetry, never public--admin-token SECRET / UTA_SHIELD_ADMIN (≥16 chars)
Request body cap1 MiB (declared and streamed — header spoofing doesn't help)--max-body-bytes N
Upstream timeout30 s → 504, fixed message--upstream-timeout-ms N
MCP method allow-listinitialize, notifications/initialized, ping, tools/list, tools/call → everything else 403 METHOD_DENIED`--allow-methods "a,b" \"*"`
Safe errorsupstream failures return fixed messages; detail goes to the audit log, never the client—
Exact outbound verdictthe x-uta-shield response flag is the core verdict (OUT_OK/OUT_MASKED/OUT_REDACTED/OUTBOUND_INTEL) — no recomputation, policy=log reports OUTBOUND_INTEL, never a clean-looking OUT_OK—
Raw-body forwardingexact bytes upstream (signature integrity)—
Per-IP rate ceiling120 req/min, burst 60-- config via API
Header timeoutsheaders 10 s, request timeout = upstream + 5 sautomatic

Known limitations (honest scope)

  • Identity verification is HMAC-shared-secret (operator-issued keys). It authenticates agents to the operator; it is not a federated PKI. /.well-known/agent.json origin verification remains a supplementary hook.
  • policy=log records outbound IOCs but passes them through — it exists for operators who explicitly opt in; redact (default) or block are the safe choices.
  • Obfuscated-email and hex-secret DLP patterns are heuristic; false positives are possible (tune via dlp options).
  • No TLS termination — run behind your existing reverse proxy (Caddy/nginx/certbot).
  • The feed ships ONE documented campaign (23 IOCs). Feed data is CC-BY-4.0; extend it with your own campaigns.

Why zero dependencies?

A security product with 47 transitive dependencies is an attack surface, not a defense. uta-shield is ~1,600 lines of auditable Node.js ≥18 (ESM), including a hand-rolled MCP stdio implementation (newline-delimited JSON-RPC 2.0). npm pack ≈ 108 kB unpacked / 54 kB tarball.

The bundled feed

feed/iocs.json (schema pg/1) ships campaign taikotalent-2026-10: 23 IOCs across 9 types — phishing domain (down via registrar clientHold), live C2 domains behind Cloudflare, sender IP, fake recruiter email, stager URLs, sha256 of payloads, wildcard second-stage path (/var/tmp/.kdm.*), mutex name — with MITRE ATT&CK mapping (T1566.002, T1656, T1204.002, T1059.004, T1027, T1071.001, T1070.004, T1583.001) and per-IOC context. Every verdict carries this evidence so downstream agents can reason about WHY they were blocked.

Feed data CC-BY-4.0 from the public case repo. Update/extend it by adding a campaign object — schema validated by uta-shield verify-feed.

As an MCP server (for agents, not just operators)

Agents get the intel as tools: lookup_ioc(value), check_url(url) (feed + advisory heuristics), screen_text(text), list_campaigns(), feed_info(). Every response is DATA — the server never fetches or executes anything.

Commercial

OfferWhatPrice
Self-host (this package, license for use)all shipped layers, bundled feed — run on your own infra, commercial use allowedfree
S7 — managed feed subscriptionupdated campaign feed + webhook alerts + YARA rules$50/mes (free for first 100 ATC-holding agents)
S6 — Shield assessment + pilotoaudit of your MCP server + deployed piloto (identity+intel+audit) + report$1,000 setup + $100/mes/server

Contact: AliceLabs LLC — contacto@alicelabs.site

Test (reproducible)

node --test test/*.test.mjs   # 85 tests: identity/HMAC, strict-ACL, outbound policies, DLP formats,

authenticated /audit, exact verdict propagation, streamed overflow,

MCP client lifecycle e2e, proxy limits,

two-tier rate limits, hardened proxy e2e (413/502/504/403/429),

feed matching, MCP protocol

npm run verify-feed # feed schema validation npm run demo # end-to-end with signed traffic

Independent execution: .github/workflows/tests.yml runs the full suite on GitHub's own runners (Node 20/22/24) on every push — the results are public and don't depend on this file's claims.

Test results for v0.2.2: see EVIDENCE.md (command, Node version, full runner summary).

Migration v0.1.0 → v0.2.0 (breaking)

  • wrap without --keys-file/UTA_SHIELD_KEYS/--allow-anonymous refuses to start (fail-closed default).
  • Rate limits for unverified callers are keyed by IP; declared agent names no longer create per-agent buckets.
  • gateOut default behavior changed from pass-through to redact. Set outboundPolicy:"log" for v0.1.0 behavior.
  • New verdicts in the audit stream: ALLOW_VERIFIED, REJECT_AUTH, REJECT_FORBIDDEN, OUT_REDACTED, OUT_BLOCKED, UPSTREAM_ERROR.

Migration v0.2.0 → v0.2.1 (breaking)

  • `GET /audit` no longer works without credentials. Without --admin-token (or UTA_SHIELD_ADMIN) it answers 404; with a token it requires the x-uta-admin header. Dashboards that scraped /audit anonymously must present the operator token. The response flag x-uta-shield is now the exact core verdict — policy=log users will see OUTBOUND_INTEL instead of the previously mislabeled flag.

Migration v0.2.1 → v0.2.2

  • Additive. --acl-deny-unlisted enables opt-in strict ACL (allow-list semantics); the CLI refuses to start with that flag but no --acl-file (fail-closed). New audit verdicts: BODY_TOO_LARGE (both 413 paths — v0.2.1 added AUDIT_DISABLED/AUDIT_DENIED). Public CI added — nothing else changes for existing operators.

Licensed for use — see LICENSE (license for use / licencia de uso). © 2026 AliceLabs LLC. Commercial exceptions (white label, OEM, redistribution, managed service): contacto@alicelabs.site

PopNx에게 묻기