MCP App Store
by KeenEthics

Overview

Upsy helps AI assistants securely access your memory, files, connected accounts, and cloud browser. Search email, plan meetings, work with documents and project tools, and save useful context across assistants through the services you connect. Grant each assistant only the access it needs. Monitor tool activity in Upsy's audit log, and change or revoke access anytime. Memory additions require your approval. Upsy does not sell your data or use connected-account data to train AI models. Connected assistants have their own privacy policies. Tools depend on your permissions; browser automation needs a compatible client. See our Privacy Policy for details.

Tools

browser_click

ChatGPT
Clicks an element of the page in your tab, with the mouse, as a person would. Returns the page after the click.

browser_navigate

ChatGPT
Opens a web page in the user's cloud browser, which is logged in to the user's sites: for websites Upsy has no tools for, like checking an order or a booking. For email, calendar, Slack, Drive and the apps in app_tools, use their tools instead. Your first page opens a new tab of yours (grouped under your name); later ones reuse your current tab unless newTab. back: true goes back a page. Returns a snapshot of the page: its text and elements, with refs for browser_click, browser_type and browser_select. No code needed.

browser_open

ChatGPT
For what the browser_* tools can't do, with your own code: returns a Chrome DevTools Protocol endpoint of the user's cloud browser for Playwright, Puppeteer, browser-use, Stagehand or Playwright MCP (--cdp-endpoint). Most pages are easier with browser_navigate, browser_click and browser_type, which need no code. The browser is logged in to the user's sites. Open your own tabs with context.newPage(); they are grouped under your name. The URL must be used within 5 minutes; the connection then stays open. For Stagehand 4, pass stagehand: true: its extension is loaded in the browser and you get the extensionId to connect with.

browser_press_key

ChatGPT
Presses a key in your tab, e.g. Enter, Escape, Tab, ArrowDown, or a shortcut like Control+Enter. It goes to the focused element. Returns the page after.

browser_screenshot

ChatGPT
A screenshot of what your tab of the user's browser shows, for when the look matters (images, charts, layout). Brings the tab to the front.

browser_scroll

ChatGPT
Scrolls the page in your tab by most of a screen, with the mouse wheel; with a ref, the part of the page that element is in. For pages that load more as you scroll. Returns the page after.

browser_select

ChatGPT
Picks an option of a dropdown (a <select>) in your tab, by its text. For other menus, click the menu, then the option. Returns the page after.

browser_snapshot

ChatGPT
The page in your tab of the user's browser as it is now: its text and elements, with refs for browser_click, browser_type and browser_select.

browser_tabs

ChatGPT
Lists your tabs in the user's browser (the ones you opened), marking your current one. close: a tab to close first.

browser_type

ChatGPT
Types text into a field of the page in your tab (an input, a text area or an editor), with the keyboard, replacing what's in it. submit: true presses Enter after. Returns the page after.

create_draft

ChatGPT
Saves a draft in the user's Gmail (not sent). For a reply, set replyToMessageId. Attach the user's files, or another email's, with attachments. Returns JSON with the draft's id, for send_message.

email_archive

ChatGPT
Archives Gmail emails: they leave the inbox but stay in All Mail and search. Pass read: true to also mark them read.

email_attachment

ChatGPT
Returns one Gmail attachment's file (ids from get_message). Up to 10.0 MB; text files come back as text. To save it to Google Drive or attach it to an email, pass its ids instead (drive_upload's from_email, send_message's attachments): Upsy copies it, so it doesn't pass through you.

email_delete_draft

ChatGPT
Deletes a Gmail draft for good.

email_labels

ChatGPT
Lists the user's Gmail labels (their own and system ones like INBOX, STARRED, IMPORTANT).

email_list_drafts

ChatGPT
The user's Gmail drafts, with ids for email_send_draft and email_delete_draft.

email_read_thread

ChatGPT
Returns every message in a Gmail thread (thread id from search_threads or get_message), oldest first.

email_send_draft

ChatGPT
Sends an existing Gmail draft as it is. Only send what the user asked for.

email_trash

ChatGPT
Moves Gmail emails to the trash. Gmail deletes them for good after 30 days; until then they can be restored. Only trash what the user asked for.

email_untrash

ChatGPT
Moves Gmail emails out of the trash, back where they were.

email_update

ChatGPT
Changes Gmail emails: mark read or unread, star or unstar, mark important, move back to the inbox, or add and remove labels by name (see email_labels). New label names are created. To archive, use email_archive.

files_list

ChatGPT
Lists the user's documents (CV, ID scans, contracts, …) and the files you saved earlier, with their ids.

files_read

ChatGPT
Returns a file's extracted text (paged with offset) and a short-lived download URL for the original, e.g. to attach it somewhere.

files_upload

ChatGPT
Saves a file you produced (report, itinerary, summary, …) into your own folder in the user's Upsy. The user sees it under Agent files; other agents don't. Pass content for text or content_base64 for binary files. Max 2.9 MB.

get_message

ChatGPT
One message from the user's Gmail by id. messageFormat "MINIMAL" returns its headers and labels (id, threadId, labelIds, sender, to, cc, subject, date, snippet); "FULL", the default, adds its text body and attachments. Returns JSON.

memory_read

ChatGPT
Returns the user's memory: one markdown document they wrote about themselves (who they are, preferences, family, work, …). Read it at the start of a task to personalize it, and before asking the user for details they may have saved (addresses, preferences, names).

memory_suggest

ChatGPT
Suggests adding something to the user's memory, e.g. a lasting preference they just told you. Nothing changes until the user accepts it in their Upsy. Write one short sentence in the user's voice or as a fact about them.

search_threads

ChatGPT
Searches the user's Gmail conversations with Gmail search syntax, e.g. "in:sent" or "from:alice newer_than:7d". Returns JSON: threads, each with its messages (id, threadId, labelIds, sender, to, cc, subject, date, snippet).

send_message

ChatGPT
Sends an email from the user's Gmail: a new one (to, subject, body, and optionally cc, htmlBody and attachments; replyToMessageId to reply in its thread), or a draft by draftId (from create_draft). Only send what the user asked for. Returns JSON with the sent message's id.

slack_list_channels

ChatGPT
The Slack channels, group DMs and DMs the user is in, with ids for slack_read_channel, and the names of DMs' people (users). JSON.

slack_read_channel

ChatGPT
A Slack channel's or DM's messages, newest first, with each message's ts (for slack_read_thread and replies), author, and reply_count when it has a thread, plus the names of the people in them (users). JSON.

slack_read_thread

ChatGPT
A Slack thread: the message it started from, then its replies, oldest first, with the names of the people in it (users). JSON.

slack_read_user_profile

ChatGPT
A person's Slack profile: name, display name, title, email, timezone and status. Without user_id, the user's own. JSON.

slack_search_channels

ChatGPT
Finds public and private Slack channels the user can see whose name contains the query, with their ids, topics and member counts. JSON.

slack_search_messages

ChatGPT
Searches every Slack message and DM the user can see, e.g. "launch plan" or "what did Ada say about pricing". Returns matches with channel, ts, author, text and permalink. JSON. This is the user's own Slack, connected to Upsy.

slack_search_users

ChatGPT
Finds people in the user's Slack workspace by name, display name or email, with their user ids, titles and emails. JSON.

slack_send_message

ChatGPT
Sends a message as the user to a channel, or to a person's DM with their user id. thread_ts replies in that thread; reply_broadcast also shows the reply in the channel. Uses Slack's mrkdwn (bold, <@U…> mentions). Only send what the user asked for. Returns the message's channel, ts and permalink. JSON. This is the user's own Slack, connected to Upsy.

upsy_connectors

ChatGPT
The user's connectors in Upsy and what you may do with each: nothing yet. Returns each account's address, your access (All, Read-only, some tools only, or not allowed) and the tools that reach it. The user changes access in Upsy.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps