HallucC — Hallucination & Safety Guardian

io.github.fredyee由 GitHub 账号 fredyee 发布v0.1.11更新于 Nov 5, 2026

Fact-check LLM outputs with cited sources. API key: aihcc.cloud/keys.

已验证Streamable HTTP可网页运行安全与监控AI 与机器学习

概览

AI 生成的概览

HallucC 用于核验 AI 输出的幻觉与安全风险:逐声明事实核查并附来源、Agent 轨迹评估、动作风险分级。

可以做什么
  • 逐声明核验文本,返回 supported/refuted/unverified 判定及置信度、理由与来源引用
  • 评估 Agent 最终回答,并从六个维度审查其执行轨迹
  • 将 Computer-Use Agent 动作分为 L0-L3 风险等级,凭据与支付场景给出 takeover,可选任务范围与委派链检查
  • 对 Agent 源码做静态审计,检查危险导入、权限边界、注入面与沙箱缺失
  • 检测 prompt 与输出中的注入、越狱、有害内容、敏感信息泄露与欺诈,可选纯规则快速模式
  • 逐步守护 Agent 并累积会话风险,超阈值时冻结会话,也可手动解冻
适用场景
适合让助手对自己或其他模型的输出做带引用的事实核查,或用于会浏览、点击、输入的 Agent,在每步执行前获取风险裁决。也适合审计 Agent 代码、在上线前筛查提示注入。
运行要求
远程 streamable HTTP 端点 aihcc.cloud/mcp,或通过 npx 包以 stdio 运行并将密钥放入环境变量。需要 HallucC 账号与 API key,以 Authorization bearer 头传递。需能访问托管后端。
安装前请注意
API key 是绑定账号额度的凭据,应放在请求头或环境变量中,不要写入工具参数。多数工具消耗共享的每日 detect 额度,额度用尽会返回错误。风险裁决仅为参考,不会真正拦截动作,执行控制仍由客户端负责。提交的文本与代码会发送到托管后端。

安装

在 SourceWeft 中

  1. 打开 控制台中的 HallucC — Hallucination & Safety Guardian,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.fredyee%2Fhallucc/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "hallucc-hallucination-safety-guardian": {
      "type": "http",
      "url": "https://aihcc.cloud/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

HallucC MCP Server

中文文档 | Live Demo | Official MCP Registry

[MCP Registry] [npm] [License: MIT] [smithery badge]

Give your AI a fact-checker and a safety gateway: claim-by-claim hallucination detection, agent trajectory evaluation, L0-L3 risk gating for Computer-Use Agent (CUA) actions, Agent source code static audit, and a 40+ feature prompt-injection / jailbreak guard — one MCP server, five tools, works with Claude Code / Cursor / Claude Desktop.

See it first — no sign-up required

Tools (5)

ToolBackend endpointWhat it doesQuota
verify_textPOST /detectClaim-by-claim hallucination check: red/yellow/green summary + per-claim status/confidence/reason/sources + citations✅ detect
verify_agentPOST /detect-agentText-level verification of an agent's final output + 6-dimension trajectory evaluation (factuality / sourcing / instruction compliance / tool-claim consistency / task completion / reflection)✅ detect
check_cua_actionsPOST /cua/classifyL0-L3 risk classification for Computer-Use Agent (CUA) actions + takeover (credential scenarios); covers sensitive paths/destructive commands, domain grading, payment-amount thresholds, task_scope intent deviation, and multi-agent delegation-chain taint analysis; response includes ruleset_version and disclaimer (pure rules, no LLM)❌ free
check_cua_code_auditPOST /cua/audit-codeStatic audit of Agent source code: dangerous imports / permission boundaries / injection surfaces / dangerous defaults / sandbox absence❌ free
check_safetyPOST /guard/check (fast=true → /guard/check-fast)40+ feature safety gateway: prompt injection / jailbreak / harmful content / PII leakage / fraud✅ detect
check_agent_ice_wallPOST /icewall/checkAgent Ice Wall (child lock / fuse): per-step guard + session-level risk accumulation circuit breaker. Watch the action field: frozen = stop the whole session (score ≥10, 3 consecutive blocks, or zero-tolerance fabricated-tool/schema hits); 5-min cooldown auto-thaws✅ detect
reset_agent_ice_wallPOST /icewall/resetManually thaw a frozen agent session after user confirmation (was_frozen=false = idempotent no-op)❌ free

Auth model: each client sends Authorization: Bearer <your HallucC API key> → the server forwards it as-is to the backend → the backend validates and deducts from the same account quota as the web app. Keys travel only in HTTP headers — never in tool arguments, never in model transcripts.

The tightening capabilities of check_cua_actions

FieldEffect
actions[].target_url / urlTarget URL of a browser action — navigation to an unknown domain escalates to L2; pasting sensitive content to a non-allowlisted domain escalates to L3; blacklisted domains are L3
task_scope.taskDeclares the intended task, used for deviation detection and audit traceability
task_scope.allowed_apps / allowed_domainsAllowed apps / domains (domain suffix matching includes subdomains)
task_scope.forbidden_elementsForbidden element labels (highest precedence)
actions[].chain_idMulti-agent delegation chain id (uuid hex) — when given, the response gains a chain_trace cross-hop taint analysis
actions[].agent_id / parent_agent_idThe agent owning this action / its delegating parent — pairs cross-agent-boundary propagation chains
actions[].delegation_depthDelegation depth (root agent = 0); a subagent exfiltrating content matching sensitive patterns gets an L2

An action that leaves task_scope is escalated one level (L0→L1, L1→L2, L2 stays L2 with an "outside task scope" reason appended, L3 unchanged). This mechanism only tightens and never loosens; omitting task_scope has no effect. Credential fields and payment/login domains yield a takeover verdict (suspend and wait for the user to type it themselves — the agent never types your password).

Multi-agent setups (Claude Code Task subagents, Codex agents, Kimi, …): a parent agent reading a credential file (L0 on its own) → a subagent posting it out (L2 on its own) is harmless per hop and dangerous as a chain. Attach the delegation-chain fields to each action and the backend appends a chain_trace: when cross-agent propagation exists the chain aggregate level is raised to L3 and risk_diluted is set (the laundering signal). Leave the chain fields empty and behaviour is bit-for-bit unchanged — existing callers need no change.

The response's ruleset_version lets you verify that online detection and the local Gate run the same rule version.

Hosted endpoint (recommended, zero local setup)

The MCP server is hosted at https://aihcc.cloud/mcp (remote, streamable-http). Point your client at it with your API key:

bash
# Claude Codeclaude mcp add --transport http hallucc https://aihcc.cloud/mcp \  --header "Authorization: Bearer <your HallucC API key>"

Cursor / Claude Desktop work the same way: URL https://aihcc.cloud/mcp, header Authorization: Bearer <key>. Create your API key at https://aihcc.cloud (register → /keys). Free daily quota included.

Or: run via npx (stdio, no clone needed)

json
{  "mcpServers": {    "hallucc": {      "command": "npx",      "args": ["-y", "hallucc-mcp"],      "env": { "HALLUCC_API_KEY": "<your HallucC API key>" }    }  }}

Same five tools over stdio transport; the key comes from the environment and requests default to the hosted backend https://aihcc.cloud/api.

The base URL must keep the /api prefix: nginx only proxies /api/ to the backend. A bare https://aihcc.cloud reaches the frontend instead — the request returns 200 with an HTML body, fails silently (nothing lands in audit or in a fallback file), and the audit replay stays empty.

Run locally (from source)

bash
# 1. Install dependenciesnpm install
# 2. (Optional) configure backend address & port; defaults to local :8001cp .env.example .env#   HALLUCC_BASE_URL=http://127.0.0.1:8001#   PORT=8787
# 3. Make sure the backend is up: curl http://127.0.0.1:8001/health# 4. Start the MCP server (dev with hot reload)npm run dev# or production: npm start

The server listens on http://127.0.0.1:8787/mcp; health check GET /health.

Client setup

Claude Code (CLI)

bash
claude mcp add --transport http hallucc http://127.0.0.1:8787/mcp \  --header "Authorization: Bearer <your HallucC API key>"
claude mcp list# then in conversation: ask Claude to fact-check a passage or scan a prompt for injection

Cursor

Settings → MCP → Add MCP server:

  • Type: http
  • URL: http://127.0.0.1:8787/mcp
  • Headers: {"Authorization": "Bearer <your HallucC API key>"}

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "hallucc": {      "type": "http",      "url": "http://127.0.0.1:8787/mcp",      "headers": { "Authorization": "Bearer <your HallucC API key>" }    }  }}

MCP Inspector (debug — tool list & auth work without spending quota)

bash
npx @modelcontextprotocol/inspector# choose Streamable HTTP, URL http://localhost:8787/mcp# add Custom Header: Authorization: Bearer <key>

Auth & quota

  • Auth is two-tier at the MCP layer. tools/call (and any non-discovery method) requires a format-valid key — hc_ + 48 hex — else 401 JSON-RPC, before the backend is contacted. The format check is a local regex, no backend round-trip.
  • Discovery methods (initialize, tools/list, ping, notifications/initialized) stay open unauthenticated so registries and directory sites can index the server: they make no backend call and expose no user data. Set MCP_ALLOW_ANON_DISCOVERY=0 to gate those too.
  • Actual key validity (existence, revocation, expiry) is always decided by the backend's verify_api_key; the MCP-layer check only rejects tokens that can't possibly be real keys.
  • Valid key but quota exhausted → backend 429, mapped to "free quota exhausted, resets tomorrow or upgrade".
  • Every tool response includes a quota object (backend quota_status), same source as the web dashboard, decremented per call.
  • check_cua_actions and check_cua_code_audit are both pure rules — no LLM, no quota cost, safe for high-frequency use.

Project layout

src/  server.ts     Express + StreamableHTTP transport (stateless) + auth middleware + tool registration  context.ts    config loading + API key extraction  backend.ts    BackendClient (key pass-through, unified 401/429/5xx mapping) + toMcpResult  schemas.ts    zod input schemas for the 5 tools (aligned with backend Pydantic Fields)  tools/    verifyText.ts       → /detect    verifyAgent.ts      → /detect-agent    checkCuaActions.ts    → /cua/classify    checkCuaCodeAudit.ts  → /cua/audit-code    checkSafety.ts        → /guard/check (fast → /guard/check-fast)    index.ts            registerAllTools

Transport

Streamable HTTP (the remote transport recommended by the current MCP spec, formerly "HTTP+SSE"), stateless mode: each POST spins up a fresh transport + McpServer and closes when done. Natively supported by Claude Code / Cursor / Claude Desktop. To support legacy SSE-only clients, add SSEServerTransport (dual endpoints /sse + /messages).

Listed on

License

MIT

来源:README.md,提交 4a026de

工具

7

verify_text

Verify Text

逐声明幻觉核验。输入文本 → 提取声明 → 逐声明验证(supported/refuted/unverified)+ 来源引用。返回红/黄/绿汇总、每条声明的状态/置信度/理由/来源、citations、quota。耗 detect 额度(与 Web 端同源)。

输入参数text必填modelspeeddomainstrict

verify_agent

Verify Agent

Agent 输出与轨迹自检。对最终回答跑逐声明幻觉核验,并对执行轨迹做六维结构化评估(事实性/来源/指令合规/工具声明一致/任务完成/反思)。返回 main.claims、steps[].checks、quota。耗 detect 额度。

输入参数taskspeedstepsdomainagent_output必填tool_schemas

check_cua_actions

Classify CUA Actions

Computer-Use Agent 动作风险分级。提交动作轨迹 → 逐步返回 L0(放行)/L1(放行+记录)/L2(需确认)/L3(阻断)/takeover(凭据场景挂起等用户亲手输入) 裁决、matched_rules、outcome,及 L0-L3 汇总计数;响应含 ruleset_version(规则库版本)与 disclaimer(本结果仅为分级参考,未执行实际拦截)。覆盖:敏感路径/破坏性命令/不可逆元素语义、域名分级(未知域导航 L2、黑名单域与敏感粘贴到未知域 L3、支付金额超阈值 L3)、凭据词表与支付/登录域 takeover、task_scope 任务意图偏离(越界升一级,只能收窄)、多智能体委托链字段(每条动作可选 chain_id/agent_id/parent_agent_id/delegation_depth,给了则服务端追加链级跨跳污点分析:跨 agent 传播时聚合级别抬到 L3 并置 risk_diluted,返回在 chain_trace 字段;未给则零影响)。纯规则判定,不调 LLM、不耗额度。用于在 agent 执行前/后做安全自检。

输入参数actions必填session_idtask_scope

check_cua_code_audit

Audit CUA Code

CUA 代码审计:静态分析 Agent 源码,检测危险导入(subprocess/os.system 等)、权限边界(eval/exec)、注入面(字符串拼接 shell)、危险默认值、沙箱缺失。纯规则扫描,不调 LLM、不耗额度。支持单文件或多文件扫描。

输入参数codefilesfilenamelanguage

check_safety

Check Safety

AI 安全网关检测。对 prompt + output 跑 OWASP LLM Top 10 三层检测:40+ 特征规则引擎(注入/越狱/有害内容/敏感信息泄露/欺诈)+ 可选 LLM 深度分析 + 可选幻觉检测。返回 passed、risk_score、risk_level、threats[](category/severity/match_context/recommendation)、quota。fast=true 走纯规则 <10ms 模式。耗 detect 额度(fast 亦计入)。

输入参数fastoutput必填promptcheck_hallucination

check_agent_ice_wall

Agent Ice Wall (Session Fuse)

智能体冰墙(童锁/保险丝):agent 每执行一步前调用一次,做单步幻觉护栏 + 会话级风险累积熔断。响应的 action 字段是唯一需要看的:allow/warn 放行、block 本步拦截、frozen=整场立即停机(风险累积超阈值或命中捏造工具等零容忍项,冻结期间任何动作都不应执行)。熔断条件:block=3分/warn=1分累积 ≥10、连续 3 次 block、或一次命中捏造工具/参数 Schema 违规;冷却 5 分钟自动解冻,或用户手动 reset。session_id 由你在整个 agent 任务内自定复用(状态在云端账号下,本地零安装零存储)。传入 tool_schemas 工具注册表可启用捏造工具/参数校验(强烈建议)。耗额度。与 check_cua_actions(CUA 桌面动作分级)正交:本工具管 LLM agent 的幻觉失控。

输入参数step必填tasksession_id必填prior_stepstool_schemas

reset_agent_ice_wall

Reset Agent Ice Wall

手动解冻被冰墙冻结的 agent 会话(用户确认安全后调用)。was_frozen=false 表示该会话本就没冻结(幂等)。解冻后风险分归零。

输入参数session_id必填

版本历史

8
  1. v0.1.11最新Nov 5, 2026
  2. v0.1.10Oct 15, 2026
  3. v0.1.9Oct 14, 2026
  4. v0.1.8Sep 30, 2026
  5. v0.1.5Sep 23, 2026
  6. v0.1.4Sep 23, 2026
  7. v0.1.2Sep 21, 2026
  8. v0.1.1Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分