Koskamo

AB5D MCP

Provides sourced artist dossiers, AB[500] project identity, dated on-chain holding duration (oTDH) snapshots, artist-specific collector registers, public archive decisions, and current agent-program state for the first 500 Art Blocks projects.

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.

AB5D MCP logo, by maxand98Community listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by maxand98
MCP endpoint (Streamable HTTP)
https://ab5d.xyz/mcp
Vendor documentation

What its tools do

21 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

21 of 21 have a description · 21 of 21 declare behavior hints · 4 of 16 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve sourced artist dossiers and verified bibliographies
  • Access dated on-chain holding duration snapshots
  • Query artist-specific collector TDH registers
  • Check current agent-program state and contribution receipts

Source and maintenance

Community listingRegistry 1.2.0
Maintenance checked

Protocol and capabilities

Server
ab500-research 1.4.0
MCP protocol negotiated in check
2025-06-18
Tools
21 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.

Read-only AB500 research, public collecting records and indexed asking-price comparisons. Discover available tools. Prices are not investment valuations. Casting and apps return handoffs, not executed device actions. Cite source dates and URLs. Begin bounty work only when the returned task status is open.

Tools

21 advertised

list_dossiers — List artist dossiers
Advertised by the server during the last successful anonymous check.
Advertised read-only

List every published AB[500] artist dossier (name, slug, subtitle, editions, tier, updated date). Use it to see which artists have a published biography.

list_dossiers input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_dossiers annotations
{
  "title": "List artist dossiers",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_artists — Search artists
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search AB[500] artist dossiers by name or keyword; returns matching artists with their slugs. Use before get_dossier when you don't know the exact slug.

search_artists input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Name or keyword, e.g. 'Fidenza' or 'tyler'"
    }
  },
  "additionalProperties": false
}
search_artists annotations
{
  "title": "Search artists",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_dossier — Get artist dossier
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one artist's full structured biography by slug: subtitle, essay prose (markdown), identity (born/based/practice), works, images, and the verified bibliography with source URLs. Prose is CC0.

get_dossier input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Artist slug from list_dossiers/search_artists, e.g. 'tyler-hobbs'"
    }
  },
  "additionalProperties": false
}
get_dossier annotations
{
  "title": "Get artist dossier",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_otdh_methodology — Get oTDH methodology
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the definition, formulas, full-universe coverage, limitations, discussion URL, and snapshot metadata for AB5D's artist-level Oeuvre Total Days Held metric.

get_otdh_methodology input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_otdh_methodology annotations
{
  "title": "Get oTDH methodology",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_artist_otdh — List artist oTDH rankings
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the ranked oTDH records for all 308 AB[500] artists, or a limited leading subset. oTDH (out of 1,000) is a price-independent signal of how much of each work's life its current collector has held it, neutral to edition size, project count and release date.

list_artist_otdh input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 308,
      "minimum": 1
    }
  },
  "additionalProperties": false
}
list_artist_otdh annotations
{
  "title": "List artist oTDH rankings",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_artist_otdh — Get artist oTDH
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one artist's oTDH rank, score, collector breadth, raw collector-days, project count, and snapshot metadata by AB5D artist slug.

get_artist_otdh input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "AB5D artist slug, e.g. 'tyler-hobbs'"
    }
  },
  "additionalProperties": false
}
get_artist_otdh annotations
{
  "title": "Get artist oTDH",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_artist_collector_tdh — List artist collector TDH registers
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all 308 artist-specific collector TDH dashboard records, including each metric label, route, data URL and verified or pending source status.

list_artist_collector_tdh input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_artist_collector_tdh annotations
{
  "title": "List artist collector TDH registers",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_artist_collector_tdh — Get artist collector TDH register
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one artist-specific collector TDH register by AB5D artist slug. Collector rows are paginated because large Raster-indexed oeuvres can contain thousands of current addresses.

get_artist_collector_tdh input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "AB5D artist slug, e.g. 'casey-reas'"
    },
    "limit": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
get_artist_collector_tdh annotations
{
  "title": "Get artist collector TDH register",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_open_bounties — List open bounties
Advertised by the server during the last successful anonymous check.
Advertised read-only

List every AB5D bounty that is currently open for claim, including reward, eligibility, claim route, submission route, protocol, and acceptance command. Only returned tasks are current offers.

list_open_bounties input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_open_bounties annotations
{
  "title": "List open bounties",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_bounty — Get bounty
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one AB5D bounty task by identifier, including its current status and operational routes. Do not begin work unless the returned status is open.

get_bounty input schema
{
  "type": "object",
  "required": [
    "task_id"
  ],
  "properties": {
    "task_id": {
      "type": "string",
      "description": "Task identifier from list_open_bounties, e.g. 'MA-CAL-CT-01'"
    }
  },
  "additionalProperties": false
}
get_bounty annotations
{
  "title": "Get bounty",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_projects — Search projects
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find AB[500] artworks and series by title or artist. Returns canonical links and native app handoffs.

search_projects input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "default": "",
      "maxLength": 200,
      "minLength": 0
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 100000,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
search_projects output schema
{
  "type": "object",
  "additionalProperties": true
}
search_projects annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_project — Get project
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read one canonical project with links to its published essay, artist dossiers and artwork license.

get_project input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]{0,180}$",
      "maxLength": 200,
      "minLength": 1
    }
  },
  "additionalProperties": false
}
get_project output schema
{
  "type": "object",
  "additionalProperties": true
}
get_project annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_artwork — Get artwork
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Look up a minted edition through the existing artwork API. Returns render and indexed public owner with timestamp, not full transfer history.

get_artwork input schema
{
  "type": "object",
  "required": [
    "slug",
    "edition"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]{0,180}$",
      "maxLength": 200,
      "minLength": 1
    },
    "edition": {
      "type": "integer",
      "maximum": 999999,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
get_artwork output schema
{
  "type": "object",
  "additionalProperties": true
}
get_artwork annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
find_acquisition_opportunities — Find acquisition opportunities
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Rank indexed AB[500] asks by ETH per added percentage point of edition ownership. Excludes linked owner wallets and stops before a 50% asking-price jump. Prices are unverified, gas excluded; each row is a budget alternative, not a basket.

find_acquisition_opportunities input schema
{
  "type": "object",
  "required": [
    "budget"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "budget": {
      "type": "number",
      "minimum": 0.000001
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 100000,
      "minimum": 0
    },
    "profile": {
      "type": "string",
      "default": "ab5d",
      "maxLength": 300,
      "minLength": 1,
      "description": "ENS name, Ethereum wallet address, Art Blocks profile URL, username or unique display name."
    }
  },
  "additionalProperties": false
}
find_acquisition_opportunities output schema
{
  "type": "object",
  "additionalProperties": true
}
find_acquisition_opportunities annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_collection_holdings — Get collection holdings
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read AB5D institutional holdings and public credit lines from the existing cache. Reports pending data honestly.

get_collection_holdings input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 100000,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
get_collection_holdings output schema
{
  "type": "object",
  "additionalProperties": true
}
get_collection_holdings annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_public_collectors — Search public collectors
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the already-published collector register. No private account access or inferred identity; wallet arrays are omitted.

search_public_collectors input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 100000,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
search_public_collectors output schema
{
  "type": "object",
  "additionalProperties": true
}
search_public_collectors annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_donor_credits — Get donor credits
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find published accession and donor credit records. Absence is unknown, never an inferred donor.

get_donor_credits input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 100000,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
get_donor_credits output schema
{
  "type": "object",
  "additionalProperties": true
}
get_donor_credits annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_project_prices — Compare project prices
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Compare current indexed ETH/WETH lowest asking prices for up to ten chosen projects. Lowest ask is an affordability comparison, not intrinsic value or a return forecast. No trading.

compare_project_prices input schema
{
  "type": "object",
  "required": [
    "slugs"
  ],
  "properties": {
    "slugs": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-z0-9][a-z0-9-]{0,180}$",
        "maxLength": 200,
        "minLength": 1
      },
      "maxItems": 10,
      "minItems": 1,
      "uniqueItems": true
    },
    "budget_eth": {
      "type": "number",
      "maximum": 1000000,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
compare_project_prices output schema
{
  "type": "object",
  "additionalProperties": true
}
compare_project_prices annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
prepare_artwork_display — Prepare artwork display
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Prepare a verified artwork or series display URL and existing mobile Cast workflow. Does not connect to a TV or start playback.

prepare_artwork_display input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "mode": {
      "enum": [
        "one",
        "series"
      ],
      "type": "string",
      "default": "one"
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]{0,180}$",
      "maxLength": 200,
      "minLength": 1
    },
    "edition": {
      "type": "integer",
      "default": 0,
      "maximum": 999999,
      "minimum": 0
    }
  },
  "additionalProperties": false
}
prepare_artwork_display output schema
{
  "type": "object",
  "additionalProperties": true
}
prepare_artwork_display annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
discover_apps — Discover apps
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find curated AB5D capabilities and apps listed on abx.io. Returns browser/app handoffs, not installation or execution.

discover_apps input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    }
  },
  "additionalProperties": false
}
discover_apps output schema
{
  "type": "object",
  "additionalProperties": true
}
discover_apps annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_abx_service_info — Get ABX service info
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Read the documented ABX public service descriptor. Does not log in, register projects, sign, deploy or create credentials.

get_abx_service_info input schema
{
  "type": "object",
  "required": [],
  "properties": {},
  "additionalProperties": false
}
get_abx_service_info output schema
{
  "type": "object",
  "additionalProperties": true
}
get_abx_service_info annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "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
528 ms
95th percentile latency
528 ms

Maintenance history

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

  • · probe · passed · 528 ms · metadata changed · 21 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 ab5d-mcp https://ab5d.xyz/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 ab5d-mcp --url https://ab5d.xyz/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start ab5d-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "ab5d-mcp": {
      "type": "http",
      "url": "https://ab5d.xyz/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 ab5d-mcp https://ab5d.xyz/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://ab5d.xyz/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": {
    "ab5d-mcp": {
      "serverUrl": "https://ab5d.xyz/mcp"
    }
  }
}

Let your agent find its tools

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