Skip to main content
Glama

buttonwall-mcp

MCP server for The Button Wall: a 1000×1000 px wall where every rented area is a real, clickable button.

Lets an AI assistant check how full the wall is, quote a button, find free space and create a Stripe checkout link. The agent never pays: the buyer opens the link and pays on Stripe, and every button is reviewed by a person before it goes live (full refund if rejected).

Tools

Tool

What it does

get_wall_status

% claimed, live buttons, pricing and rules

quote_spot

Price for a size and plan, and whether a position is free

find_free_spots

Free positions for a size, nearest to a point first

create_checkout_link

Stripe checkout link for a new button (human pays)

Related MCP server: Interactive MCP

Install

Claude Desktop / Claude Code / Cursor (mcpServers config):

{
  "mcpServers": {
    "buttonwall": { "command": "npx", "args": ["-y", "buttonwall-mcp"] }
  }
}

Claude Code: claude mcp add buttonwall -- npx -y buttonwall-mcp

Pricing

€0.10 per pixel per 30 days (10×10 px = €10). 6 months −10%, 12 months −20%. Prepaid, never auto-renews.

Example prompts

  • "How full is The Button Wall right now?"

  • "Find me a free 120×40 spot near the centre and tell me what 6 months costs."

  • "Put a button for my SaaS on The Button Wall: text 'Try Acme free', link https://acme.dev, brand colour #ff5a1f."

Limits

Checkout links are rate-limited to 10 per 10 minutes per IP. The server uses the same public, read-only endpoints as thebuttonwall.com.

License

MIT

Available Tools

4 tools
find_free_spotsFind free spotsB
Read-only

Free positions that fit a button of the given size, nearest to a preferred point first (default: the centre of the wall).

NameRequiredDescriptionDefault
limitNo
width_pxYes
height_pxYes
near_x_pxNo
near_y_pxNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral detail about ordering results nearest to a preferred point first, defaulting to the centre of the wall. However, it does not disclose pagination behavior, result shape, or whether the search is exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence with no filler. The essential scoping information and default behavior are stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should explain what a returned free position looks like and how limit affects the result set. It conveys the core search semantics but leaves return format and limit behavior ambiguous for an agent that must consume the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps width_px/height_px to the button size and near_x_px/near_y_px to the preferred point with a centre default, which adds real semantic value. But it does not explain the limit parameter or clarify coordinate units and bounds beyond what the raw schema already shows.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb-resource pair: finding free positions that fit a given button size. It clearly describes a search operation for available placement locations, which distinguishes it from sibling tools like get_wall_status and create_checkout_link, though it does not explicitly contrast with quote_spot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is used to locate free placement spots, but provides no explicit when-to-use guidance, prerequisites, or alternatives. There is no indication of when to choose this tool over quote_spot or get_wall_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_wall_statusWall statusA
Read-only

How full The Button Wall is right now, plus pricing rules. The wall is 1000×1000 px; spots are rented in 10×10 px blocks.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true and openWorldHint=true, so safety is covered. The description earns credit for adding what the payload conceptually contains (occupancy plus pricing rules) and the wall geometry (1000×1000 px, 10×10 px blocks), which helps an agent interpret the numbers, though it doesn't state freshness guarantees beyond 'right now'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the primary function front-loaded and the geometric context following as support. Nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must sketch returns, and it does: fullness and pricing rules plus the block sizing needed to interpret them. It could go further on pricing units/currency and the shape of the occupancy figure, but it is sufficient for a zero-parameter status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The geometry sentence usefully frames the units a caller will encounter in the response.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (The Button Wall) and states the two things returned: current fullness and pricing rules. This is clear enough to call correctly, but it doesn't differentiate the 'pricing rules' portion from the sibling quote_spot, leaving a small ambiguity an agent must resolve by inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can guess this is the orientation call to make before quoting or buying, but the description never says when to prefer it over find_free_spots or quote_spot. No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_spotQuote a buttonB
Read-only

Price for a button of a given size and plan, and whether that exact position is free.

NameRequiredDescriptionDefault
planYes1m = 30 days, 6m = 180 days (−10%), 12m = 360 days (−20%)
x_pxNoLeft edge in px (multiple of 10). Omit to only get the price.
y_pxNoTop edge in px (multiple of 10).
width_pxYes
height_pxYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true and openWorldHint=true already tell the agent this is a non-mutating, externally-priced query, so the bar is lower. The description usefully discloses the dual return (price + whether the position is free), but says nothing about currency, billing period implied by the price, whether a quoted price is held/reserved, or any rate limits on an open-world pricing call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, leading with the price outcome and appending the availability outcome. Slightly awkward phrasing ('Price for a button... and whether that exact position is free') but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, read-only pricing tool with no output schema, the description covers both outputs at a high level, which is the minimum an agent needs. It still leaves gaps on price units/currency and on the x_px/y_px pairing rule that determines whether an availability answer is returned at all.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 60%, and width_px/height_px carry no descriptions at all (height_px is only a $ref). The description reinforces that size and plan drive the price and that position determines the availability answer, but it adds no detail beyond the schema's own enum discount note and the 'omit x_px to only get the price' hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific action (quote a price) on a specific resource (a button of given size and plan) plus an availability check at that exact position. This implicitly separates it from find_free_spots (searching for free areas) and create_checkout_link (purchasing), but the description never names those siblings, so the differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can guess this is the tool for pricing a known size/position versus find_free_spots for discovering available areas. There is no explicit when-to-use, when-not-to-use, or named alternative, and no statement that this is the pre-purchase step before create_checkout_link.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 4 tool updatesv0.1.1
    • First observedcreate_checkout_link
    • First observedfind_free_spots
    • First observedget_wall_status
    • First observedquote_spot

TDQS

A3.8/5.0

Scored across 4 tools

Disambiguation4/5

The four tools target distinct steps in the purchase flow, but quote_spot (price + exact availability) overlaps with find_free_spots (available positions) and get_wall_status (fullness + pricing rules). Descriptions help clarify boundaries, but an agent could still hesitate between quote_spot and find_free_spots when checking a specific location.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: create_checkout_link, get_wall_status, quote_spot, find_free_spots. The convention is predictable and readable throughout.

Tool Count5/5

Four tools form a tight, purposeful set for a niche purchasing workflow: discovery (find_free_spots), pricing/availability (quote_spot), context (get_wall_status), and purchase initiation (create_checkout_link). Nothing feels redundant or missing from the core flow.

Completeness4/5

The surface covers the essential pre-purchase and checkout steps, but lacks post-purchase operations such as checking order/review status or viewing one's existing buttons. These are minor gaps an agent can work around or that may be intentionally out of scope.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with users via Telegram to request decisions, approvals, or specific input through text and clickable buttons. This facilitates a human-in-the-loop workflow where the AI can pause for feedback or send status notifications during long-running tasks.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to request user input through interactive popups in VS Code, supporting button selections, text inputs, and confirmation dialogs. This system allows for seamless human-in-the-loop interactions without interrupting the conversational flow.
    4
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to display messages on a Vestaboard via text or board mode with color and symbol support.
    11
    -
  • A
    license
    A
    quality
    C
    maintenance
    Interactive feedback layer that lets users pin comments on live web apps with auto-captured context (failing requests, console, AI metadata), and coding agents fix issues via MCP, turning pins green upon verification.
    10
    71 npm
    MIT