Koskamo

Canvas64 MCP

An official Model Context Protocol server for Canvas64, a public wall of 64 ad cells on the Base blockchain. It allows AI agents to read cell ownership, prices, and rules, and to prepare purchase transactions for users to sign with their own wallets, facilitating the buying and selling of digital ad space without requiring the agent to hold keys.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Canvas64 MCP logo, by Canvas64Vendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Canvas64
MCP endpoint (Streamable HTTP)
https://canvas64.com/api/mcp
Vendor documentation

What you can do with it

  • Retrieve the status and price of all 64 cells on the wall
  • Get detailed information and buyout pricing for a specific cell
  • Calculate future prices and royalties for any step in the price ladder
  • Prepare unsigned transaction data for purchasing a cell

Source and maintenance

Vendor evidenceRegistry 1.0.0-rc42

Protocol and capabilities

Server
canvas64 1.0.0-rc44
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Canvas64 is a public wall of 64 ad cells on Base, paid in USDC, with a royalty to every earlier owner on every later sale. Read the wall, a cell or the price model here. To buy, prepare_buy gives the unsigned transactions for the person's own wallet to sign, or send the person to the cell's url, where their wallet pays in the browser. Never ask anyone for a private key or a recovery phrase.

Tools

5 advertised

get_wall — Read the wall
Advertised by the server during the last successful anonymous check.
Advertised read-only

All 64 cells of the Canvas64 wall, A1 to H8: who owns each (name and wallet), its step, what it was bought for, what buying it out costs now, and the owner's links. Use it to find free cells, the cheapest cell, the priciest cells or a creator on the wall.

get_wall input schema
{
  "type": "object",
  "properties": {
    "filter": {
      "enum": [
        "all",
        "free",
        "taken"
      ],
      "type": "string",
      "description": "Which cells; all by default."
    }
  },
  "additionalProperties": false
}
get_wall annotations
{
  "title": "Read the wall",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_cell — Read one cell
Advertised by the server during the last successful anonymous check.
Advertised read-only

One cell by its address (A1 to H8): owner, step, price paid, the price to claim or buy it out now, what the buyer gets when they are bought out in turn, their royalty after that, and the link where a person buys it with their own wallet.

get_cell input schema
{
  "type": "object",
  "required": [
    "cell"
  ],
  "properties": {
    "cell": {
      "type": "string",
      "pattern": "^[A-Ha-h][1-8]$",
      "description": "The cell's address, such as D4."
    }
  },
  "additionalProperties": false
}
get_cell annotations
{
  "title": "Read one cell",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
quote — Price a step
Advertised by the server during the last successful anonymous check.
Advertised read-only

The Canvas64 price model for one step of any cell: its price, what its owner gets when bought out, their royalty on every later sale, and optionally how much that royalty has paid once the cell reaches a later step. Prices rise 1.65x per step from $30, with no cap.

quote input schema
{
  "type": "object",
  "required": [
    "step"
  ],
  "properties": {
    "step": {
      "type": "integer",
      "maximum": 60,
      "minimum": 1,
      "description": "The purchase number; 1 is a claim of a free cell."
    },
    "until": {
      "type": "integer",
      "maximum": 60,
      "minimum": 1,
      "description": "Optional: a later step, to sum the royalty earned up to it."
    }
  },
  "additionalProperties": false
}
quote annotations
{
  "title": "Price a step",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
prepare_buy — Prepare a purchase
Advertised by the server during the last successful anonymous check.
Advertised read-only

Prepares the purchase of one cell (A1 to H8) for the buyer's own wallet: the price read from the contract now, and the unsigned transactions on Base that the wallet signs and sends in order, a USDC approval of the exact price (left out when the wallet already allows it) and the purchase. Canvas64 never holds a key and sends nothing. Give the wallet address to check its USDC and allowance first. If someone buys the cell before the transaction lands, it fails and nothing is charged; prepare again.

prepare_buy input schema
{
  "type": "object",
  "required": [
    "cell"
  ],
  "properties": {
    "cell": {
      "type": "string",
      "pattern": "^[A-Ha-h][1-8]$",
      "description": "The cell's address, such as D4."
    },
    "wallet": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Optional: the buyer's wallet address, to check its USDC balance and allowance."
    }
  },
  "additionalProperties": false
}
prepare_buy annotations
{
  "title": "Prepare a purchase",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_rules — The rules
Advertised by the server during the last successful anonymous check.
Advertised read-only

The rules of Canvas64 in a few quotable sentences: the price formula, the payout, the royalty, the contract and network, the services a cell links to, the audit status and the docs.

get_rules input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_rules annotations
{
  "title": "The rules",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
383 ms
95th percentile latency
383 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 383 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http canvas64-mcp https://canvas64.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add canvas64-mcp --url https://canvas64.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable canvas64-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "canvas64-mcp": {
      "url": "https://canvas64.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "canvas64-mcp": {
      "type": "streamableHttp",
      "url": "https://canvas64.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start canvas64-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "canvas64-mcp": {
      "type": "http",
      "url": "https://canvas64.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http canvas64-mcp https://canvas64.com/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "canvas64-mcp": {
      "url": "https://canvas64.com/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "canvas64-mcp": {
      "serverUrl": "https://canvas64.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Canvas64 MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Canvas64 MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing