Point Claude, Claude Code, Cursor or any other MCP client at the Market4 server and run your apps by chat: write and publish changelogs and blog posts, draft social posts, check what is still missing, read your traffic and search performance. 149 tools over the same core the panel and the REST API use.
The server speaks Streamable HTTP at one address:
{MCP_PUBLIC_URL}/mcpclaude mcp add --transport http last-market {MCP_PUBLIC_URL}/mcpOr commit it to the project, in .mcp.json:
{
"mcpServers": {
"last-market": {
"type": "http",
"url": "{MCP_PUBLIC_URL}/mcp"
}
}
}Go to Settings → Connectors → Add custom connector and paste the endpoint address. Claude opens the browser sign-in the first time you use it and keeps the grant for the workspace.
Add it to .cursor/mcp.json for one project, or ~/.cursor/mcp.json for all of them:
{
"mcpServers": {
"last-market": {
"url": "{MCP_PUBLIC_URL}/mcp"
}
}
}There is nothing to paste. The server is an OAuth 2.1 authorization server and MCP clients run the whole flow themselves:
/register and reads the server’s metadata from /.well-known/oauth-authorization-server.The tools act as you, not as a scoped key
The server publishes 10 prompts — starting points that already know which tools to reach for. In Claude Code they are slash commands; in Claude Desktop they are in the prompt picker.
| Prompt | What it does |
|---|---|
write_blog_post | Research a keyword, then draft an SEO blog post. Nothing is published without asking |
write_changelog | Turn a list of changes into a changelog entry, in the voice of your previous ones |
social_from_changelog | Turn a published entry into per-platform drafts. Nothing is scheduled without asking |
seo_report | Which queries get impressions but no clicks, which pages are not indexed, and what to do |
weekly_report | Traffic, search and social for the last seven days against the week before |
finish_setup | Check what is connected and walk through what is not, with a panel link per step |
review_this_week | Read every inference across search, analytics, Tag Manager and social, and come back with the three things actually worth doing — with the numbers behind each |
explain_traffic_drop | Take one page or query that fell, and work out whether it is a ranking loss, a demand loss, a measurement break — or nothing at all |
apply_insight | Take one insight by id and draft the change it asks for — a rewritten title, a social post, a configuration request. Nothing is applied without asking |
social_performance_review | What the per-post, per-channel history says about where and when to post — including, explicitly, when it says nothing yet |
Grouped by what you are trying to do. You never call these by name — you describe what you want and the assistant picks — so read this as “can it do X”, not as an API.
list_appsget_appcreate_appupdate_appget_brand_kitupdate_brand_kitupdate_brand_visuallist_pending_approvalsapproverejectcheck_readinessget_setup_guideget_platform_rulesget_media_recipelist_changelogscreate_changelogupdate_changelogget_changelog_outlinepublish_changeloglist_subscriberscreate_blog_postupdate_blog_postget_blog_post_outlinepreview_blog_markdownpreview_blog_post_updateget_blog_post_historyrestore_blog_post_revisioncheck_contentcheck_originalitypublish_blog_postunpublish_blog_postarchive_blog_postget_blogupdate_blog_settingsrequest_blog_post_emailexport_blog_postplan_archive_importregister_claimmanage_claimlist_claimsattach_claimslist_feedbackget_feedbackupdate_feedbackreply_to_feedbackget_footerupdate_footerget_llms_txtupdate_llms_txtlist_buffer_accountsadd_buffer_accountsync_buffer_accountassign_buffer_channellist_channelsdraft_postschedule_postlist_postsdelete_postget_post_statsget_platform_policiesget_trafficget_realtime_visitorsanalytics_report_catalogueanalytics_reportanalytics_report_bundleanalytics_ai_referralsanalytics_cohort_reportanalytics_funnel_reportanalytics_quotasetup_analyticsget_analytics_configupdate_analytics_configget_appfor_connectiondisconnect_appfor_connectionsearch_performanceget_search_performancesearch_index_statuslist_search_console_sitessearch_sitemapssubmit_sitemapget_gtm_configupdate_gtm_configserpapi_searchserpapi_autocompleteserpapi_more_questionsserpapi_locationsserpapi_stored_searchesserpapi_rank_historyserpapi_usageserpapi_check_quotaanalyze_keywordsplan_keyword_sweeprequest_keyword_sweeprun_keyword_sweepcreate_content_brieflist_content_briefsdecide_content_briefget_indexnow_statuscheck_indexnow_keysubmit_indexnow_urlsget_ai_crawlersget_search_enginesget_bing_performanceget_yandex_healthaudit_sitemaprun_index_sweepexplain_not_indexedaudit_internal_linkssync_blog_scorecardsget_blog_scorecardget_blog_learningsset_goallist_goalsupdate_goallist_next_actionsdecide_next_actionpreflight_urlspreflight_blog_urlsgenerate_og_cardgenerate_chart_cardgenerate_feature_cardaudit_robots_txtget_site_profileupdate_site_profilegenerate_structured_datacheck_structured_datacheck_structured_data_driftrun_pagespeedget_pagespeedget_campaignsupdate_campaign_taxonomybuild_campaign_urltrack_keywordlist_keywordsupdate_keywordarchive_keywordget_keyword_performanceget_insightsget_source_insightslist_insight_rulesget_ctr_curveget_social_metricsget_insight_monitorset_insight_monitorrun_insight_scangenerate_imagegenerate_videoget_generation_statusestimate_costAnything that goes public or spends money: publishing, emailing subscribers, scheduling a post, generating an image or video, buying a SERP snapshot.
Reads, drafts and dry runs. A draft is written into your account and published by nothing until you say so.