I built an MCP server to show my AI my screen

AquiGorka1 pts1 comments

DesktopVisionMCP. Show, don't tell.

DesktopVisionMCP

What it looks like What it changes Privacy Setup Buy · $19

Show,<br>don&rsquo;t tell.<br>Stop taking screenshots, and stop trying to describe what you see. No more dragging images into the chat or copy-pasting. Ask your actual question and your assistant will know what you are referring to.<br>Give your AI assistant visibility. Claude, ChatGPT, Codex, Gemini, any of them. If it speaks MCP, it can see what you see.<br>Buy DesktopVisionMCP · $19

What it looks like<br>Ask your assistant to take a look.<br>Now you can get your assistant's input without figuring out how to grab the correct context.

For coding Terminal Mon 15:41<br>session.ts &middot; npm run build<br>~/acme/web npm run build<br>vite v5.4.2 building for production...<br>transforming (312) src/checkout/session.ts

Build failed in 4.21s<br>[vite]: Rollup failed to resolve import "@/lib/money"<br>from "src/checkout/session.ts".

12 | import { Cart } from '@/lib/cart'<br>13 | import { format } from '@/lib/money'<br>14 | import { taxFor } from '@/lib/tax'

This is most likely unintended because it can<br>break your application at runtime.<br>~/acme/web &block;

Claude Code<br>> I have a build failing in my terminal, can you take a look

● Calling desktop-vision-mcp… (ctrl+o to expand) Your build is failing on one unresolved import, not on the 312 files it transformed. Line 13 of src/checkout/session.ts imports @/lib/money , and the two imports either side of it resolve fine, so the @ alias itself is working. The path is the problem, not the config. Check whether that file is actually at lib/money.ts , and whether its casing matches; this is the classic one that passes on a Mac and fails in CI.

For reviewing GitHub Mon 15:41<br>github.com/acme/api/pull/482<br>Open retry the webhook &middot; 2 files changed<br>src/webhooks/deliver.ts

async function deliver(evt: Event) {<br>let attempt = 0<br>- while (attempt<br>+ while (attempt<br>const res = await post(evt)<br>if (res.ok) return res<br>+ await sleep(2 ** attempt * 1000)<br>attempt++<br>throw new DeliveryError(evt.id)

src/config.ts<br>+ export const MAX_RETRIES = 8

ChatGPT<br>Something is off about the code in a PR I am reviewing, can you help me pinpoint the issue?<br>desktop-vision-mcp &middot; screenshot<br>Yes. The backoff is exponential and the ceiling moved from 3 to 8 , so the final wait is 2^7 , about 128 seconds , and the total run is over four minutes. That is fine in a worker and a problem if deliver is ever awaited inside a request handler. Also worth checking: the sleep runs after the last failed attempt too, so you pay the longest wait before throwing.

For math Excel Mon 15:41<br>Q3 headcount plan<br>E6fx=SUM(B6:D6)<br>ABCDE 1TeamJulAugSepQ3 total 2Engineering14161949 3Design33410 4Sales891128 5Support56617 6Total30344096 7Budget104

Codex<br>> I'm looking at some figures and something does not add up, can you double check?

● Calling desktop-vision-mcp… (ctrl+o to expand) No. The Q3 total row says 96 , but the four team totals are 49, 10, 28 and 17, which come to 104 . The monthly columns are consistent with the teams, so the error is in the total row itself, not the inputs. Worth noting the number it should be, 104, is also exactly your budget line, which is the kind of coincidence that makes a wrong cell look right.

For design Firefox Mon 15:41<br>localhost:3000/team<br>Our team

Ana

Bruno

Chiara

Diego

Claude Code<br>> The images on my website are not correctly aligned, help me figure out how to fix them

● Calling desktop-vision-mcp… (ctrl+o to expand) The names are not on a shared baseline because the images are different heights and each card is sizing itself. Your grid is laying out the cards, but nothing inside them is constrained, so the caption starts wherever its own image ends. Give the image a fixed height with object-fit: cover , or make each card a grid with grid-template-rows: 1fr auto so the captions line up whatever the image does.

For a last look Mail Mon 15:41<br>Draft<br>To [email protected]<br>Subject Purchase order 4471, confirmation

Hi Elena,<br>Confirming we would like to procede with the order: 1,500 units of the XR-9 bracket at $12.40 each, for a total of $1,860 .<br>Please invoice against PO 4471. We can recieve from the 22nd.<br>Thanks,<br>Gorka<br>Send

Gemini<br>I'm about to send an important email message, can you proof read it?<br>desktop-vision-mcp &middot; screenshot<br>Do not send it yet. The total is wrong by a factor of ten: 1,500 units at $12.40 is $18,600 , not $1,860 . On a purchase order that is the kind of number a supplier will hold you to. Two spellings as well, procede should be proceed and recieve should be receive.

What it changes<br>You stop being the middleman<br>Right now you read the error, retype it, describe the layout, explain which tab you are on. Every one of those steps is a chance to leave out the thing that mattered. Ask instead, and the screen speaks for itself.

Fewer confidently wrong answers<br>Most bad answers are not reasoning failures, they are missing context. When the assistant can see the actual stack...

from attempt total assistant build import

Related Articles