Server definition
- Hash
- sha256:ffdb38cda388c871b9c5d7de1e6b17e45f3d9610669c4acf92a7905ef58f311b
- What it is
- What a remote MCP server returned when asked what it offers: 11 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "List all CryptoPunk traits with their counts. Optionally filter by type to see how many punks of that type have each trait. Rate limit: 10 per 10 min (read bucket — shared with browse_types, get_punk_details, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"type": {
"description": "Filter counts to a specific type (e.g. 'Male', 'Zombie')",
"type": "string"
}
},
"type": "object"
},
"name": "browse_traits",
"outputSchema": null
},
{
"description": "List all CryptoPunk type categories with their counts. Rate limit: 10 per 10 min (read bucket — shared with browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "browse_types",
"outputSchema": null
},
{
"description": "Compute the Merkle root for a set of CryptoPunk IDs. The root matches the on-chain Solady MerkleProofLib encoding used by the Stash contract. Rate limit: 5 per 10 min (compute bucket — shared with filter_punks, resolve_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"punkIds": {
"description": "Punk IDs to include in the Merkle tree (1-10000)",
"items": {
"maximum": 9999,
"minimum": 0,
"type": "integer"
},
"maxItems": 10000,
"minItems": 1,
"type": "array"
}
},
"required": [
"punkIds"
],
"type": "object"
},
"name": "compute_merkle_root",
"outputSchema": null
},
{
"description": "Filter CryptoPunks by type and traits. Returns matching punk IDs and their Merkle root. Rate limit: 5 per 10 min (compute bucket — shared with compute_merkle_root, resolve_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"excludedTraits": {
"description": "Traits to exclude",
"items": {
"type": "string"
},
"type": "array"
},
"includedTraits": {
"description": "Traits to include",
"items": {
"type": "string"
},
"type": "array"
},
"matchMode": {
"default": "all",
"description": "'all' = punk must have every included trait, 'any' = at least one",
"enum": [
"all",
"any"
],
"type": "string"
},
"types": {
"description": "Type names to include (e.g. ['Male', 'Zombie']). Empty = all types.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "filter_punks",
"outputSchema": null
},
{
"description": "Analyze market data and recommend a bid price range for a CryptoPunk trait selection. Combines floor price, competing bids, and set composition into actionable guidance. `composition` lists only the traits that define the selection; use `absentTraits` for a full exclusion list when needed. Rate limit: 1 per 1 min (recommend bucket).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"excludedTraits": {
"description": "Traits to exclude",
"items": {
"type": "string"
},
"type": "array"
},
"includedTraits": {
"description": "Traits to include",
"items": {
"type": "string"
},
"type": "array"
},
"matchMode": {
"default": "all",
"enum": [
"all",
"any"
],
"type": "string"
},
"punkIds": {
"description": "Explicit punk IDs (overrides trait filters)",
"items": {
"maximum": 9999,
"minimum": 0,
"type": "integer"
},
"type": "array"
},
"types": {
"description": "Type names to filter (e.g. ['Male', 'Zombie'])",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "get_bid_recommendation",
"outputSchema": null
},
{
"description": "Get pending EIP-712 bids matching a specific Merkle root. Useful for seeing competition on a trait-based bid set. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_punk).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"default": 5,
"description": "Max bids to return (default 5)",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"merkleRoot": {
"description": "Merkle root (0x-prefixed, 32 bytes hex)",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"merkleRoot"
],
"type": "object"
},
"name": "get_bids_for_merkle_root",
"outputSchema": null
},
{
"description": "Get pending EIP-712 bids that include a specific CryptoPunk. Returns bids from the CryptoPunks Bids API. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"default": 5,
"description": "Max bids to return (default 5)",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"punkId": {
"description": "Punk ID to look up bids for",
"maximum": 9999,
"minimum": 0,
"type": "integer"
}
},
"required": [
"punkId"
],
"type": "object"
},
"name": "get_bids_for_punk",
"outputSchema": null
},
{
"description": "Get the current floor ask price from the native CryptoPunks marketplace. Excludes restricted (onlySellTo) and zero-value listings. Returns `totalActive` (same denominator as get_listings). Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_bids_for_punk, get_bids_for_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "get_floor_price",
"outputSchema": null
},
{
"description": "Get currently listed CryptoPunks from the native marketplace. By default returns only publicly buyable listings (excludes restricted onlySellTo and zero-value entries); pass `includeRestricted: true` to include private bundle sales. Optionally filter by price range. Returns `totalActive` (publicly buyable listings, same denominator as get_floor_price) and `matchedCount` (after your filters). Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"includeRestricted": {
"default": false,
"description": "Include restricted (onlySellTo) and zero-value listings. Default false — matches get_floor_price.",
"type": "boolean"
},
"limit": {
"default": 50,
"description": "Max results (default 50)",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"maxPriceEth": {
"description": "Maximum price in ETH",
"type": "number"
},
"minPriceEth": {
"description": "Minimum price in ETH",
"type": "number"
}
},
"type": "object"
},
"name": "get_listings",
"outputSchema": null
},
{
"description": "Get metadata for specific CryptoPunks: type, traits with rarity percentages, and permalink. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"punkIds": {
"description": "Punk IDs to look up (1-100)",
"items": {
"maximum": 9999,
"minimum": 0,
"type": "integer"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"punkIds"
],
"type": "object"
},
"name": "get_punk_details",
"outputSchema": null
},
{
"description": "Reverse-engineer a Merkle root back to its punk IDs and inferred trait selection. ONLY works for roots that already have at least one bid in the CryptoPunks Bids API — this tool looks bids up by root, then derives trait config from the resulting punk set. Returns `resolved: false` for unknown roots; constructing a root locally and passing it here will not work. Rate limit: 5 per 10 min (compute bucket — shared with filter_punks, compute_merkle_root).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"merkleRoot": {
"description": "Merkle root to resolve (0x-prefixed, 32 bytes hex)",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"merkleRoot"
],
"type": "object"
},
"name": "resolve_merkle_root",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:ffdb38cda388c871b9c5d7de1e6b17e45f3d9610669c4acf92a7905ef58f311b | sha256sum