Skip to main content
Glama
pagerankcafe-mcp

pagerankcafe-mcp

Official

pagerankcafe-mcp

The marketing platform for your AI agents.

An MCP (Model Context Protocol) server for the PageRankCafe API. It gives an AI agent tools to read and post link ads, banner ads, YouTube video ads, and press releases/blog articles on PageRankCafe, check credit and referral balances, read per-placement performance, and (on paid tiers) pull platform-wide ad performance insights.

Getting a key

  1. Create a PageRankCafe account at https://pagerankcafe.com.

  2. Upgrade to a paid membership (Bronze/Silver/Gold) at https://pagerankcafe.com/membership-info if you want to use the write and insights tools. Read tools work on a free account too.

  3. Generate an API key at https://pagerankcafe.com/apiKeys.

Account creation and key generation are both manual, human steps on the website — there is no programmatic signup.

Related MCP server: flour-ads

Configuration

The server reads its configuration from environment variables:

Variable

Required

Default

Description

PAGERANKCAFE_API_KEY

Yes

—

Your API key from /apiKeys. The server exits immediately with an error if this is not set.

PAGERANKCAFE_BASE_URL

No

https://pagerankcafe.com

API base URL. Override only for testing against a non-production environment.

Install

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "pagerankcafe": {
      "command": "npx",
      "args": ["-y", "pagerankcafe-mcp"],
      "env": {
        "PAGERANKCAFE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code

claude mcp add pagerankcafe --env PAGERANKCAFE_API_KEY=your-api-key-here -- npx -y pagerankcafe-mcp

Cursor

Add to your Cursor MCP settings (~/.cursor/mcp.json or the project's .cursor/mcp.json):

{
  "mcpServers": {
    "pagerankcafe": {
      "command": "npx",
      "args": ["-y", "pagerankcafe-mcp"],
      "env": {
        "PAGERANKCAFE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Tools

Every write tool and the insights tool require a paid membership (Bronze/Silver/Gold); the API returns an error for free accounts. Read tools work on any valid key, including free accounts.

Tool

Membership

Description

health

Free

Checks API connectivity and returns the authenticated user's username and membership status.

list_links

Free

Lists your active link ads.

list_banners

Free

Lists your active banner ads.

list_youtube_ads

Free

Lists your active YouTube video ads.

list_press_releases

Free

Lists your active press releases / blog articles.

get_credits

Free

Returns your credit balance, available post slots, links viewed, and links remaining.

get_referral_stats

Free

Returns your referral counts (today, 7 day, 30 day, all time).

list_posts

Free

Returns per-placement performance for link, banner, YouTube, or press-release ads.

upload_image

Paid

Uploads an image (local file path or base64) and returns a hosted HTTPS URL.

create_banner

Paid

Creates a new banner ad.

post_banner

Paid

Posts an existing banner into rotation using credits.

create_youtube_ad

Paid

Creates a new YouTube video ad.

update_youtube_ad

Paid

Partially updates an existing YouTube ad you own.

create_press_release

Paid

Creates a new press release / blog article.

update_press_release

Paid

Partially updates an existing press release you own.

post_press_release

Paid

Posts an existing press release to the home-page widget using credits.

create_link

Paid

Creates a new link ad.

post_link

Paid

Posts an existing link ad into rotation using credits (free/credit posts only: ad_days must be 0; view_time/view_credits are derived server-side from icon/bold/double_time, not accepted as input). Returns status: "active" when the post goes live immediately, or status: "pending" (with an explanatory message) when the posting user needs approval first.

get_platform_insights

Paid

Trailing-30-day platform performance aggregates by ad type and option, plus current prices.

Full request/response detail for each underlying endpoint is in the OpenAPI spec at https://pagerankcafe.com/api/spec (rendered at https://pagerankcafe.com/api/docs).

Error handling

Every tool returns the API's JSON response as the tool result on success. On a non-2xx API response, the tool returns an MCP tool error (isError: true) carrying the API's error message. There are no retries and no silent fallbacks — a failed call always surfaces as a failed tool call.

Development

npm install
npm run build   # compiles src/ to dist/ with tsc
npm test        # builds, then runs the stdio smoke test (no network required)

The test starts the built server as a subprocess over stdio (using StdioClientTransport from @modelcontextprotocol/sdk), lists its tools, and checks the full tool list is present — no real API key or network access is used.

Available Tools

19 tools
create_bannerCreate a bannerA

Creates a new banner ad. The image URL must be HTTPS and match a supported dimension; the ad location is detected automatically from the image size. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: url (required), title (required), url_target (required).

create_press_releaseCreate a press releaseA

Creates a new press release / blog article. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: url (required), body (required), slug (required), intro (required), +2 more.

create_youtube_adCreate a YouTube adA

Creates a new YouTube video ad; the video ID is derived automatically from the link. Creating with status 1 (default) emails your followers once, ever, per video - pass status 0 to create it silently as Disabled. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: title (required), youtube_link (required), status, description.

get_creditsGet credit balanceA

Returns available credits, available post slots, links viewed, and links remaining for the authenticated user. Does not require a paid membership; available to free accounts too.

Inputs: no named parameters.

get_platform_insightsGet platform insightsA

Returns trailing-30-day platform performance aggregates: banners by location (active placements, impressions/placement/day, average CTR), links by option bucket (icon/bold/view_time/view_credits: active placements, average views/placement/day), YouTube ads (active placements, average impressions/placement/day), press releases (active placements, average views/article/day), platform daily total views, and current credit/cash prices and tier discounts. Aggregates only, no per-member data. Cached for one hour. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: no named parameters.

get_referral_statsGet referral statsA

Returns referral counts for today, last 7 days, last 30 days, and all time for the authenticated user. Does not require a paid membership; available to free accounts too.

Inputs: no named parameters.

healthHealth checkA

Checks API connectivity and returns the authenticated user's username and membership status. Does not require a paid membership; available to free accounts too.

Inputs: no named parameters.

list_bannersList bannersA

Returns all active banner ads owned by the authenticated user. Does not require a paid membership; available to free accounts too.

Inputs: no named parameters.

list_postsList ad placement performanceA

Returns one row per ad placement (post) with the performance fields that exist for that ad type: banners (impressions, clicks, ctr, start_date, end_date, days), links (views, view_credits, ad_days, icon, bold, view_time, date_posted), youtube (impressions, start_date, end_date, days), press releases (views, start_date, end_date, days). Does not require a paid membership; available to free accounts too.

Inputs: type (required), status.

list_press_releasesList press releasesA

Returns all active, non-reported press releases / blog articles owned by the authenticated user. Does not require a paid membership; available to free accounts too.

Inputs: no named parameters.

list_youtube_adsList YouTube adsA

Returns all active, non-reported YouTube video ads owned by the authenticated user. Does not require a paid membership; available to free accounts too.

Inputs: no named parameters.

post_bannerPost a banner with creditsA

Posts an existing banner into rotation using credits (paid members: 1-2 days, 10 credits/day). Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: banner_id (required), days.

post_linkPost a link ad with creditsA

Posts an existing link ad into rotation using credits, mirroring the web free-post flow. Sponsored (paid via PayPal/Stripe) posts are not exposed here and stay on the website, so ad_days must be 0. view_time and view_credits are derived server-side from icon/bold/double_time (the same schedule the web free-post form uses) and are not accepted as input, since view_credits is the credit reward funded by other members' views. If the posting user needs approval, the post is created pending and the response reports status "pending" with a message explaining it awaits approval before going live; otherwise it returns status "active". Returns the post id, the derived view_time/view_credits, and remaining credits. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: ad_days (required), link_id (required), bold, icon, +1 more.

post_press_releasePost a press release with creditsA

Posts an existing press release to the home-page widget using credits (paid members: 7 days, 70 credits). Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: press_release_id (required), days.

update_press_releaseUpdate a press releaseA

Partially updates an existing press release you own; only supplied fields change. Setting status to 1 (Active) emails followers, once ever, per article. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: press_release_id (required), url, body, slug, +4 more.

update_youtube_adUpdate a YouTube adA

Partially updates an existing YouTube ad you own; only supplied fields change. Setting status to 1 (Active) emails followers, once ever, per ad. Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: youtube_ad_id (required), title, status, description, +1 more.

upload_imageUpload an imageA

Uploads an image (max 2MB; JPG, PNG, GIF, WEBP) and returns a hosted HTTPS URL for use as a banner image or inline article image. Provide either a local file path or base64 content plus a filename. When type is "banner" the image must match a supported banner dimension (728x90, 300x250, 120x600, 160x600, 468x60, 336x280, 250x250, 851x315, 650x400, 800x82, 234x60, 125x125, 300x200, 120x240, 240x400, 150x60). Requires a paid membership (Bronze/Silver/Gold); returns an error for free accounts.

Inputs: type (required), base64, filename, file_path.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 19 tools

    Disambiguation4/5

    Tools are mostly distinct, but the create_* vs post_* pairs (e.g., create_banner vs post_banner) and the various list_* tools could confuse agents. Descriptions help clarify, but naming alone is not fully unambiguous.

    Naming Consistency5/5

    All tools follow a consistent snake_case verb_noun pattern (list_, get_, create_, update_, post_, upload_). No mixed conventions or irregular naming.

    Tool Count4/5

    19 tools is slightly above the typical 3-15 well-scoped range, but the count is justified by covering multiple ad types (links, banners, YouTube, press releases) plus platform insights.

    Completeness4/5

    The domain is well covered with create/update/list/post operations for each ad type, plus credits, referral stats, and platform insights. Minor gaps like delete operations or update for links/banners exist, but the core workflows are present.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for managing ad campaigns across Google Ads, Meta, and more. Enables deploying campaigns, checking performance, and managing budgets from terminal or AI assistants.
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      An MCP server for the OpenAI Ads (ChatGPT Ads) Advertiser API, providing tools for agent-led performance marketing such as finding dead ads, auditing near-duplicate copy, and auditing ad-group context hints.
      18
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server for the Vibe-Marketer Agent API that enables generating ads, auditing landing pages, and running local preflight checks on ad compliance, with an autonomous agent loop to improve results.
      -