Atlas / MCP servers / happy520ai / unified-ai-system

unified-ai-systemBLOCK

mcp/happy520ai/unified-ai-system

Self-hosted model routing gateway and agent control plane for OpenAI, Anthropic, Gemini and A2A agents behind one OpenAI-compatible API, protocol-first. MCP server security, governed tools, prompt enhancement, virtual-key budgets, cache, observability, audit chain and agent governance. Zero-key loca

Verdict
BLOCK
Grade
F
Trust score
38 /100
Exposed tools
83 65r · 18w · 0d
Transport
stdio · streamable-http
License
Apache-2.0
Stars
8
01

Overview

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

Open-source AI gateway for deterministic prompt enhancement, governed execution, and reproducible verification.

English | zh-CN | Project Site

<img src="docs/assets/readme-hero.png" alt="Unified AI System — self-hosted AI gateway: one governed boundary for models, agents, tools, budgets and evidence, with four release gates and zero credentials to start" width="100%" />

Unified AI System turns a rough request into a structured, reviewable prompt before execution. It gives

Read from source at commit a44fb804e4bbOBSERVED · 2026-10-10
Advertisement
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 (oci)
claude mcp add mcp-server:0.8.0 --env AI_GATEWAY_MCP_AUTH_TOKEN=${AI_GATEWAY_MCP_AUTH_TOKEN} -- docker run -i --rm ghcr.io/happy520ai/unified-ai-system/mcp-server:0.8.0:None
03

Exposed tools (83)

65 read · 18 write · 0 destructive.

ToolRiskDescription
DocumentationreadPlan user docs, manuals, or API docs with structure, examples, and acceptance criteria.
LocalRunnerread在当前进程内执行任务(用于开发/测试环境)
SubProcessRunnerread在独立子进程中执行任务(用于生产环境,提供进程级隔离)
areadA
add-functionwriteAdd a new exported function to an existing module. The function must be
add-testwriteWrite comprehensive tests for an existing function or module that
agent_governance_describeread
agent_governance_listreadList only the governed Agents visible to the Gateway-authenticated tenant. The tool accepts no tenant or owner override.
agent_governance_statusreadInspect Agent Governance status through the authenticated Gateway identity. The tool accepts no tenant override and fails closed when that identity is not authorized for platform status.
alphareada
ast_editwriteAST-aware code editor that understands scope. Supports: rename_identifier (scope-safe rename avoiding strings/comments), extract_function (extract lines into a function), wrap_in_condition, wrap_in_try. Safer than string replacement for identifiers.
audit_eventsreadImmutable audit log
breadB
betareadb
creadC
code_formatreadFormat code in a file. Supports JavaScript/TypeScript with basic formatting: consistent indentation (2 spaces), trailing newline, remove trailing whitespace, normalize line endings. Does NOT require external tools like prettier.
code_runwrite在显式配置的隔离容器中执行 JavaScript。需要 code:run 权限;未配置隔离后端时拒绝执行。无网络、无项目文件挂载,不在宿主进程运行代码。
custom_attested_readreadattested read
custom_unattested_readreadunattested read
custom_undeclared_writewriteundeclared write
custom_without_permissionreadmissing permission
dreade
documented_toolreadReads one record by id. Use
explain-codereadProduce a human-readable explanation of what a piece of code does.
external_denied_resultreadTest denial signaling
external_missing_contextreadTest missing irreversible context
external_testreadTest irreversible effect
file_insertwriteInsert new content at a specific line number in a file. Useful for adding new functions, imports, or sections.
file_readreadRead a file
file_read_probereadprobe
file_writewrite写入或覆盖文件内容。需要 file:write 权限。会自动创建父目录。内容限制 50MB。
fix-bugreadFix a known bug described in a comment or failing test. The fix must
fixture_writewriteWrite only the owned fixture
gateway-responsereadFake-provider output from Unified AI System.
gateway_chatread
gateway_healthreadInspect gateway health, provider mode, and the real-provider safety flag.
gateway_prompt_enhanceread
gateway_prompt_enhance_llmread
gateway_readinesswriteInspect first-run readiness for chat and the local gateway runtime.
generate_testreadGenerate a basic test scaffold for a JavaScript/TypeScript source file. Analyzes the file for exported functions and creates a test file using node:test. The generated test imports the source and creates one test case per exported function.
get_weatherreadGet weather
git_branchwriteList, create, or switch branches. Use for branch management operations.
git_commitwriteStage files and create a commit. Always review changes with git_diff before committing.
git_create_prwriteCreate a Pull Request using the GitHub CLI (gh). Requires gh to be installed and authenticated. The current branch will be used as the head branch.
git_diffreadShow differences between working tree and index, between commits, or between branches. Use this to review changes before committing.
git_logwriteShow commit history. Returns structured commit information including hash, author, date, and message.
git_pushwritePush commits to a remote repository. This is a dangerous operation that requires explicit approval. Always verify with git_status and git_log before pushing.
git_statusreadShow the working tree status. Returns modified, staged, untracked, and branch information.
globreadFast file pattern matching tool. Returns matching file paths sorted by modification time. Supports glob patterns like
governed_budget_probereadgoverned sanitizer budget probe
governed_effect_probereadcommitted effect audit probe
governed_key_probereadgoverned key sanitizer probe
governed_output_probereadgoverned output probe
grepreadA powerful content search tool using regular expressions. Searches file contents and returns matching lines with optional context. Use this to find code patterns, function usages, imports, etc.
image_readreadRead an image file and return it as visual context. The image will be included in the response for visual analysis.
knowledge_readinessreadInspect the gateway knowledge infrastructure without loading or changing data.
knowledge_retrieveread
lookupreadLook up the fixture
lsp_definitionread查找符号定义(跳转到定义)。给定文件路径和行列位置,返回符号的定义位置。
lsp_hoverread获取符号类型信息和文档。返回 hover 信息,包括类型签名、JSDoc/docstring 等。
lsp_referencesread查找符号引用。返回符号在项目中被使用的所有位置。
lsp_symbolsread列出文件中的所有符号(函数、类、变量等)。返回文档符号的层次结构。
ops__create_ticketwriteCreate a ticket
read_filereadRead one file
recorded_searchreadtest
refactorreadRefactor existing code to use a specified pattern (e.g. replace
sreadd
semantic_searchreadSemantic code search using TF-IDF scoring over code files. Finds code chunks most relevant to a natural language query. Use for
shell_execwrite执行 shell 命令。需要 shell:exec 权限。命令会被分类标记风险等级。
stratreaddesc
testreadx
test_toolreadA test
type_checkwriteRun TypeScript type checking on a file or project. Uses
web_fetchread获取 URL 的网页内容并提取文本。需要 network:fetch 权限。
web_searchreadSearch the web for up-to-date information, documentation, API references, tutorials, and more. Returns titles, URLs, and snippets.
workflow_actionsreadList workflow action definitions without invoking any action.
workflow_executionsreadExecution records
workflow_healthreadInspect the governed workflow subsystem without starting a workflow.
workflow_runwrite
workflowsreadWorkflow definitions
workforce-analysisreadWorkforce role-based analysis from Unified AI System.
workforce_agentsreadList configured workforce agent descriptors without dispatching them.
workforce_healthreadInspect the workforce subsystem without planning or executing work.
04

Trust audit

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

LayerWhat it checksResult
L0Provenance & inventoryPASS
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 (10 observation(s))
Network
declared (16 observation(s))
Shell
declared (6 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
apps/ai-gateway-service/src/capabilities/neuronCodeGenerator.js:92
{ pattern: /eval\s*\(/, label: "禁止 eval()" },
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
apps/ai-gateway-service/src/capabilities/safetyScanner.js:16
message: "Code contains eval() which is a security risk",
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/forge-core/src/multi-agent-review/builtin-rules.js:42
name: 'eval() usage',
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/forge-core/src/multi-agent-review/builtin-rules.js:46
message: 'eval() usage is dangerous and may allow code injection.',
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/forge-core/src/multi-agent-review/builtin-rules.js:327
name: 'eval()/exec() usage',
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
apps/agent-console/src/agentTaskCommands.ts:46
".netrc", ".git-credentials", "credentials", "credentials.json", "auth.json", "evidence"]);
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
apps/agent-console/src/workforceCodeDeliveryReview.ts:7
const PROTECTED = new Set(['.git', '.gitattributes', '.gitmodules', '.gitconfig', '.forge', '.mcp.json', '.ssh', '.aws', '.azure', '.gcp', '.npmrc', '.netrc', '.git-credentials', 'credentials', 'crede
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
apps/ai-gateway-service/src/workforce/securityReviewCheckpointHelpers.js:30
/\.netrc/i,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
apps/ai-gateway-service/src/workforce/workforceCodeDeliveryProfile.ts:16
".netrc", ".git-credentials", "credentials", "credentials.json", "auth.json", "evidence"]);
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/codex-context-gateway/src/contextPackPreviewReader.js:9
const sensitivePathPattern = /(^|[/\\])(\.env|\.npmrc|\.netrc|id_rsa|id_ed25519)(\.|$|[/\\])/i;
Why it matters. touches a credential store
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/ai-gateway-service/src/capabilities/godReviewCellExecutor-helpers.js:127
if (ip === "metadata.google.internal" || ip === "metadata" || ip === "instance-data") return true;
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/ai-gateway-service/src/capabilities/tianshuPlannerConstants.js:121
if (ip === "metadata.google.internal" || ip === "metadata" || ip === "instance-data") return true;
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/ai-gateway-service/src/claude-code-patterns/sandboxTools.js:36
"metadata.google.internal", "metadata.google",
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/ai-gateway-service/src/claude-code-patterns/sandboxTools.js:37
"169.254.169.254", // AWS/GCP metadata
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
tools/check-carrier-presence.mjs:197
console.log("NOTE api.github.com leg ran " + (TOKEN ? "authenticated (job token present)" : "anonymous (60 reads/hour per IP; set GH_TOKEN)"));
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
apps/ai-gateway-service/src/workforce/roleExecutorsReviewer.js:86
{ path: "Data exfiltration via http_request step", actor: "Editor role user", scenario: "Targets internal services to exfiltrate data", mitigation: "URL allowlist; block internal IPs; egress filtering
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/forge-core/src/injection-defense/helpers.js:143
regex: /\b(send|post|transmit|forward|exfiltrate)\s+(this\s+)?(data|content|response|output|conversation)\s+(to|at)\s+(https?:\/\/|[\w.-]+\.\w{2,})/i,
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/forge-core/src/injection-defense/helpers.js:145
category: 'data-exfiltration',
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/forge-core/src/injection-defense/helpers.js:152
category: 'data-exfiltration',
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/forge-core/src/injection-defense/helpers.js:159
category: 'data-exfiltration',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.enterprise.example:11
AI_GATEWAY_SERVICE_URL=http://127.0.0.1:3100
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.enterprise.example:45
# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://127.0.0.1:4318/v1/traces
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.enterprise.example:97
AI_GATEWAY_CORS_ALLOWED_ORIGINS=http://127.0.0.1:3100,http://localhost:3100
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.example:35
AI_GATEWAY_SERVICE_URL=http://127.0.0.1:3100
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
.env.example:176
# AI_GATEWAY_LOCAL_CLIENT_LOOPBACK_ENDPOINT=http://127.0.0.1:43120

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha a44fb804e4bbfull audit observations/trust-audit/mcp-server/happy520ai__unified-ai-system.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-10a44fb804e4bbBLOCKF38first audit
06

Questions

What is the unified-ai-system MCP server?

Self-hosted model routing gateway and agent control plane for OpenAI, Anthropic, Gemini and A2A agents behind one OpenAI-compatible API, protocol-first. MCP server security, governed tools, prompt enhancement, virtual-key budgets, cache, observability, audit chain and agent governance. Zero-key loca

What tools does unified-ai-system expose?

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

Is unified-ai-system safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (38/100) and found 14 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 unified-ai-system need?

It reads AI_GATEWAY_MCP_AUTH_TOKEN, ANTHROPIC_API_KEY, API_KEY, AUTH_TOKEN_SECRET, BAI_API_KEY, BRAVE_SEARCH_API_KEY, ENCRYPTION_MASTER_KEY, FORGE_CONTAINER_SECRET_CANARY, FORGE_MAX_TOKENS, FORGE_SANDBOX_SECRET_CANARY, GEMINI_API_KEY and GH_TOKEN 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 unified-ai-system run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @unified-ai-system/workforce-scheduler at 0.1.0.

How current is this page?

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

Advertisement