Atlas / MCP servers / cgoinglove / Better Chatbot

Better ChatbotBLOCK

mcp/cgoinglove/better-chatbot

Formerly Better Chatbot. Navigator is an open-source AI workspace for agents, MCP and workflow automation.

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
19 19r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
1,182
01

Overview

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

Keinsaas Navigator - A better open-source AI chatbot for individuals and teams.

Originally created by Choi Sung Keun.

[](https://modelcontextprotocol.io/introduction) [](https://localfirstweb.dev/) [](https://discord.gg/gCRu69Upnp)

[](<https://vercel.com/new/clone?repository-url=https://github.com/cgoinglove/better-chatbot&env=BETTERAUTHSECRET&env=OPENAIAPIKEY&env=GOOGLEGENERATIVEAIAPIKEY&env=ANTHROPICAPIKEY&envDescription=BETTERAUTHSECRET+is+required+(enter+any+secret+value).+At+least+one+LLM+provider+API+key+(OpenAI,+Claude,+or+Google)+is+required,+but+you+can+add+all+of+them.+See+the+link+below+for+details.&envLink=https://github.com/cgoinglove/better-chatbot/blob/main/.env.example&demo-title=better-chatbot&demo-description=An+Open-Source+Chatbot+Template+Built+With+Next.js+and+the+AI+SDK+by+Vercel.&products=[{"type":"integration","protocol":"storage","productSlug":"neon","integrationSlug":"neon"},{"type":"integration","protocol":"storage","productSlug":"upstash-kv","integrationSlug":"upstash"},{"type":"blob"}]>)

🚀 [Live Demo](https://app.keinsaas.com/) | See the experience in action in the preview below!

Demo Chats

Quick Start 🚀

**Get your app running in minutes! No installation or payment requir
Read from source at commit 305302d89aafOBSERVED · 2026-09-25
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 better-chatbot --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} --env BETTER_AUTH_URL=${BETTER_AUTH_URL} --env BLOB_READ_WRITE_TOKEN=${BLOB_READ_WRITE_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "better-chatbot": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "BETTER_AUTH_SECRET": "${BETTER_AUTH_SECRET}",
        "BETTER_AUTH_URL": "${BETTER_AUTH_URL}",
        "BLOB_READ_WRITE_TOKEN": "${BLOB_READ_WRITE_TOKEN}"
      }
    }
  }
}
03

Exposed tools (19)

19 read · 0 write · 0 destructive.

ToolRiskDescription
ADDITIONAL_SEARCHreadPerform supplementary search based on specific instruction
ANALYSISreadAnalyze search results and determine research strategy
CONTENT_EXTRACTIONreadExtract detailed content from important URL
INITIAL_SEARCHreadPerform initial web search based on user query and parameters
INPUTread
LLMreadGet latitude and longitude from the LLM
NOTEread# 🌦️ Regional Weather Lookup Workflow This workflow retrieves weather information for a specified region by chaining together an LLM for geocoding and an HTTP request to a public weather API. ### ➡️ Execution Pipeline 1. **Input Region**: A user provides a region name (e.g.,
ORGANIZATIONreadOrganize and summarize all collected information for report generation
OUTPUTread
REPORT_GUIDEread
SEARCH_CONDITIONread
SUMMARYreadSynthesize all information into comprehensive research report
URL_CONDITIONread
cached-toolreadA cached tool
changeBrowserThemereadChange the browser theme
endConversationreadEnd the current voice conversation, similar to hanging up a call. This tool should be invoked when the user clearly expresses a desire to finish, exit, or end the dialogue.
get_weatherreadGet the current weather at a location.
new-toolreadNew tool
test-toolreadA test tool
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 & inventoryWARN
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 (5 observation(s))
Network
declared (5 observation(s))
Shell
declared (2 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (14)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/lib/code-runner/safe-js-run.ts:216
const func = new Function(...Object.keys(safeGlobals), wrappedCode);
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
src/lib/code-runner/safe-js-run.ts:289
• Forbidden operations: Avoid DOM access, eval(), or global object manipulation
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMInventory / provenance · inv.binary · CWE-1104
public/sounds/start_voice.ogg
start_voice.ogg
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/components/workflow/workflow-list-page.tsx:192
👨🏻🔬 {t("Workflow.example.babyResearch")}
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
.github/workflows/e2e-tests.yml:16
POSTGRES_URL: postgresql://testuser:testpass@localhost:5432/better_chatbot_test
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/lib/code-runner/safe-js-run.test.ts:105
const result = await safeJsRun({ code: "new Function('return 1')();" });
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/app/api/agent/ai/route.ts:12
import { loadAppDefaultTools } from "../../chat/shared.chat";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/components/workflow/node-config/input-node-config.tsx:12
} from "../../edit-json-schema-field-popup";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/components/workflow/node-config/llm-node-config.tsx:3
import { SelectModel } from "../../select-model";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/i18n/request.ts:12
defaultMessages = (await import(`../../messages/en.json`)).default;
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/i18n/request.ts:15
const messages = await safe(() => import(`../../messages/${locale}.json`))
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/storage/s3-setup.md:13
- `http://localhost:3000`, `http://127.0.0.1:3000`
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@ai-sdk/anthropic, @ai-sdk/google, @ai-sdk/groq, @ai-sdk/openai, @ai-sdk/openai-compatible, @ai-sdk/react, @ai-sdk/xai, @aws-sdk/client-s3
Why it matters. 102 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
CHANGELOG.md:231
- add POST endpoint for MCP client saving with session validation ([fa005aa](https://github.com/cgoinglove/better-chatbot/commit/fa005aaecbf1f8d9279f5b4ce5ba85343e18202b)) by @cgoinglove by @cgoinglov
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine

Gates applied: no_behavioural_pass.

Audited 2026-09-25 · audit v0.4.1 · source sha 305302d89aaffull audit observations/trust-audit/mcp-server/cgoinglove__better-chatbot.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-09-25305302d89aafBLOCKD69first audit
06

Questions

What is the Better Chatbot MCP server?

Formerly Better Chatbot. Navigator is an open-source AI workspace for agents, MCP and workflow automation.

What tools does Better Chatbot expose?

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

Is Better Chatbot safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 2 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 Better Chatbot need?

It reads ANTHROPIC_API_KEY, BETTER_AUTH_SECRET, BETTER_AUTH_URL, BLOB_READ_WRITE_TOKEN, EXA_API_KEY, GITHUB_CLIENT_SECRET, GOOGLE_CLIENT_SECRET, GOOGLE_GENERATIVE_AI_API_KEY, GROQ_API_KEY, MICROSOFT_CLIENT_SECRET, NEXT_PUBLIC_PASSWORD_REGEX_PATTERN and NEXT_PUBLIC_PASSWORD_REQUIREMENTS_TEXT 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 Better Chatbot run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as better-chatbot at 1.26.0.

How current is this page?

The grade is for one exact copy of the source (305302d89aaf), read on 2026-09-25. The repository is watched and re-audited when it changes.

Advertisement