keepp
Keepp is a page builder for creators and small businesses.
What it can do
- List Businesses: Every Keepp page this account can manage, with the handle to pass as `business` to the other tools. Call this first when the person has not said which page they mean, and ask them rat
- Get Page: The whole page document: every block in order, and the theme. Read this before writing, and keep the `version` it returns — put_page needs it.
- List Catalog: The products and bookable offerings on this page, with the ids a product or booking block refers to. Placing one on the page is a page edit; creating or pricing one is not done here.
What data it sees
Do you need an account
No: the server works without sign-in
Keepp is a page builder for creators and small businesses. Each person gets one page at keepp.link/yourname, built from blocks they arrange however they like. It works as a link in bio and as a small website, and it can take real payments and bookings.
Who can use it
Creators, coaches and consultants, photographers, salons and spas, restaurants, vacation rentals and retreats, and any small business that wants one link that does more than list links.
What it is for
Sharing links, selling products and digital downloads, taking bookings, and collecting leads and feedback, all from one page you own.
Features
- Links shown as pills or cards, a profile, social icons, text, a map with opening hours, YouTube videos and a menu
- Sell products and digital downloads with Stripe checkout. The payment goes straight to your own Stripe account.
- Take bookings for appointments or nightly stays, with deposits, and connect Google Calendar and Zoom
- Collect leads, feedback or anything else with forms
- Every block has its own link and QR code, so you can share one product or one booking on its own
- Page-wide themes, colors and fonts
What this MCP server does
It lets an assistant such as Claude or ChatGPT build and edit a Keepp page from a plain description. It can create a page, read and replace its blocks and theme, list and create products and bookable offerings, check and start Stripe, Google Calendar and Zoom connections, and explain the plans. You sign in with OAuth and approve access to your own pages.
Plans
The Free plan includes unlimited sales and bookings at 5% commission. Pro is $9.99 a month at 3%. Influencer is $24.99 a month at 0%.
How to connect
How to connect keepp to Claude
The server address to paste into Claude settings:
https://keepp--contact-m6gu.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect keepp to ChatGPT
The server address to paste into ChatGPT settings:
https://keepp--contact-m6gu.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect keepp to Cursor
The server address to paste into Cursor settings:
https://keepp--contact-m6gu.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (20)
Raw names from tools/list. Only developers need these.
| list_businesses | Every Keepp page this account can manage, with the handle to pass as `business` to the other tools. Call this first when the person has not said which page they mean, and ask them rather than guessing if there is more than one. |
| get_page | The whole page document: every block in order, and the theme. Read this before writing, and keep the `version` it returns — put_page needs it. |
| list_catalog | The products and bookable offerings on this page, with the ids a product or booking block refers to. Placing one on the page is a page edit; creating or pricing one is not done here. |
| put_page | Writes the WHOLE page document at once. Send every block you want the page to keep — a block you leave out is deleted, and that is a valid request nothing will warn you about. Call get_page first, edit what it returned, and send the `version` it gave you so a change made elsewhere since then fails loudly instead of being overwritten. Image URLs (in blocks and in a theme background) are downloaded and stored on Keepp as part of the write, so the page never loads them from the site they came from and nothing needs uploading. An image that cannot be downloaded fails the write and says which block. |
| create_business | Creates a page at keepp.link/<handle>. THE HANDLE IS PERMANENT: it cannot be changed after this. Before calling, ALWAYS show the person the exact handle and display name and get their explicit yes in the conversation. Suggest a handle if they have none, but never create one they have not approved. |
| list_connectors | Whether Stripe, Google and Zoom are connected for this page, and whether each is ready. Stripe is what makes paid products and paid bookings possible. |
| connect_stripe | Starts connecting Stripe to a page. Returns a link for the person to open and approve — nothing is connected until they do, and no password or key is ever passed through here. Check list_connectors afterwards. The Stripe account's country cannot be changed after it is created, so confirm it with the person before calling. |
| connect_google | Starts connecting Google Calendar to a page. Returns a link for the person to open and approve — nothing is connected until they do, and no password or key is ever passed through here. Check list_connectors afterwards. |
| connect_zoom | Starts connecting Zoom to a page. Returns a link for the person to open and approve — nothing is connected until they do, and no password or key is ever passed through here. Check list_connectors afterwards. |
| list_plans | What each Keepp plan costs and includes. Call this when something needs an upgrade, so the person can choose knowing what they get, then upgrade_plan for their checkout link. Pass `business` to also learn which plan that page is on. |
| upgrade_plan | Returns a Stripe link for the person to open and pay. Nothing is charged unless they complete it there, and the plan changes once they do — then retry what needed it. Call this when a tool says a feature needs Pro, and tell the person which plan and why. |
| create_product | Adds a product to a page's catalogue. It is not on the page until a product block places it there — use put_page for that. For something delivered after payment, like a course or a download, set deliveryUrl. Show the title, price and currency. Before calling, show the person exactly what will be saved and get their explicit yes in the conversation. Never assume a currency. |
| get_product | Everything about one product — price, images, delivery link, policy, questions — in the shape update_product takes. Read it before changing a product, and to answer questions about it. |
| update_product | Changes a product. Send only what changes: every field left out keeps its current value, and null clears an optional one. Pricing is replaced whole when sent. Orders already placed keep the price they were bought at. If the product is on the page, the page is republished so it shows the change. Show what changes, the price and currency especially. Before calling, show the person exactly what will be saved and get their explicit yes in the conversation. Never assume a currency. |
| archive_product | Removes a product from the catalogue for good — there is no undo. It will REFUSE while the product is still on the page: take its block out with put_page first. Buyers who already bought it keep their orders. Say which product and that there is no undo. Before calling, show the person exactly what will be saved and get their explicit yes in the conversation. Never assume a currency. |
| create_booking_unit | Adds something people can book — appointments on a weekly schedule ("slots"), or stays ("nights"). It is not on the page until a booking block places it there with put_page. The two modes take different config fields and mixing them is refused; if a field is wrong the error says exactly which, so read it and try again. Show the name, the mode, the price and currency, and the TIMEZONE — a wrong timezone moves every slot. Before calling, show the person exactly what will be saved and get their explicit yes in the conversation. Never assume a currency. |
| get_booking_unit | Everything about one offering — schedule, timezone, price, meeting setup, questions, images, policy — in the shape update_booking_unit takes. Read it before changing an offering, and to answer questions about it. |
| update_booking_unit | Changes an offering. Send only what changes: fields left out keep their values, and inside `config` each setting left out keeps its value too — so changing the image or title never touches the schedule. Changing the mode (slots to nights) needs the whole config for the new mode. Bookings already taken are not moved. If the offering is on the page, the page is republished so it shows the change. Show what changes, including price, currency and timezone. Before calling, show the person exactly what will be saved and get their explicit yes in the conversation. Never assume a currency. |
| archive_booking_unit | Removes a bookable offering for good — there is no undo. It will REFUSE while the offering is still on the page, and while it has bookings ahead of it. Say which offering and that there is no undo. Before calling, show the person exactly what will be saved and get their explicit yes in the conversation. Never assume a currency. |
| search_gallery | Images the page owner is free to use, already stored on Keepp: backgrounds for the theme, and pictures for cards, products and offerings. Use one when the owner has no photo of their own for a spot. Put an image's `url` into put_page as it is — as `theme.background.imageUrl` for a background, or in a block's image field. The owner's own photos are always better than these, so never replace one with a gallery image. |