Atlas / MCP servers / one-mipham / ✦ Mipham Code

✦ Mipham CodeBLOCK

mcp/one-mipham/mipham-code
Verdict
BLOCK
Grade
F
Trust score
16 /100
Exposed tools
89 73r · 14w · 2d
Transport
—
License
Apache-2.0
Stars
0
01

Overview

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

Multi-model open-core intelligent coding terminal MiphamAI | One Mipham Corporation | mipham.ai

Mipham Code is an open-core, multi-model intelligent coding terminal built with Bun + React/Ink for CLI and Next.js for web. It supports Anthropic Claude, OpenAI GPT, DeepSeek, Qwen, and MiphamAI models through a unified interface with SSE streaming, tool execution, and an extensible skills system.

Features

  • Multi-Model: Connect to Claude, GPT, DeepSeek, Qwen, and MiphamAI models
  • Open-Core: Apache 2.0 licensed — free and open-source
  • 31 Built-in Tools: File ops, shell commands, git, web search, MCP protocol, agents
  • Skills System: 28 built-in skills (22 standard + 6 Mipham exclusive) + marketplace
  • Streaming: Real-time SSE streaming with tool use support
  • Fast: Built on Bun runtime, sub-millisecond tool execution

Quick Start

Prerequisites

  • Bun 1.2+ (recommended) or Node.js 22+
  • macOS, Linux, or WSL2

Install

⚠️ 从 0.85.0 及更早版本升级:请先别用 `mipham update` 0.84.0 及更早版本给安装步骤挂了 10 分钟超时,而这个包有 84 MB / 6,601 个文件 —— 慢网络(国内直连 npm 常常超过 10 分钟)下,计时器会在安装中途杀掉 npm,留下 「旧版本已删、新版本没写完」:机器上连一个 `mipham` 都没有,连你用来重试的 mipham update 也一起没了。/upgrade 同理。 请改用下面方式一或方式二升级 —— 由 npm 直接在你的终端里执行,不设超时,装得再慢也不会被砍。 升到 0.85.1 后 mipham update 可以正常使用:不再带超时;装前快照、装后实跑 launcher 自证、 失败自动回滚;安装窗口内按 Ctrl-C 也不会再打断安装(该窗口内 Ctrl-C 会被忽略,要中断请另开 一个终端杀进程)。

方式一:官方一键安装脚本(推荐)

curl -fsSL https://mipham.ai/install.sh | bash

方式二:npm 全局安装

npm install -g @miphamai/cli

方式三:Homebrew(仅 macOS)

brew install mipham
注意:Homebrew formula 正在审核中。目前建议使用方式一或方式二安装。 公式文件:infrastructure/brew/mipham.rb

验证安装

mipham --version
# → @miphamai/cli v0.85.22

Run

export ANTHROPIC_API_KEY="sk-ant-..."   # 至少配一家 provide
Read from source at commit a669331248caOBSERVED · 2026-10-12
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
claude mcp add shared --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env ANTHROPIC_KEY=${ANTHROPIC_KEY} --env BRAVE_API_KEY=${BRAVE_API_KEY} --env DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} -- npx -y @mipham/[email protected]
claude-desktop
{
  "mcpServers": {
    "shared": {
      "command": "npx",
      "args": [
        "-y",
        "@mipham/[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "ANTHROPIC_KEY": "${ANTHROPIC_KEY}",
        "BRAVE_API_KEY": "${BRAVE_API_KEY}",
        "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}"
      }
    }
  }
}
03

Exposed tools (89)

73 read · 14 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
AgentreadLaunch a sub-agent to handle complex, multi-step tasks independently.
ArtifactwriteCreate an interactive HTML or SVG artifact that opens in the browser. Use for dashboards, visualizations, reports, and interactive demos. Content must be self-contained — no external CDN references.
BashwriteExecute a bash command. Returns stdout and stderr. Timeout: 120s. Use with caution.
ComputerUsereadTake screenshots, launch apps, or control a browser. Always requires user approval.
ConfigwriteRead or update Mipham Code configuration.
CronCreatewriteSchedule a prompt to be enqueued at a future time. Uses standard 5-field cron in local timezone.
CronDeletereadCancel a cron job previously scheduled with CronCreate. Removes from ~/.mipham/cron/.
CronListreadList all cron jobs scheduled via CronCreate, both durable and session-only.
CustomPluginToolreadplugin
CustomToolreada plugin tool
DebugreadDebug tool
EditwritePerform exact string replacement in a file.
EnterPlanModereadEnter plan mode — a read-only mode for analysis and design.
EnterWorktreewriteCreate an isolated git worktree for parallel development.
ExitPlanModereadExit plan mode and present your plan for user approval.
ExitWorktreedestructiveRemove a git worktree created by EnterWorktree.
GitdestructiveExecute git commands. Dangerous operations (force push, hard reset) are blocked.
GlobreadFind files matching a glob pattern.
GrepreadSearch file contents using ripgrep (rg) — the recommended code search tool.
ListAgentsreadDiscover active Mipham Code sessions running on this machine.
MCPreadInteract with MCP (Model Context Protocol) servers. Call tools on connected MCP servers via JSON-RPC 2.0 over stdio.
MemorywriteRead, write, list, and search persistent memory files in ~/.mipham/memory/.
PlanreadEnter plan mode — read-only analysis and design. Creates a structured plan file in .mipham/plans/.
ProbeToolreadcounts its own invocations
ReadreadRead a file from the local filesystem. Supports offset and limit for large files.
ReportFindingsreadReport code-review findings as a typed list.
SendMessagewriteSend a message to another agent or session.
SkillwriteExecute a skill (.SKILL.md or .mipham-skill.md) by name. Skills extend AI capabilities with specialized instructions.
TaskwriteCreate and manage structured task lists for tracking progress.
ToolSearchreadSearch available MCP server tools by name or description.
WebFetchreadFetches a URL, converts the page to markdown. HTTP is upgraded to HTTPS. Cross-host redirects are returned to the caller. Responses are cached for 15 minutes per URL.
WebSearchreadSearch the web via Brave Search API. Returns result blocks with titles, URLs, and descriptions. Set BRAVE_API_KEY to enable.
WorkflowwriteExecute a workflow script that orchestrates multiple subagents deterministically.
WritewriteWrite a file to the local filesystem. Overwrites if one exists. You must have Read the file before overwriting it — this prevents accidental data loss.
areadA
addwriteAdd two numbers
alphareadFirst skill
anchor-testreadtest
approach-areadMVP-first
approach-breadrisk-first
auditreadSecurity audit: fan-out per file → verify → report
breadB
betareadSecond skill
brokenreadtest
clickreadClicks an element
codebase-designreadDesign codebase architecture
compactyread
customreadcustom agent
custom-rewardreadtest
custom-toolreadA tool
db-explorerreadDatabase exploration — SQL generation, schema analysis, query optimization
debug-loopreadDebug failures
demoreada demo workflow
do-thingreadDoes a thing
echoreadEcho
eli5readExplain like 5
ext-skillreadExternal skill
grill-meread
healthyreadtest
huntreadBug hunt: loopUntilConvergence + adversarial verify
i18nreadInternationalization helper — translation, locale detection, i18n key management
judgereadJudge panel: N competing approaches × M judges → winner + synthesis
mcp__test-srv__echoreadexisting
mechanism-sentinelread冻结契约评当前仓库机制代码(无 LLM)
migratereadCode migration: discover → fan-out transform → verify → integrate
my-skillreadMy custom skill
no-descreadDoes a thing
noisyready
notebooklmreadGoogle NotebookLM integration — citation-backed Q&A, content generation, 31 tools
noversionreadNo version
omreadM
om-externalreadExternal mipham skill
om-testreadMipham exclusive skill
plugin-devreadPlugin development toolkit — scaffolding, testing, and build utilities
probereadTool: probe
readreadRead a file
readerreadread only
researchreadDeep research: scope → parallel search → verify → synthesize
reviewreadCode review: fan-out per dimension → judge panel → report
scoutreadreading files
search_graphread
security-reviewreadSecurity audit skill — vulnerability scanning
security-scannerreadEnhanced security scanning — dependency audit, SAST, secret detection
stdreadS
task-performancereadLLM 生成 + 冻结测试评 skill/通用任务
test-agentread
test-skillreadA test skill
testerread
writewriteWrite file
04

Trust audit

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

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

What the source does

Filesystem
declared (14 observation(s))
Network
declared (15 observation(s))
Shell
declared (9 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALHard-coded secrets · secret.anthropic · CWE-798, CWE-321
apps/cli/src/core/behavior-tasks.json:81
"content": "sk-ant-api03-abcdefghijklmnopqrstuvwxyz123456",
HIGHInventory / provenance · inv.suspicious_name · CWE-1104
apps/cli/src/telemetry/payload.ts
payload.ts
Why it matters. member named after an attack tool
Fix. remove or justify
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
apps/cli/src/core/git-pr.ts:47
exec(cmd, { timeout: 3000 }, (err, stdout) => {
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/cli/src/mcp/oauth.ts:126
exec(cmd, () => {
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/cli/src/workflow/sandbox.ts:73
throw new Error('eval() is disabled in workflow sandbox.')
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/cli/src/workflow/sandbox.ts:76
throw new Error('new Function() is disabled in workflow sandbox.')
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/cli/src/config/defaults.ts:62
{ path: '**/.aws/credentials', mode: 'full' },
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
apps/cli/src/config/defaults.ts:63
{ path: '**/.aws/config', mode: 'full' },
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
apps/cli/src/config/defaults.ts:64
{ path: '**/.ssh/id_*', mode: 'full' },
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
apps/cli/src/config/defaults.ts:67
{ path: '**/.netrc', mode: 'full' },
Why it matters. touches a credential store
HIGHNetwork egress · net.env_exfil · CWE-200, CWE-319
apps/cli/src/skills/bundled-skills.ts:36
~/.ssh ... WebSocket
Why it matters. reads secrets in the same file that sends data out
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
apps/cli/skills/standard/web-access/scripts/cdp-proxy.mjs:67
if (host === '169.254.169.254' || host === 'metadata.google.internal') {
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
HIGHHard-coded secrets · secret.db_uri · CWE-798, CWE-321
apps/cli/src/core/credential-masker/output-scrub.ts:23
// illegal per URL syntax, yet `postgres://user:p@ss@host` is exactly how people
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
apps/cli/skills/mipham/om-security.mipham-skill.md:24
| Multi-turn jailbreak   | Gradual erosion across conversation turns | MEDIUM |
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
HIGHPrompt injection · prompt.override · CWE-94, CWE-1427
docs/superpowers/plans/2026-08-07-phase-8-security-hardening.md:216
regex: /ignore\s+(all\s+)?(previous|prior|above)\s+(instructions?|prompts?)/i,
Why it matters. asks the agent to drop prior instructions or safety
Fix. remove the instruction
MEDIUMInventory / provenance · inv.binary · CWE-1104
infrastructure/jetbrains/gradle/wrapper/gradle-wrapper.jar
gradle-wrapper.jar
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
apps/cli/bin/mipham.ts:1083
console.log(`Token rotated successfully.`)
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
apps/cli/bin/mipham.ts:1084
console.log(`  Old token: ${oldTokens[0]?.slice(0, 16) ?? 'none'}...`)
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
apps/cli/bin/mipham.ts:1085
console.log(`  New token: ${newToken.slice(0, 16)}...`)
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
apps/cli/bin/mipham.ts:1086
console.log(`  Full token: ${newToken}`)
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
apps/cli/bin/mipham.ts:1092
console.log(`  ⚠️  A running daemon still ACCEPTS the old token until it restarts.`)
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
apps/cli/src/core/permission-classifier.ts:209
name: 'Data Exfiltration',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
apps/cli/bin/mipham.ts:399
console.log(`  URL:    http://127.0.0.1:${status.port}`)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
apps/cli/bin/mipham.ts:499
const resp = await fetch(`http://127.0.0.1:${port}/api/v1/sessions`)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
apps/cli/bin/mipham.ts:595
const baseUrl = `http://127.0.0.1:${port}`

Gates applied: critical_finding, instruction_override, no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha a669331248cafull audit observations/trust-audit/mcp-server/one-mipham__mipham-code.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-12a669331248caBLOCKF16first audit
06

Questions

What tools does @miphamai/cli expose?

89 in total: 73 read-only, 14 that write, and 2 that can delete or overwrite (ExitWorktree, Git). Every one is listed on this page with its risk.

Is @miphamai/cli safe to connect to an agent?

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

It reads ANTHROPIC_API_KEY, ANTHROPIC_KEY, BRAVE_API_KEY, DEEPSEEK_API_KEY, DINGTALK_CLIENT_SECRET, EMPTY_KEY, FEISHU_APP_SECRET, FEISHU_ENCRYPT_KEY, FEISHU_VERIFICATION_TOKEN, MIPHAM_HOOK_PROBE_API_KEY, MISSING_KEY and OPENAI_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 current is this page?

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

Advertisement