Atlas / MCP servers / hypabolic / Hypa

HypaBLOCK

mcp/hypabolic/hypa
Verdict
BLOCK
Grade
F
Trust score
40 /100
Exposed tools
1 1r · 0w · 0d
Transport
—
License
NOASSERTION
Stars
212
01

Overview

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

Hypa is a workspace for coding agents. It runs your agents in terminal panes, keeps them alive when you close the terminal, lets agents drive other panes, and cuts the noise from command output before it reaches an agent.

Hypa is local-first. It needs no cloud service.

What Hypa does

  • Workspace mux. hypa starts a local server that owns your panes. Attach from any terminal, detach, and attach again. Tabs, splits, workspaces, a sidebar, copy mode, popups, themes, and settings are built in.
  • Agent runtime. An agent in a Hypa pane can read other panes, start work in a new pane or a hidden pane, wait for another agent, and report its state. Hypa installs a skill that teaches an agent how.
  • Share and connect. Share a session with another machine. The other machine connects over QUIC, with TCP and TLS as the fallback. A certificate pin protects every connection.
  • Output compression. hypa -c "command" runs a command, removes noise from the output, and keeps what matters: errors, warnings, file paths, failing tests, and exit codes. The reduction is deterministic and local. It is not an LLM summary.

Install

Pick the channel that fits how you manage tools. Every channel installs the same release archive for your platform, so the mux works the same way in each.

Read from source at commit 9d7d166dfbc7OBSERVED · 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.

claude-code
claude mcp add pi-hypa -- npx -y @hypabolic/[email protected]
claude-desktop
{
  "mcpServers": {
    "pi-hypa": {
      "command": "npx",
      "args": [
        "-y",
        "@hypabolic/[email protected]"
      ]
    }
  }
}
03

Exposed tools (1)

1 read · 0 write · 0 destructive.

ToolRiskDescription
issuesreadList issues
04

Trust audit

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

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

What the source does

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

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/pi-hypa/extensions/mcp-proxy-bridge.ts:18
exec(command: string, args: string[], options?: Record<string, unknown>): Promise<HypaExecResult>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/pi-hypa/extensions/tools.ts:31
exec(command: string, args: string[], options?: Record<string, unknown>): Promise<HypaExecResult>;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
tests/Hypa.GoldenTests/Fixtures/filters/ansi_strip/ansi_strip.verified.txt:1
Build succeeded.
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
tests/Hypa.GoldenTests/Fixtures/filters/dotnet_msbuild_noise/dotnet_msbuild_noise.verified.txt:1
MyProject -> /project/bin/Debug/net10.0/MyProject.dll
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
tests/Hypa.GoldenTests/Fixtures/reducers/dotnet_build_errors/dotnet_build_errors.verified.txt:1
Hypa.Runtime -> /repo/src/Hypa.Runtime/bin/Debug/net10.0/Hypa.Runtime.dll
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
tests/Hypa.GoldenTests/Fixtures/reducers/dotnet_build_success/dotnet_build_success.verified.txt:1
Hypa.Runtime -> /repo/src/Hypa.Runtime/bin/Debug/net10.0/Hypa.Runtime.dll
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
tests/Hypa.GoldenTests/Fixtures/reducers/dotnet_test_failures/dotnet_test_failures.verified.txt:1
Failed Hypa.UnitTests.Infrastructure.Reducers.DotnetBuildOutputCompressorTests.Compress_PreservesProjectTargetLine [12 ms]
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
MEDIUMInventory / provenance · inv.binary · CWE-1104
native/runtimes/linux-x64/native/libtree-sitter-markdown.so
libtree-sitter-markdown.so
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/Hypa.Infrastructure/Mcp/Auth/OAuthCallbackListener.cs:41
_listener.Prefixes.Add($"http://127.0.0.1:{_port}/callback/");
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/Hypa.Infrastructure/Mcp/Auth/OAuthCallbackListener.cs:55
return new($"http://127.0.0.1:{_port}/callback");
MEDIUMHard-coded secrets · secret.aws · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/Support/RedactionRuleFixtures.cs:49
new("AwsAccessKey", "AKIAAAAAAAAAAAAAAAAA\n", "AKIAAAAAAAAAAAAAAAAA", true),
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/CheckpointExportTests.cs:255
const string secret = "H19_SWAP_SECRET_BYTES_do_not_export";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/ProcessLogSinkTests.cs:315
var secret = "sk-abcdefghijklmnopqrstuvwxyz0123";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/ProcessLogSinkTests.cs:328
var secret = "sk-abcdefghijklmnopqrstuvwxyz0123";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:459
const string token = "sk-abcdefghijklmnopqrstuvwxyz0123456789";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:474
const string token = "sk-abcdefghijklmnopqrstuvwxyz0123456789";
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:492
const string token = "ghp_abcdefghijklmnopqrstuvwxyz0123456789";
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:56
"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF6PZGFw=\n-----END RSA PRIVATE KEY-----");
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:80
var begin = Encoding.UTF8.GetBytes("-----BEGIN RSA PRIVATE KEY-----\n");
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:596
"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3VS5JJcds3xfnSECRET\n-----END RSA PRIVATE KEY-----";
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:642
"""{"pane_id":"p1","note":"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3VS5JJcds3xfnSECRET\n-----END RSA PRIVATE KEY-----"}""";
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
tests/Hypa.AgentRuntime.Tests/RedactionBeforeJournalTests.cs:897
"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEA0Z3FIRST\n-----END RSA PRIVATE KEY-----\n-----BEG";
LOWInventory / provenance · inv.suspicious_name · CWE-1104
tests/Hypa.AgentRuntime.Tests/Fixtures/live-cells-payload-baseline.json
live-cells-payload-baseline.json
Why it matters. member named after an attack tool
Fix. remove or justify
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/pi-hypa/test/types.d.ts:3
exec(command: string, args: string[], options?: Record<string, unknown>): Promise<{
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
tests/Hypa.AgentRuntime.Tests/Fixtures/vt/g-agent-claude-recorded/blocked.script.ndjson:2
{"type":"feed","encoding":"base64","data":"GzcbW3IbOBtbPzI1aBtbPzI1bBtbPzIwMDRoG1s/MTAwNGgbWz8yMDMxaBtbPHUbWz4xdRtbPjQ7Mm0bWz8yMDI2aA0NCuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUg

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 9d7d166dfbc7full audit observations/trust-audit/mcp-server/hypabolic__hypa.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-119d7d166dfbc7BLOCKF40first audit
06

Questions

What tools does @hypabolic/hypa expose?

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

Is @hypabolic/hypa safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (40/100) and found 7 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 @hypabolic/hypa need?

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

How current is this page?

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

Advertisement