{"name":"dev.cotlet/cotlet","slug":"cotlet","title":"Cotlet","description":"Cotlet's own tools: a cloud browser signed in as the user, account, credits and calls.","url":"https://mcp.market/server/cotlet","rating":null,"grade":"A","score":97,"certified":false,"status":"active","category":"scraping","tags":["scraping"],"presence":{"score":28,"stars":2,"forks":0,"downloads_week":null,"last_push_at":"2026-10-23T17:28:02.000Z","license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:15:42.939Z","last_ok_at":"2026-11-04T07:15:42.939Z","latency_ms":276},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/cotletdev/cotlet","website":"https://cotlet.dev","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://cotlet.dev/mcp/v1/cotlet/connect"},{"type":"streamable-http","url":"https://cotlet.dev/mcp/v1/cotlet","headers":[{"description":"Bearer followed by your Cotlet API key (cotlet.dev → API keys)","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"cotlet_apps","description":"The apps of the user's workspace and whether each works now: access granted or requested, the app account in the user's Cloud Browser (connected, signed out, signed in but not connected), and the one step the user has to take, with the console link. Free. Needs the user's Cotlet API key or sign-in.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"Only this app, e.g. skool."}},"additionalProperties":false}},{"name":"cotlet_balance","description":"The user's current credit balance. Free. Needs the user's Cotlet API key or sign-in.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"cotlet_browser_click","description":"Clicks a link, button or other element of the current page in the user's browser on Cotlet, by its number in the page's element list, and returns the URL and title after the click. It acts as the user on that site. Buttons that pay or buy and buttons on account or sign-in pages are refused. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"element":{"type":"integer","minimum":1,"description":"The element's number in the element list of the current page."}},"required":["element"],"additionalProperties":false}},{"name":"cotlet_browser_close","description":"Ends the session in the user's browser on Cotlet (with `app`, that app's browser): the browser keeps its cookies, goes to sleep and the per-minute charge stops. Returns the session's minutes and credits.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."}},"additionalProperties":false}},{"name":"cotlet_browser_connect","description":"Wakes the user's Cloud Browser of one app (a real Chrome on Cotlet, signed in to that app as the user) and returns cdp_url, a Chrome DevTools Protocol WebSocket that gives a CDP client full control of the browser. It works in one open tab, the app's: the user watches it live, and new tabs are refused. Every started minute of an open connection costs credits. Needs the user's Cotlet API key or sign-in.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"Slug of the app whose browser to open, as in the Cotlet tool names, e.g. skool."}},"required":["app"],"additionalProperties":false}},{"name":"cotlet_browser_navigate","description":"Opens a public http or https address in the user's browser on Cotlet and returns the URL and title it ended on. An app's browser opens only that app's pages. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"url":{"type":"string","format":"uri","description":"A public http or https address, e.g. https://example.com. In an app's browser, a page of that app."}},"required":["url"],"additionalProperties":false}},{"name":"cotlet_browser_open","description":"Wakes the user's own browser on Cotlet, a real Chrome hosted for them: their web browser with the sites they signed in to there, or with `app` that app's browser, signed in to the app. Opens `url` when given and returns the page's URL and title. The user watches every step live. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"url":{"type":"string","format":"uri","description":"A public http or https address, e.g. https://example.com. In an app's browser, a page of that app."}},"additionalProperties":false}},{"name":"cotlet_browser_press","description":"Presses one key on the current page in the user's browser on Cotlet, on the element that has focus: Tab to the next field, Enter to send, Escape to close a dialog or pop-up, arrows to move through a suggestion list. Returns the URL and title after it. Enter on account pages is refused. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"key":{"type":"string","enum":["Enter","Tab","Shift+Tab","Escape","Backspace","Delete","Space","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","PageDown","PageUp","Home","End"],"description":"The key."}},"required":["key"],"additionalProperties":false}},{"name":"cotlet_browser_read","description":"Returns the current page of the user's browser on Cotlet: its readable text, up to 20,000 characters, and a numbered list of its links, buttons and fields. Field values, cookies and storage are never returned. On a page longer than that, both start near where it is scrolled to. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."}},"additionalProperties":false}},{"name":"cotlet_browser_screenshot","description":"Returns a JPEG image of the visible part of the current page in the user's browser on Cotlet, with its URL and title: boards, canvases and layouts that the page text does not show. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."}},"additionalProperties":false}},{"name":"cotlet_browser_scroll","description":"Scrolls the current page in the user's browser on Cotlet with the mouse wheel, as a person does: down or up by `screens` viewport heights (default 0.8), to the top or the bottom, or until element `element` is in view. Content that loads on scroll appears, and the next read lists it. Returns the URL, title and scroll position (at_top, at_bottom). Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"direction":{"type":"string","enum":["down","up","top","bottom"],"description":"Where to scroll. Default: down."},"screens":{"type":"number","exclusiveMinimum":0,"maximum":10,"description":"How far, in viewport heights, for down and up. Default: 0.8."},"element":{"type":"integer","minimum":1,"description":"Scroll until this element of the element list is in view."}},"additionalProperties":false}},{"name":"cotlet_browser_select","description":"Chooses an option of a drop-down list on the current page in the user's browser on Cotlet, by the list's number in the element list and the option's label as read lists it (or its value). Returns the URL and title after it. Card fields and account pages are refused. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"element":{"type":"integer","minimum":1,"description":"The element's number in the element list of the current page."},"option":{"type":"string","maxLength":300,"description":"The option."}},"required":["element","option"],"additionalProperties":false}},{"name":"cotlet_browser_sessions","description":"Open Chrome DevTools connections to the user's Cloud Browsers with the minutes and credits each has cost so far, and the cdp_url links still valid. With close: true it ends the open connections and takes back the unused links, of one app or of all. Needs the user's Cotlet API key or sign-in.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"close":{"type":"boolean","description":"End the connections and revoke the links."},"app":{"type":"string","description":"Only this app's browser, e.g. skool."}},"additionalProperties":false}},{"name":"cotlet_browser_type","description":"Types text into a field of the current page in the user's browser on Cotlet, by the field's number in the page's element list, and with `submit` presses Enter. Returns the URL and title after it. Password, card and one-time code fields and sign-in pages are refused: the user fills those in themselves. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"element":{"type":"integer","minimum":1,"description":"The element's number in the element list of the current page."},"text":{"type":"string","maxLength":5000,"description":"The text to type."},"submit":{"type":"boolean","description":"Press Enter after typing, e.g. to search."}},"required":["element","text"],"additionalProperties":false}},{"name":"cotlet_browser_upload","description":"Puts files into a file field of the current page in the user's browser on Cotlet, or into the file picker that an upload button opens, by its number in the element list. A file is given as {\"url\": \"https://...\"} for a file online or {\"file_id\": \"...\"} for one uploaded to Cotlet first; up to 10 files, 20 MB each. Returns the URL and title after it. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in that browser.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Slug of a connected app, e.g. milanote: the step runs in that app's Cloud Browser, signed in as the user and kept to the app's site. Leave it out for the user's web browser."},"element":{"type":"integer","minimum":1,"description":"The element's number in the element list of the current page."},"files":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public file URL."},"file_id":{"type":"string","description":"A file uploaded to Cotlet."}},"additionalProperties":false},"description":"The files."}},"required":["element","files"],"additionalProperties":false}},{"name":"cotlet_get_call","description":"Status of an earlier Cotlet call, by its call_id: pending (waits for the owner's approval in the Cotlet console), approved, running, success, rejected, expired, blocked or failed. For a call that answered with status pending or running.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"call_id":{"type":"string","description":"call_id from the earlier call"}},"required":["call_id"],"additionalProperties":false}},{"name":"cotlet_report_issue","description":"Sends a report straight to the Cotlet team: a tool that failed or returned wrong data, an error you could not get past, or a tool, field or app the task needed and Cotlet lacks. The report carries the error text and call_id when there is one, never passwords or tokens. Needs the user's Cotlet API key or sign-in.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"kind":{"description":"bug: a tool did the wrong thing or returned wrong data. error: a call failed or returned an error you could not get past. feature_request: something new the user wants. missing_feature: an app is here but lacks a tool, field or option the task needed. other: anything else.","enum":["bug","error","feature_request","missing_feature","other"],"title":"Kind","type":"string"},"title":{"description":"One line, e.g. 'skool_list_members stops after 50 members'.","maxLength":200,"minLength":3,"title":"Title","type":"string"},"description":{"description":"What you tried, what you expected and what happened, with the error text if there was one. No passwords, tokens or other secrets.","maxLength":5000,"minLength":10,"title":"Description","type":"string"},"app":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"App slug the report is about, e.g. 'skool'.","title":"App"},"tool":{"anyOf":[{"maxLength":160,"type":"string"},{"type":"null"}],"default":null,"description":"Tool or endpoint name, e.g. 'skool_list_members'.","title":"Tool"},"call_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"call_id of the call that went wrong, if any.","title":"Call Id"},"client":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Agent or tool sending this, e.g. 'Claude Code'.","title":"Client"}},"required":["kind","title","description"],"additionalProperties":false,"description":"Body of POST /api/v1/reports and the arguments of the MCP tool cotlet_report_issue.","title":"AgentReportCreate"}},{"name":"cotlet_request_apps","description":"Requests access to apps for the user's workspace, as Request access in the console: a live app is granted at once, any other goes to the Cotlet team, who answer within 72 hours. Takes app slugs as listed at https://cotlet.dev/api/v1/apps. Free. Needs the user's Cotlet API key or sign-in.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"apps":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"App slugs, e.g. [\"skool\", \"substack\"]."}},"required":["apps"],"additionalProperties":false}},{"name":"cotlet_upload_file","description":"Returns a one-time upload_url and a file_id for a local file (an image for a post, an attachment). The file is sent to upload_url with an HTTP PUT; an argument that takes a file accepts {\"file_id\": \"...\"}. Up to 25 MB, the URL works once. Free. Needs the user's Cotlet API key or sign-in.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"File name, e.g. photo.jpg."},"content_type":{"type":"string","description":"MIME type, e.g. image/jpeg."}},"additionalProperties":false}},{"name":"cotlet_whoami","description":"The Cotlet account this connection acts as: email, workspace, access status, the API key or OAuth client in use with its scope, the apps the workspace may call and its credit balance. Free. Needs the user's Cotlet API key or sign-in.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}}],"scan":{"score":97,"grade":"A","scanned_at":"2026-10-24T16:16:03.844Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-24T16:16:03.777Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 832ms (auth required)"]},"poisoning":{"score":15,"max":15,"notes":["20 tool descriptions checked"]},"auth":{"score":15,"max":15,"notes":["OAuth resource metadata advertised on 401"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["endpoint served from the registry-verified namespace domain"]}},"findings":[],"inputs":{"probes":[{"url":"https://cotlet.dev/mcp/v1/cotlet/connect","reachable":true,"authRequired":true,"latencyMs":832,"authScheme":"oauth"},{"url":"https://cotlet.dev/mcp/v1/cotlet","reachable":true,"authRequired":false,"latencyMs":1997,"serverInfo":{"name":"cotlet","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"cotletdev","repo":"cotlet","archived":false,"pushedAt":"2026-10-23T17:28:02Z","stars":2,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/341410638?v=4","ownerCreatedAt":"2026-10-12T10:20:52Z"},"icon":{"url":"https://cotlet.dev/icon-512.png","source":"registry","width":512,"height":512},"presence":{"stars":2,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-10-23T17:28:02.000Z","score":28}}}},"grade_history":[],"reviews":[]}