Google Search Console integration for Model Context Protocol (MCP)
Pagefully is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
App Store custom product pages from your own screenshots: plan, make, check and publish them.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http pagefully-mcp https://pagefully.com/api/mcp
# 2 — ask your agent for something these tools do
# analyze_app, propose_plan, update_plan and 12 more
Pagefully costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http pagefully-mcp https://pagefully.com/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
15 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Reads an iOS app from its App Store link or id and says what Pagefully understood of it. Call this first. Signed in (OAuth or a Pagefully token): adds the app to the workspace (no App Store Connect key is needed to plan and make pages) and returns the app, with its app_id, its brief (what the app does, who it is for and how it sounds) and its screens. "screens" is the app's own source screenshots
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_store_url | string | no | The app's address on the App Store, which ends in id and a number: https://apps.apple.com/us/app/name/id1234567890 |
| app_store_id | string | no | Apple's id for the app: the number at the end of its App Store address. |
| app_id | string | no | The app's id in Pagefully, for an app already on the workspace. Reads only. |
| screens | boolean | no | false leaves the app's source screens out of the answer. |
Returns the app's plan: one custom product page for each search intent. Each intent has a kind (problem, feature or competitor), what its page says, and the keywords from the app's keyword field that the page claims. A keyword belongs to one page only. An intent with no keyword from the field is a page for ads and links, and has targets instead. Call it after analyze_app has returned a brief. If t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_id | string | yes | The app's id in Pagefully (a UUID), as analyze_app returned it in app.id. |
| rebuild | boolean | no | Replace the whole plan, edits included. Only when the person asks. |
| locale | string | no | An App Store language, such as en-US. Leave it out for the app's own language. |
Changes the plan in one call, as the person asked: add an intent, update one (its name, what its page says, or on and off), approve (switch on) a list, remove a list, or reorder (the order is build priority). Changes apply in that order and stop at the first one the product refuses; the ones before it are saved and the error says so. An intent that is on gets a page when generate_pages is called.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_id | string | yes | The app's id in Pagefully (a UUID), as analyze_app returned it in app.id. |
| add | array | no | — |
| update | array | no | — |
| approve | array | no | Intent ids to switch on. |
| remove | array | no | Intent ids to take out of the plan. |
| reorder | array | no | Every intent id, in the new order. |
| locale | string | no | An App Store language, such as en-US. Leave it out for the app's own language. |
Adds screens of the app for pages to be drawn from: captures of the running app, beside the screenshots its App Store listing already has. Use it when the listing's screenshots are stale, when a page needs a screen the listing does not show, or when the app is not on the store yet. Returns each screen with its position, which is what edit_page takes as "screen". A page made after this may choose a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_id | string | yes | The app's id in Pagefully (a UUID), as analyze_app returned it in app.id. |
| screens | array | no | The screens to add. Leave it out to list the screens the app has. |
Makes a page for every intent that is switched on and has none: the words are written, drawn onto the app's own screenshots, and checked against App Review's rules (pre-flight). Each page is its own job. Returns the jobs with their page ids, and the app's pages with a preview_url each. Call it once the person has agreed the plan. Then call get_job for each job until it is done, and preview_page fo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_id | string | yes | The app's id in Pagefully (a UUID), as analyze_app returned it in app.id. |
| locale | string | no | An App Store language, such as en-US. Leave it out for the app's own language. |
The state of a long job: queued, running, done or failed, with its steps as progress, counts of what it did, and the code and message of what went wrong. Call it after any tool returned a job_id, every few seconds, until the state is done or failed. A failed job is not retried by itself: tell the person what the message says.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | The job's id, as another tool returned it. |
Changes one screenshot on a page, or several in one call, makes one again, or approves the page. Say which screenshot by position (1 is the first) or slot_id. By hand: its headline, its subline, the screen it shows ("screen", a position from preview_page's screens or add_screens), its style, or its design. The screenshot is drawn again and checked again, and returns with the page. To change severa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page_id | string | yes | The page's id (a UUID), as generate_pages, get_job or propose_plan returned it. |
| position | integer | no | Which screenshot, by its place on the page. 1 is the first. |
| slot_id | string | no | Which screenshot, by its id from preview_page. |
| headline | string | no | — |
| subline | string | no | — |
| screen | integer | no | The position of the app screen this screenshot should show. Each screen appears once on a page. |
| style | no | This screenshot's style. null gives it back the page's own. | |
| design | string | no | Whose design this screenshot is drawn in. "ours": the app's screen in Pagefully's own design, where a headline and a style both apply. "theirs": the developer's own design, with only its words changed |
| changes | array | no | Several screenshots of this page in one call: one item for each, with its position or slot_id and what to change. In place of the single form, not with it. |
| return | string | no | "changed" returns only the screenshots this call changed, with what pre-flight found on them. Left out, the whole page is returned. |
| regenerate | string | no | Have Pagefully make it again. "page" is the whole page and needs no position. Counts against the month's rewrites. |
| approve | boolean | no | Approve the page as it now stands. Only after the person has seen the preview and said yes. |
| own_words | boolean | no | With approve: approve even though some screenshots still show the developer's own words. Only when the person says so. |
One page, whole: each screenshot with its headline, subline and picture, the promotional text, the keywords it is for, what pre-flight found, whether it is approved, and its preview_url on pagefully.com. The screenshots also come back as images (display size, at most six) where the client can show them, and a chat app that draws MCP Apps shows the page inline as the App Store would, with buttons t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page_id | string | yes | The page's id (a UUID), as generate_pages, get_job or propose_plan returned it. |
| images | boolean | no | false leaves the pictures out and returns their links only. |
Step one of two. Sends nothing. Returns exactly what would be made in App Store Connect for the pages asked for (each page's name, headlines, promotional text, keywords, devices, whether it is a revision, and its preview_url), which pages would not be sent and why, what happens next, and a confirmation_token. You must show the person that summary and every preview_url, and wait for their explicit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page_ids | array | yes | The pages to publish, all of one app. |
Step two of two. Spends the confirmation_token from publish_pages and makes each page in the summary in App Store Connect, one job for each page. Returns the jobs: call get_job for each. Call it only after the person has seen the summary and the preview links from publish_pages and has said yes, in their own words, to publishing those pages. If they asked for a change, make it and call publish_pag
| Parameter | Type | Required | Notes |
|---|---|---|---|
| confirmation_token | string | yes | The confirmation_token publish_pages returned, starting pfc_. |
How each page is doing on the App Store against the app's default page over the last seven days Apple has reported: views, downloads and conversion rate for each page and for the default page, and by source. The numbers are Apple's, and Apple leaves out rows under five users, so a small page shows nothing for a while. With page_id it is one page: the same numbers, the week before, and its download
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_id | string | no | The app's id in Pagefully (a UUID), as analyze_app returned it in app.id. |
| page_id | string | no | One page, by its id. Leave it out for every page of the app. |
The pages Pagefully suggests the app should have and does not: each with a name, a kind, what the page would say, the searches it is for and the reason. These are the suggestions the product already holds (such as a use the app's reviewers raise, or a competitor it follows). Reading them asks nothing of a model and costs nothing. Call it when the person asks what to make next, or after get_results
| Parameter | Type | Required | Notes |
|---|---|---|---|
| app_id | string | yes | The app's id in Pagefully (a UUID), as analyze_app returned it in app.id. |
| locale | string | no | An App Store language, such as en-US. Leave it out for the app's own language. |
For each app on the workspace: its plan (Free, the Pack or Pro, which belong to an app), pages made and allowed, what is left, revisions used for each page, and the address of its plan screen. Also what each plan allows and costs, the scope of the token in use, and the rate limits. Call it before generating when the person asks what they can still make, or after an upgrade_required answer to expla
No parameter schema on file.
Searches the App Screenshot Index: every screenshot of the top 100 free apps in each App Store category (United States), read and tagged by what it does. Needs no account. Use it to see how the leading apps in a category design their screenshots before you plan, write or review a page, and to hold a page against what its category does. Four ways to call it. (1) With nothing: the catalogue, every c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Words to find in what a screenshot says or in the app's name, such as "sleep" or "track your budget". Every word must be present. |
| category | string | no | A category slug from the catalogue, such as health-fitness, finance or music. Leave it out to search every category. |
| app | string | no | One app, by its App Store id or its name. Returns its whole set in order, with what the set does as a whole. If several apps answer to the name, they are listed: call again with the id. |
| tactics | array | no | Tactic keys from the catalogue, such as leads_problem, rating_shown, device_none or set_consistent. A screenshot must carry every one. |
| any_tactics | array | no | Tactic keys of which a screenshot must carry at least one. For tactics that seldom appear together. |
| colour | string | no | The screenshot's main colour family. |
| top_ten_only | boolean | no | Only apps at chart positions one to ten. |
| screenshot_position | integer | no | Only the screenshot at this place in its set. 1 is the first screenshot, the one seen in search results. |
| detail | string | no | "compact" returns tactic keys only and leaves out the count by category, so up to 80 screenshots fit in one answer. "full" unless set. |
| limit | integer | no | How many screenshots to return. 12 unless set; 30 at most in full detail, 80 in compact. |
| offset | integer | no | How many matches to skip, to read the next page of a long answer. |
| with_images | boolean | no | Also return the first 8 pictures as small images, for a client that can look at them. They are the developers' own screenshots, from Apple's servers. |
Reads a set of screenshots with the App Screenshot Index's own reader and holds it against a category: each screenshot comes back with the same tactic keys search_screenshots uses (with label and group), its words and its colour, and each notable tactic comes back with whether the set has it, which screenshots carry it, and what share of the category's top 100 apps, of its top ten and of the rest
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page_id | string | no | A page made here, by its id: its drawn iPhone screenshots are the set. |
| app_id | string | no | An app on the workspace, by its id in Pagefully: the iPhone screenshots of its listing, as Pagefully holds them, are the set. |
| app_store_url | string | no | A public App Store app, by its address, which ends in id and a number. |
| app_store_id | string | no | A public App Store app, by Apple's id for it. |
| category | string | no | The category to compare with: a slug from search_screenshots, such as health-fitness, finance or music. Leave it out for the app's own. |
| baseline | object | no | A second, older set to compare the first with, named the same way: one of page_id, app_id, app_store_url or app_store_id. The answer then says what changed. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Pagefully or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Pagefully can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.