Atlas / MCP servers / aebrer / dreb

drebBLOCK

mcp/aebrer/dreb

Provider-agnostic agentic coding harness. Desktop and Mobile web app for fleet management. Semantic search and end-to-end development workflows baked in.

Verdict
BLOCK
Grade
F
Trust score
39 /100
Exposed tools
66 55r · 9w · 2d
Transport
stdio
License
MIT
Stars
34
01

Overview

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

dreb is a hackable, open-source terminal coding agent and agent runtime for people who want to own their AI development workflow. It gives you a practical coding assistant today — tools, sessions, memory, model switching, subagents, and a polished TUI — while keeping the core flexible enough to reshape with skills, extensions, packages, custom providers, and alternate frontends. Its web dashboard puts every agent session in the browser: start work at your desk, steer it from your phone.

Use dreb if you want a coding agent that can run against direct APIs, coding subscriptions, proxies, cloud providers, local models, or your own provider code; if you want workflows such as issue-to-merge automation and multi-agent review to be inspectable and replaceable; or if you want an agent runtime you can embed in a CLI, an RPC process, an SDK integration, a web dashboard, or a Telegram bot.

Why choose dreb?

  • Every session, on every device. The web dashboard is a first-party browser UI for the same sessions the terminal runs: a fleet overview of all live and past sessions across projects, full chat with steering, live subagent observability, host file access, dreb memory management, and settings — one synchronized state on desktop and mobile. Local-only by default; remote access is Tailscale-gated with device pairing.
  • Model and provider freedom. Authenticate with API keys or /login subscriptions, switch models at runtime with /model, scope model sets, and tune model-aware thinking levels through xhigh plus a model-aware max tier. Codex ultra is orchestration (max plus local multi-agent work), not a raw provider effort. Route built-in providers through proxies, use cloud providers such as Bedrock/Vertex/Azure, or add local/proxy/custom models through Custom Models and Custom Providers. See [Providers](packages/coding-agent/docs/providers
Read from source at commit b0f15cf84acfOBSERVED · 2026-10-12
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. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add tui --env AI_GATEWAY_API_KEY=${AI_GATEWAY_API_KEY} --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env ANTHROPIC_OAUTH_TOKEN=${ANTHROPIC_OAUTH_TOKEN} --env AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} -- npx -y @dreb/[email protected]
claude-desktop
{
  "mcpServers": {
    "tui": {
      "command": "npx",
      "args": [
        "-y",
        "@dreb/[email protected]"
      ],
      "env": {
        "AI_GATEWAY_API_KEY": "${AI_GATEWAY_API_KEY}",
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "ANTHROPIC_OAUTH_TOKEN": "${ANTHROPIC_OAUTH_TOKEN}",
        "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}"
      }
    }
  }
}
03

Exposed tools (66)

55 read · 9 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
EntryreadTest entry
Explorereadfactual research
TestAgentreadtest
arbiter-areadresearch
arbiter-breadimplementation
broken-skillreadA skill pointing to a nonexistent file.
buddyreadHatch or manage your terminal companion (pet, reroll, off)
calculatereadEvaluate mathematical expressions
calculatorreadPerform basic arithmetic operations
cleardestructiveClear all messages
compactreadManually compact the session context
copyreadCopy last agent message to clipboard
custom-skillreadA custom skill
deletedestructiveDelete the last message
deploywriteDeploy the application
disable-model-invocationwriteA skill that cannot be invoked by the model.
dollar-zero-lookaheadreadTests that $0 negative lookahead does not match $00 or $01.
double_numberreadDoubles a number and returns the result
dreamwriteConsolidate and prune memories (backup, merge, scan sessions)
dummyreadDummy tool
duplicate-toolreadFirst
echoreadEchoes the message back
exportreadExport session (HTML default, or specify path: .html/.jsonl)
faux_imagesreadReturns faux tool-result images
feature-devreadimplementation
forkwriteCreate a new fork from a previous message
get_circlereadReturns a circle image for visualization
get_circle_with_descriptionreadReturns a circle image with a text description
get_current_timereadGet the current date and time
get_statusreadGet current status
helpreadShow help
hidden-skillreadA hidden skill.
hotkeysreadShow all keyboard shortcuts
importwriteImport and resume a session from a JSONL file
injectedreadInjected skill
linkedin_skillreadGet LinkedIn comments
loginreadLogin with OAuth provider
logoutreadLogout from OAuth provider
math_operationreadPerform basic arithmetic operations
modelreadSelect model (opens selector UI)
my-skillreadCustom project instructions
namewriteSet session display name
newwriteStart a new session
not-user-invocablewriteA skill only the agent can invoke.
pingreadPing tool
planreadMake a plan
quitreadQuit dreb
reloadreadReload keybindings, extensions, skills, prompts, and themes
resumereadResume a different session
reviewreadExtension review
review-codereadReview code
scoped-modelswriteEnable/disable models for Ctrl+P cycling
searchreadSearch the codebase using natural language queries. Returns ranked code/doc results using semantic similarity and keyword matching. First query builds the index (may take a moment); subsequent queries are fast.
sessionreadShow session info and stats
settingsreadOpen settings menu
skill-onereadFirst skill.
skill-tworeadSecond skill.
substitution-testreadA skill for testing content substitution.
testreadtest tool
test-agentreadTest agent
test-skillreadA test skill.
test_toolreadA test tool
thinking-testreadThinking override test agent
treereadNavigate session tree (switch branches)
valid-skillreadA valid skill for testing.
visible-skillreadA visible skill.
04

Trust audit

BLOCKgrade F · trust 39/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)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (7 observation(s))
Network
declared (6 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/coding-agent/src/core/secret-scrubber.ts:14
const opensshPrivateKey = /-----BEGIN OPENSSH PRIVATE KEY-----[\s\S]*?-----END OPENSSH PRIVATE KEY-----/g;
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/ai/src/utils/validation.ts:20
new Function("return true;");
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/coding-agent/src/core/export-html/vendor/highlight.min.js:133
}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
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/coding-agent/src/core/export-html/vendor/highlight.min.js:143
this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/coding-agent/src/core/sensitive-paths.ts:10
"~/.ssh/id_*",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/coding-agent/src/core/sensitive-paths.ts:11
"~/.gnupg/private-keys-v1.d/*",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/coding-agent/src/core/sensitive-paths.ts:14
"~/.aws/credentials",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/coding-agent/src/core/sensitive-paths.ts:15
"~/.config/gcloud/credentials.db",
Why it matters. touches a credential store
MEDIUMInventory / provenance · inv.binary · CWE-1104
packages/semantic-search/grammars/tree-sitter-gdscript.wasm
tree-sitter-gdscript.wasm
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
packages/ai/src/utils/oauth/openai-codex.ts:264
"[openai-codex] Failed to bind http://127.0.0.1:1455 (",
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
packages/coding-agent/src/modes/interactive/components/daxnuts.ts:12
"bbbab8b9b9b6b9b8b5bcbbb8b8b7b4b7b5b2b6b5b2b8b7b4b7b6b3b6b4b1bdbcb8bab8b6bbb8b5b8b5b1bbb8b4c2bebbc1bebac0bdbabfbcb9c1bebabfbebbc0bfbcc0bdbabbb8b5c1bfbcbfbcb8bbb9b6bfbcb8c2bfbcc1bfbcbfbbb8bdb9b6b8b7b5b
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/ai/test/github-copilot-anthropic.test.ts:57
const s = streamAnthropic(model, context, { apiKey: "tid_copilot_session_test_token" });
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/ai/test/github-copilot-anthropic.test.ts:95
apiKey: "tid_copilot_session_test_token",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/ai/test/third-party-anthropic.test.ts:119
const s = streamAnthropic(model, context, { apiKey: "sk-ant-oat-test-token" });
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/ai/test/third-party-anthropic.test.ts:145
const s = streamAnthropic(model, context, { apiKey: "sk-ant-oat-explicit-bearer" });
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/coding-agent/docs/custom-provider.md:219
apiKey: "COMPANY_ANTHROPIC_TOKEN",
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:59
const token = "ghp_ABCDEFghijklmnop1234567890abcdefghij";
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:66
const token = "ghs_ABCDEFghijklmnop1234567890abcdefghij";
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:72
const token = "gho_ABCDEFghijklmnop1234567890abcdefghij";
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:84
const token = "ghr_ABCDEFghijklmnop1234567890abcdefghij";
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:362
"GITHUB_TOKEN=ghp_ABCDEFghijklmnop1234567890abcdefghij",
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:257
const pem = `-----BEGIN RSA PRIVATE KEY-----
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:267
const pem = `-----BEGIN EC PRIVATE KEY-----
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:283
const pem = `-----BEGIN PRIVATE KEY-----
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
packages/coding-agent/test/secret-scrubbing.test.ts:311
const key = `-----BEGIN OPENSSH PRIVATE KEY-----

Gates applied: critical_finding, no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha b0f15cf84acffull audit observations/trust-audit/mcp-server/aebrer__dreb.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-12b0f15cf84acfBLOCKF39first audit
06

Questions

What is the @dreb/semantic-search MCP server?

Provider-agnostic agentic coding harness. Desktop and Mobile web app for fleet management. Semantic search and end-to-end development workflows baked in.

What tools does @dreb/semantic-search expose?

66 in total: 55 read-only, 9 that write, and 2 that can delete or overwrite (clear, delete). Every one is listed on this page with its risk.

Is @dreb/semantic-search safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (39/100) and found 8 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does @dreb/semantic-search need?

It reads AI_GATEWAY_API_KEY, ANTHROPIC_API_KEY, ANTHROPIC_OAUTH_TOKEN, AWS_ACCESS_KEY_ID, AWS_BEARER_TOKEN_BEDROCK, AWS_BEDROCK_SKIP_AUTH, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_SECRET_ACCESS_KEY, AWS_WEB_IDENTITY_TOKEN_FILE, AZURE_OPENAI_API_KEY and CEREBRAS_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @dreb/semantic-search run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @dreb/tui at 2.71.0.

How current is this page?

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

Advertisement