AI agent이 스크린샷을 캡처하고 화면 세션을 녹화하며, 구조화된 시각적 피드백 보고서를 받을 수 있도록 지원합니다.
다른 이름 hashfunction/MarkuprPlus
- 스타
- 85
- Tools
- 9
- 다운로드, 30일
- —
- 최신 버전
- 3.1.2
- 마지막 커밋
- 2026년 11월 1일
- 라이선스
- MIT
MarkuprPlus MCP란?
MarkuprPlus은(는) MCP server입니다. AI agent이 스크린샷을 캡처하고 화면 세션을 녹화하며, 구조화된 시각적 피드백 보고서를 받을 수 있도록 지원합니다. 9개 도구를 제공합니다. 예: capture_screenshot, capture_with_voice, describe_screen.
프로젝트 README에서 생성된 요약
MarkuprPlus MCP server 정보
MarkuprPlus는 특화된 MCP server를 통해 AI 코딩 agent에 시각적 컨텍스트를 제공합니다. 개발자는 AI client를 이 server에 연결하여 agent가 스크린샷을 캡처하고, 화면 세션을 녹화하며, 구조화된 시각적 피드백 보고서를 받도록 설정할 수 있습니다. 이 구성은 사람이 화면에서 보는 것과 AI agent가 처리할 수 있는 것 사이의 간극을 메워주며, 음성 내레이션과 직접 그린 주석을 실행 가능한 데이터로 변환합니다.
이 시스템은 사용자의 음성을 들으면서 특정 창을 녹화한 다음, 기기 내 Whisper transcription을 사용하여 음성과 시각적 표시를 정렬하는 방식으로 작동합니다. Windows 또는 macOS에서 데스크톱 앱을 사용하면 라이브 화면에 직접 그림을 그려 문제를 강조할 수 있습니다. 각 표시는 고유한 주석 스크린샷과 타임스탬프를 가진 별도의 발견 사항이 됩니다. 생성된 markdown 보고서는 Claude Code, Cursor 또는 Codex와 같은 도구에 직접 붙여넣어, 사용자의 시각적 및 언어적 지침을 바탕으로 agent가 버그를 수정하도록 도울 수 있습니다.
활용 사례
- 1자동화된 시각적 버그 보고AI agent가 직접 화면 녹화와 구조화된 보고서를 캡처하여 UI 문제를 식별할 수 있는 기능을 부여합니다.
- 2주석이 포함된 화면 내레이션화면의 문제 영역을 원으로 그리면서 레이아웃 버그를 말로 설명하여 정밀한 이슈 보고서를 생성합니다.
- 3기존 녹화 파일 일괄 처리CLI를 사용하여 이전에 녹화된 비디오 파일을 분석하고 피드백 보고서를 생성합니다.
- 4GitHub을 활용한 워크플로우 자동화화면 녹화 처리 과정을 자동화된 CI/CD 파이프라인에 직접 통합합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
MarkuprPlus MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 MarkuprPlus MCP 설치
$ claude mcp add markuprplus -- npx -y markuprplusCursor에 MarkuprPlus MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"markuprplus": {
"command": "npx",
"args": [
"-y",
"markuprplus"
]
}
}
}VS Code에 MarkuprPlus MCP 설치
.vscode/mcp.json
{
"servers": {
"markuprplus": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"markuprplus"
]
}
}
}VS Code CLI에 MarkuprPlus MCP 설치
$ code --add-mcp '{"name":"markuprplus","type":"stdio","command":"npx","args":["-y","markuprplus"]}'Claude Desktop에 MarkuprPlus MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"markuprplus": {
"command": "npx",
"args": [
"-y",
"markuprplus"
]
}
}
}Codex에 MarkuprPlus MCP 설치
$ codex mcp add markuprplus -- npx -y markuprplusCodex config.toml에 MarkuprPlus MCP 설치
~/.codex/config.toml
[mcp_servers.markuprplus] command = "npx" args = ["-y", "markuprplus"]
Gemini CLI에 MarkuprPlus MCP 설치
$ gemini mcp add -s user markuprplus npx -- -y markuprplusGemini settings.json에 MarkuprPlus MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"markuprplus": {
"command": "npx",
"args": [
"-y",
"markuprplus"
]
}
}
}MarkuprPlus MCP 도구 9
README에서 감지됨capture_screenshotcapture_with_voicedescribe_screenstart_recordingstop_recordinganalyze_videoanalyze_screenshotpush_to_githubpush_to_linear
| capture_screenshot | — | |
| capture_with_voice | — | |
| describe_screen | — | |
| start_recording | — | |
| stop_recording | — | |
| analyze_video | — | |
| analyze_screenshot | — | |
| push_to_github | — | |
| push_to_linear | — |
자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨통과
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음통과
README
GitHub에서 보기The Problem
Your coding agent can't see your screen. So you stop working and start transcribing: describe the layout bug in prose, take a screenshot, crop it, drag it into the right place, explain which part matters. You speak at 150 words per minute and type at 60, and the context leaks out on the way.
The Solution
MarkuprPlus is a Windows and macOS desktop app, with a CLI, MCP server, and GitHub Action for automated workflows. The desktop app lives in the Windows system tray or macOS menu bar. It records the exact window you point at, listens while you narrate, and lets you draw on the live screen without blocking your clicks. When you stop, it transcribes on-device, aligns your words to each mark, and writes a report your agent can act on — one finding per circle, each with its own annotated frame.
| Use MarkuprPlus as | What you can do | Get started |
|---|---|---|
| Windows desktop app | Record your screen and voice, draw live annotations, and review reports from the system tray. | Download for Windows |
| macOS desktop app | Capture and annotate from the menu bar on Apple Silicon or Intel Macs. | Download for macOS |
| CLI | Analyze existing recordings, watch folders, and generate reports in scripts. | CLI commands |
| MCP server | Let an AI coding agent capture screenshots, record sessions, and receive structured reports. | Connect your agent |
| GitHub Action | Process recordings in your GitHub Actions workflows. | Action setup |
Windows: Ctrl+Shift+F → talk → Ctrl-drag → Ctrl+Shift+F → paste into your agent
macOS: Cmd+Shift+F → talk → Cmd-drag → Cmd+Shift+F → paste into your agent
The Loop
1. Press the capture shortcut and pick your target
Use Ctrl+Shift+F on Windows or Cmd+Shift+F on macOS.
The picker opens above every window. Whatever is under your cursor lights up — click it and the recorder locks onto that window alone, and stays locked through moves, resizes, and app switches. Region and full-display modes are one click away when a finding needs a wider frame.
If the window's identity or native geometry ever becomes ambiguous mid-session, capture stops rather than widening to whatever is behind it. You never ship a frame you didn't mean to share.
The capture controls live in one portrait popover, accessible from the Windows system tray or macOS menu bar.
2. Talk while you work
Keep clicking through your app as usual. MarkuprPlus records the window and your microphone together, then transcribes with Whisper on-device after you stop.
The picker, the drawing canvas, and the recording HUD are all excluded from screen capture at the OS level — nothing MarkuprPlus draws ends up in your video. Only your app does, plus the strokes you meant to leave.
3. Hold Ctrl (Windows) or Cmd (macOS) and draw
Hold the modifier key and drag to paint straight onto the live screen — freehand, circle, or highlight, in a colour you choose. Let go of the key and your next normal click both reaches the app underneath and saves that mark, clearing the canvas for the next one.
Three circles means three issues, not one screenshot with three scribbles on it. Each finding carries its own PNG, timestamp, tool, and colour.
4. Press the capture shortcut again to stop
Use Ctrl+Shift+F on Windows or Cmd+Shift+F on macOS.
Whisper runs, your narration is aligned to each mark, and the report is written to disk. The markdown path lands on your clipboard the moment it's ready — paste it straight into Claude Code, Codex, Cursor, or anything else that reads a file.
Everything for the session goes in one folder: the report, the screenshots, the session video, the narration audio, and the metadata.
Quick Start
Windows and macOS desktop app (recommended)
Download from markuprplus.com or the releases page. Choose the Windows installer (.exe) or the macOS disk image (.dmg) for Apple Silicon or Intel.
macOS install note: Direct downloads from GitHub Releases are signed, notarized, and stapled. If Gatekeeper rejects an artifact, use MarkuprPlus support so the release can be investigated.
- Press
Cmd+Shift+F(macOS) orCtrl+Shift+F(Windows) and click the window you want. - Narrate what you see. Hold
Cmd/Ctrland drag to mark the live screen. - Release the key, then click normally — that saves the mark and clears the canvas. Repeat for every finding.
- Press the hotkey again to stop. The report path is on your clipboard.
MCP server (for AI coding agents)
npx --yes --package markuprplus markuprplus-mcp
CLI (for recordings you already have)
npx markuprplus analyze ./recording.mov
Compatibility: the public package and commands are
markuprplusandmarkuprplus-mcp. Existing.markuprxproject files, storage paths, and app identifiers remain unchanged so upgrades keep their settings and sessions.
Optional companion for Mac App Store CLI integrations
The sandboxed Mac App Store app can use AI command-line tools already installed and signed in on your Mac through the optional MarkuprPlus CLI Bridge. Local Rules, Ollama, LM Studio, and Anthropic API do not require this companion.
Install and pair it from a Terminal:
npm install -g markuprplus
markuprplus bridge install # installs and starts a per-user LaunchAgent
markuprplus bridge token # paste this value in Settings → Advanced
markuprplus bridge status
The public npm package contains the same versioned CLI and MCP entry points used by the source release.
The service listens only on 127.0.0.1:49647, requires its random pairing token for every provider request, and accepts a fixed structured-report protocol rather than shell text. The App Store app does not run shell commands or launch external tools; the separately installed companion invokes only the provider selected in Settings.
Lifecycle and recovery commands:
markuprplus bridge start
markuprplus bridge stop
markuprplus bridge status
markuprplus bridge token
markuprplus bridge rotate-token
markuprplus bridge uninstall
Rotating the token requires pairing again. Uninstall removes the exact LaunchAgent and bridge configuration owned by MarkuprPlus; it does not uninstall your AI CLIs.
What Lands in Your Folder
One session, one directory:
originplayer-test-iphone-20260818-104731/
├── feedback-report.md # the file you paste
├── feedback-summary.md # counts and duration
├── metadata.json # per-issue capture context
├── processing-trace.json # which provider ran, how long, why it fell back
├── screenshots/
│ ├── marked-issue-001.png # one frame per mark, your stroke composited in
│ ├── marked-issue-002.png
│ └── marked-issue-003.png
├── session-recording.webm # the window, with annotations
└── session-audio.webm # your narration
A real, unedited finding from that session:
### MX-001
- **Timestamp:** 00:08
- **Tools:** freehand
- **Colors:** #ff3b30
#### User Comment
> So there's a search menu and over here by default, if there's been
> previous searches, it should list out all the searches that have
> happened in the past.
#### Marked Evidence

Each finding carries more than pixels:
| What travels with the issue | Example |
|---|---|
| Its own annotated PNG | screenshots/marked-issue-001.png |
| The narration at that moment | transcript-segment-0001 … 0002 |
| How you marked it | freehand · #ff3b30 |
| Where it came from | window:5976:0 · OriginPlayer Test iPhone · darwin |
| Cursor, active app, and focus hints | captured at the instant you drew |
| Trigger metadata | annotation, manual, pause, or voice-command |
Marked issues are numbered MX-001…; items that come from narration alone are FB-001….
Every Surface
Local Transcription
On desktop startup, MarkuprPlus downloads the multilingual Whisper tiny model (~75 MB) in the background if no local model is installed. Existing models are reused. Download progress and retryable errors appear under Settings > Advanced > Local Transcription. Interrupted downloads resume on the next startup; offline or failed downloads do not block opening the app. Once downloaded, local transcription works without an internet connection.
Interface Language
The desktop interface defaults to English, including when upgrading from an installation that previously displayed Traditional Chinese automatically. Choose Settings > General > Language > Interface language to opt into Traditional Chinese or switch back to English. The preference is saved and applies immediately across open windows without restarting or interrupting a recording. Resetting General settings restores English.
Interface language is separate from transcription language. Feedback text, recordings, and generated reports are not translated by this setting.
To add another interface language, register its identifier and display name in
src/shared/uiLanguage.ts and its translation catalog in
src/renderer/i18n/catalogs.ts. English labels are the source and fallback for
missing translations; mark user-content regions with translate="no".
Report Providers
Pick the model that turns a capture into a structured report. MarkuprPlus checks each one before you record and shows you what it actually found.
In the Mac App Store app, CLI providers use the optional local companion described above. Direct desktop builds invoke the same adapters inside the app. Both paths preserve Local Rules as the failure-safe report.
| Provider | Kind | What it uses |
|---|---|---|
| Codex CLI | CLI | Your installed CLI or the Codex Mac app's bundled CLI and existing ChatGPT login, in a read-only ephemeral session |
| Claude Code CLI | CLI | The Claude Code CLI you're already signed in to |
| GitHub Copilot CLI | CLI | Copilot CLI 1.0.83+ with your existing GitHub login, in an isolated tool-free session |
| OpenCode | CLI | Your configured OpenCode provider, with a per-run agent that denies every tool action |
| Cursor Agent CLI | CLI | Cursor Agent in non-interactive, read-only Ask mode |
| Qwen Code | CLI | Qwen Code in safe, non-interactive plan mode with mutation tools excluded |
| Goose | CLI | Your configured Goose provider in tool-free chat mode, without profiles or session persistence |
| Amp | CLI | Your Amp login with an isolated default-deny tool policy |
| Kiro CLI | CLI | Kiro headless mode with only read and grep trusted |
| Aider | CLI | Your configured Aider model in dry-run, no-git mode |
| Ollama | Local | A model served on 127.0.0.1:11434 — nothing leaves the machine |
| LM Studio | Local | An LM Studio server on 127.0.0.1:1234 |
| Anthropic API | Cloud | Your own key, stored in the system keychain and used for nothing else |
| Local rules | Zero setup | Deterministic report from transcript and marks alone, no credentials |
Failure is safe by design. If the provider you picked errors out, the deterministic Local rules report is written anyway, and the popover names the provider and the reason. Your recording, audio, and marks were already on disk before analysis started. An explicit CLI choice never silently becomes an Anthropic call.
Codex CLI, GitHub Copilot CLI, and OpenCode can receive captured screenshots. Transcript-only CLI adapters reject screenshot-only sessions instead of inventing visual findings.
To use GitHub Copilot CLI, install or update copilot, run copilot login
in Terminal, then select GitHub Copilot CLI in Report Settings and refresh
providers. Leave the model blank to use your Copilot default, or enter a Copilot
model ID. Discovery verifies the installed version; authentication is verified
when a report runs. The optional CLI Bridge provides the same integration for
the Mac App Store app.
Copilot receives the transcript over stdin and screenshots as attachments. Each report uses a temporary Copilot configuration that reuses only your login identity (credentials remain in the OS credential store) and default model, not your plugins, hooks, MCP servers, or saved permissions. All model tools and custom instructions are disabled. Temporary context is removed after success or failure. Environment-token authentication is also supported; plaintext credential fallbacks are not copied into the temporary configuration.
processing-trace.json records exactly what happened:
{
"requestedProvider": "codex-cli",
"actualProvider": "rules",
"aiFallbackReason": "Codex analysis exited with status 1.",
"aiEnhanced": false,
"totalMs": 4220
}
Why MarkuprPlus
Evidence, not footage. A screen recording leaves your agent a video it can't watch and you a file you have to narrate twice. This gives you separate findings, one annotated frame each, the words you said at that timestamp, and the window and cursor context.
Local-first. Whisper runs on your device and Local rules needs no credentials. Cloud transcription and cloud models only run when you explicitly pick them. No account, no telemetry, no analytics.
It doesn't film itself. The picker, the drawing canvas, and the recording HUD are content-protected at the OS level. Your marks reach the report; the app's own chrome never reaches the video.
Fits your workflow. Windows and macOS desktop apps for daily capture, a CLI for scripts and CI, an MCP server for agents, and a GitHub Action for pull requests.
Open source. MIT licensed. Read it, fork it, ship it.
MCP Server
Give your agent eyes and ears. It can capture screenshots, record your screen with voice, and receive structured reports mid-conversation.
Connect GitHub Copilot CLI, the Claude Mac app, or Codex with the setup command:
npm install -g markuprplus
markuprplus integrate copilot
markuprplus integrate claude-desktop
markuprplus integrate codex
Run the command for each client you use, then restart that client. Claude setup covers both Chat and Code. Codex shares its configuration with its CLI. Add --dry-run to preview; existing settings and other servers are preserved, and changed files are backed up. An existing conflicting markuprplus entry requires --force. See client setup and capabilities for details.
For manual setup, Claude Code (~/.claude.json or project .mcp.json), Cursor, and Windsurf take the same shape:
{
"mcpServers": {
"MarkuprPlus": {
"command": "npx",
"args": ["--yes", "--package", "markuprplus", "markuprplus-mcp"]
}
}
}
Tools
| Tool | Description |
|---|---|
capture_screenshot |
Grab the current screen with cursor, active app/window, and focus hints attached. |
capture_with_voice |
Record screen and mic for a set duration, and return a structured report. |
describe_screen |
Describe what's currently on screen. |
start_recording |
Begin an interactive recording session. |
stop_recording |
End the session and run the full pipeline. |
analyze_video |
Process an existing .mov / .mp4 into Markdown with extracted frames. |
analyze_screenshot |
Run a single screenshot through the analysis pipeline. |
push_to_github |
Create GitHub issues from a report. |
push_to_linear |
Create Linear issues from a report. |
You: "The sidebar is overlapping the main content on mobile. Can you see it?"
Agent: [calls capture_screenshot]
"I can see it — the sidebar is position: fixed with no z-index,
280px wide with no responsive breakpoint. Fixing the CSS..."
Full MCP documentation: README-MCP.md.
MarkuprPlus MCP 질문
MarkuprPlus MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add markuprplus -- npx -y markuprplus를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
MarkuprPlus MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
MarkuprPlus MCP는 어떤 도구를 제공하나요?
9개 도구를 제공합니다. 예: capture_screenshot, capture_with_voice, describe_screen, start_recording, stop_recording.
AI 코딩 agent와 MarkuprPlus를 어떻게 함께 사용하나요?
MCP client를 연결하면 AI 코딩 agent가 스크린샷을 캡처하고, 세션을 녹화하며, 구조화된 보고서를 받을 수 있습니다.
텍스트 변환(transcription)은 클라우드에서 이루어지나요?
아니요, Whisper를 사용하여 사용자의 기기에서 로컬로 수행됩니다.
세션 종료 후 출력 폴더에는 어떤 내용이 포함되나요?
출력물에는 markdown 피드백 보고서, 요약, 메타데이터, 처리 추적(processing trace), 주석이 달린 스크린샷, 세션 비디오, 내레이션 오디오가 포함됩니다.