punks.generated.eth MCP
An MCP server for the punks.generated.eth generative art collection on Ethereum. It allows agents to query mint status, quote prices, generate unsigned mint transactions, retrieve token metadata, register punk identities as ERC-8004 agents, and facilitate peer-to-peer trading via Seaport.
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.
https://punks-generated-eth.enspiration-eth.workers.dev/mcpWhat you can do with it
- Generate unsigned mint transactions for generative punks
- Retrieve token metadata and images
- Register a punk as an ERC-8004 agent identity
- Facilitate peer-to-peer trading on Seaport
Source and maintenance
Protocol and capabilities
- Server
- punks.generated.eth 0.1.0
- MCP protocol
- 2025-06-18
- Tools
- 14 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
14 advertised
get_status
Price, supply and contract for punks.generated.eth.
{
"type": "object",
"properties": {}
}quote_mint
Total price in wei for qty punks.
{
"type": "object",
"required": [
"qty"
],
"properties": {
"qty": {
"type": "integer",
"maximum": 10,
"minimum": 1
}
}
}mint
Unsigned mint(qty) transaction plus the x402 URL. The caller signs and sends it, and the punks go to the sending wallet (msg.sender). This server never holds keys or funds. mint(qty) mints to msg.sender. Gas: about 111k units for mint(1) (measured on mainnet), more for each extra punk; about 175k for a free claim. Always run estimateGas, gas price varies.
{
"type": "object",
"required": [
"qty"
],
"properties": {
"qty": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"from": {
"type": "string",
"description": "optional: the wallet you will send from. Only copied into the tx for convenience; the punks always go to the actual sender."
}
}
}confirm_mint
Check a sent mint tx hash and return the token ids it minted.
{
"type": "object",
"required": [
"txHash"
],
"properties": {
"txHash": {
"type": "string"
}
}
}get_token
Owner, traits, seed, image, subname for a token id.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1
}
}
}erc8004_register_punk
ERC-8004 registration file for the owner's agent, using punk #id as its image and id.punks.generated.eth as its ENS name, plus the unsigned register tx for the owner to send.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"mcp": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
}
}
}list_punk
Seaport 1.6 listing for punk #id at an ETH price: EIP-712 typed data for the owner to sign (free), plus the one-time setApprovalForAll tx to the Seaport conduit if missing. Then submit_order.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"seller": {
"type": "string"
},
"priceEth": {
"type": "string",
"description": "e.g. \"0.05\""
},
"priceWei": {
"type": "string"
},
"expiresInSeconds": {
"type": "integer",
"maximum": 31536000,
"minimum": 60,
"description": "default 7 days"
}
}
}make_offer
Seaport 1.6 WETH offer on punk #id, or a collection-wide offer on any punk if id is omitted. Returns typed data to sign plus WETH wrap/approve txs if needed. Then submit_order.
{
"type": "object",
"required": [
"buyer"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"description": "omit for a collection offer"
},
"buyer": {
"type": "string"
},
"priceEth": {
"type": "string"
},
"priceWei": {
"type": "string"
},
"expiresInSeconds": {
"type": "integer",
"maximum": 31536000,
"minimum": 60
}
}
}submit_order
Publish a signed listing or offer. Verifies the signature (EOA or ERC-1271), ownership, conduit approval, WETH balance and allowance before storing it.
{
"type": "object",
"required": [
"order",
"signature"
],
"properties": {
"order": {
"type": "object",
"description": "the order (OrderComponents) from list_punk / make_offer"
},
"signature": {
"type": "string"
}
}
}get_market
Live listings (cheapest first), offers incl. collection offers (highest first) and recent sales, for punk #id (with its traits) or the whole collection. Every order is re-checked on-chain; stale ones are skipped.
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
}
}
}accept
Unsigned Seaport fulfillAdvancedOrder tx to buy a listing or sell into an offer (tokenId required for a collection offer), simulated, plus any approvals the fulfiller still needs.
{
"type": "object",
"required": [
"orderHash",
"fulfiller"
],
"properties": {
"tokenId": {
"type": "integer",
"minimum": 1
},
"fulfiller": {
"type": "string"
},
"orderHash": {
"type": "string"
}
}
}cancel_order
Unsigned Seaport cancel tx for one of your orders. Only the offerer can send it.
{
"type": "object",
"required": [
"orderHash"
],
"properties": {
"orderHash": {
"type": "string"
}
}
}leave_feedback
Optional, after a mint: unsigned ERC-8004 Reputation Registry giveFeedback tx rating this agent 0 to 100 (tag1 starred). Only send it if your wallet owner agrees. Costs gas, no ETH goes to us.
{
"type": "object",
"required": [
"score"
],
"properties": {
"from": {
"type": "string",
"description": "wallet that will send it (must not be the agent owner)"
},
"tag2": {
"type": "string",
"description": "what you rate, default mint"
},
"score": {
"type": "integer",
"maximum": 100,
"minimum": 0
}
}
}resolve_subname
Resolve <id>.punks.generated.eth (or any ENS name) to address, avatar and url.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}Prompts
Not advertised
Resources
Not advertised
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
- 320 ms
- 95th percentile latency
- 320 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 320 ms · metadata changed · 14 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http punks-generated-eth-mcp https://punks-generated-eth.enspiration-eth.workers.dev/mcpCodex
codex mcp add punks-generated-eth-mcp --url https://punks-generated-eth.enspiration-eth.workers.dev/mcpCursor
{
"mcpServers": {
"punks-generated-eth-mcp": {
"url": "https://punks-generated-eth.enspiration-eth.workers.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"punks-generated-eth-mcp": {
"type": "streamableHttp",
"url": "https://punks-generated-eth.enspiration-eth.workers.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"punks-generated-eth-mcp": {
"type": "http",
"url": "https://punks-generated-eth.enspiration-eth.workers.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http punks-generated-eth-mcp https://punks-generated-eth.enspiration-eth.workers.dev/mcpClaude Desktop
{
"mcpServers": {
"punks-generated-eth-mcp": {
"url": "https://punks-generated-eth.enspiration-eth.workers.dev/mcp"
}
}
}Windsurf
{
"mcpServers": {
"punks-generated-eth-mcp": {
"serverUrl": "https://punks-generated-eth.enspiration-eth.workers.dev/mcp"
}
}
}Let your agent find its tools
Find servers like punks.generated.eth MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.