jorkal-nft-mcp
OfficialProvides real-time Solana NFT market data from Magic Eden, including floor prices, listings, collection stats, and wallet holdings.
Jorkal NFT Data — MCP Server
A Model Context Protocol server for real-time Solana NFT market data from Magic Eden.
MCP Endpoint
https://jorkal-nft-mcp.vercel.app/mcpCompatible with any MCP client (Claude, Cursor, Windsurf, etc.).
Related MCP server: x402-api
Tools
Tool | Description | Price |
| Floor price + listing count for a collection | $0.001 USDC |
| Top cheapest active listings | $0.002 USDC |
| Full collection stats (volume, holders, supply) | $0.002 USDC |
| All NFTs owned by a Solana wallet | $0.005 USDC |
Usage
With Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"jorkal-nft": {
"url": "https://jorkal-nft-mcp.vercel.app/mcp"
}
}
}Then ask Claude: "What is the floor price of degods?"
Direct MCP call
curl -X POST https://jorkal-nft-mcp.vercel.app/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"nft_floor","arguments":{"symbol":"degods"}}}'Payment
Tools are paid via the x402 protocol — micropayments in USDC on Base mainnet. When a payment is required, the tool returns instructions on how to pay.
Network: Base mainnet (eip155:8453)
Asset: USDC (
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)Pay to:
0xA63A9cB0adc792a2913307Be577CBeF86E8756B6
Available Collections
Works with any Magic Eden Solana collection. Examples: degods, okay_bears, the_tower, y00ts, mad_lads.
x402 HTTP API
Also available as a direct x402-compatible HTTP API:
Base URL:
https://vercel-deploy-alpha-puce.vercel.appListed on x402scan
License
MIT
Available Tools
8 toolsnft_activityA
Get recent activity for a Magic Eden Solana NFT collection — includes bids, listings, and sales with prices, buyers, sellers, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Magic Eden collection symbol (e.g. "degods", "okay_bears") | |
| limit | No | Number of activity events to return (1–50, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. It indicates a read operation retrieving 'recent' activity but does not define how recent, whether results are cached, pagination behavior, or rate limits. While not misleading, it omits helpful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 20-word sentence that packs all essential information: resource, action, scope, and data included. No unnecessary words or repetition. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and no output schema, the description provides sufficient context about the resource and output. It lacks details on ordering or time range, but given the straightforward nature, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds meaning by explaining the output includes bids, listings, sales with prices, buyers, sellers, and timestamps, which is not in the schema. This helps the agent understand what the response will contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves recent activity for a Magic Eden Solana NFT collection, explicitly listing event types (bids, listings, sales) and included data (prices, buyers, sellers, timestamps). This distinguishes it from siblings like nft_listings or nft_stats, which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or scenarios where other tools (e.g., nft_floor for floor price, wallet_activity for wallet-specific data) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nft_floorA
Get the floor price and listing count for a Magic Eden Solana NFT collection. Returns floor price in SOL and lamports, average 24h price, and total volume.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Magic Eden collection symbol (e.g. "degods", "okay_bears", "the_tower") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that the tool returns floor price in SOL and lamports, average 24h price, and total volume, which is helpful. However, it does not mention potential error states, rate limits, authentication needs, or whether the data is real-time, leaving gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two clear sentences. The first states the primary action and scope, and the second lists the return fields. There is no extraneous information, and the key details are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple data-retrieval tool with one parameter. It explains what is returned, but it lacks context about when to use this tool over siblings, any prerequisites, or edge cases. Given the tool's simplicity, the information is sufficient but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'symbol' with a description that includes examples. The tool description does not add further semantic meaning beyond the schema. Since schema description coverage is 100%, the baseline score is 3, and no additional param context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: getting floor price and listing count for a Magic Eden Solana NFT collection. It uses a specific verb ('Get') and resource ('NFT collection'), and the output details (floor price in SOL/lamports, average 24h price, total volume) distinguish it from sibling tools like nft_stats or nft_listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a user needs floor price and listing count data, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., nft_listings for individual listings, nft_stats for broader stats). No exclusions or caveats are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nft_listingsA
Get the cheapest active NFT listings for a Magic Eden Solana collection. Returns up to 20 listings sorted by price ascending.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Magic Eden collection symbol (e.g. "degods", "okay_bears") | |
| limit | No | Number of listings to return (1–20, default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses key behaviors: returns active listings only, sorted by price ascending, up to 20. However, it lacks details on data freshness, error handling, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no output schema. Description covers input parameters and output characteristics (sorted, up to 20 listings). Missing details on listing fields but sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for both parameters. Description adds minor context (e.g., examples for symbol, 'up to 20' for limit) but largely overlaps with schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and the resource 'cheapest active NFT listings for a Magic Eden Solana collection', including the source and ordering. This distinguishes it from siblings like nft_floor (floor price) and nft_activity (activity).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for retrieving cheapest listings but does not explicitly state when to use this tool versus alternatives like nft_floor or nft_stats. No when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nft_statsA
Get full collection stats for a Magic Eden Solana NFT collection: floor, volume, 24h avg, holders, supply.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Magic Eden collection symbol (e.g. "degods", "okay_bears") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It indicates a read operation and lists returned fields, which is adequate for basic understanding. However, it does not disclose behavior on invalid symbols, potential errors, or rate limits, limiting richness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently conveys the tool's purpose and output. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description covers the purpose and returned stats. It is slightly lacking in error handling or behavior notes, but overall complete for a basic stats tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as the only parameter 'symbol' is already well-described in the schema with the collection symbol example. The tool description merely repeats the context (Magic Eden NFT collection) without adding new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets 'full collection stats' for a Magic Eden Solana NFT collection and lists specific data points (floor, volume, 24h avg, holders, supply). This differentiates it from siblings like nft_floor (which likely returns only floor price) and nft_token (individual token data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for collection-level aggregated stats but does not provide explicit guidance on when to choose this tool over alternatives like nft_floor or nft_activity. No when-not or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nft_tokenA
Get detailed information about a single Solana NFT by its mint address — includes name, owner, collection, current listing price, image URL, and all on-chain attributes/traits.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Solana token mint address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description covers return fields but does not disclose any behavioral traits such as error handling, authentication needs, or potential side effects. For a read-only tool, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence effectively communicates purpose and output fields. No unnecessary words or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool (1 param, no output schema), description adequately covers purpose and return fields. Lacks mention of scenario where NFT not found or required permissions, but these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter 'mint' is described in schema as 'Solana token mint address (base58)'. Tool description repeats that it is 'by its mint address'. No additional meaning beyond schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly describes the verb 'Get detailed information', resource 'single Solana NFT', and scope 'by its mint address'. The description lists specific data fields (name, owner, collection, etc.), making it distinct from sibling tools like nft_activity or nft_floor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for retrieving full details of a specific NFT. Does not explicitly state when not to use or compare to siblings, but the listed fields make its purpose clear relative to the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_activityB
Get recent NFT transaction history for a Solana wallet — buys, sells, bids, and listings with prices, collections, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Solana wallet address (base58) | |
| limit | No | Number of activity events to return (1–50, default 20) | |
| offset | No | Pagination offset (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It mentions transaction types and data fields but omits behavioral details like default ordering (presumably reverse chronological), pagination behavior, rate limits, authentication requirements, or what occurs for wallets with no activity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose and included data. Could be slightly improved with structured breakdown (e.g., bullet points for transaction types) but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and no output schema, description lacks critical context: data ordering, whether all transaction types are guaranteed to appear, timestamp format, and handling of edge cases. An agent would need to infer response structure from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (address, limit, offset fully described). Description adds minimal value beyond schema, listing broad data categories but not linking them to parameters or providing extra constraints like default limit value (20) which is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies the tool retrieves recent NFT transaction history for a Solana wallet, listing specific transaction types (buys, sells, bids, listings) and included data (prices, collections, timestamps). It distinguishes from siblings like wallet_nfts (owned NFTs) and nft_activity (likely per-NFT activity).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for retrieving recent wallet transaction history, but no explicit guidance on when to use this vs. sibling tools like nft_activity, nor exclusions for cases like empty history or specific time ranges.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_nftsA
Get NFTs owned by a Solana wallet address. Returns mint addresses, names, collections, and listing status.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Solana wallet address (base58) | |
| limit | No | Number of NFTs to return (1–50, default 20) | |
| offset | No | Pagination offset (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses what the tool returns (mint addresses, names, etc.), but does not state the read-only nature, potential errors, authentication needs, or pagination behavior (limit/offset hinted via schema). Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with no fluff, conveying purpose and output efficiently. Well structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers return values. It explains all parameters via schema. Missing usage context and pagination hints, but overall complete for a simple data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no new parameter insights beyond the schema; it only summarizes the output type. No added value for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get NFTs), the resource (owned by a Solana wallet address), and the output (mint addresses, names, collections, listing status). It distinguishes from siblings like nft_token (individual NFT) and nft_listings (listings) by focusing on ownership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool (to get NFTs owned by a wallet), but provides no guidance on when not to use it or alternatives among siblings. No explicit usage guidelines beyond the core purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_valueA
Estimate the total NFT portfolio value for a Solana wallet using current floor prices. Returns a breakdown by collection with estimated value per collection and a grand total in SOL.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Solana wallet address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full transparency. It discloses the use of 'current floor prices' and output in SOL, but does not mention limitations (e.g., floor prices may not reflect actual market value) or potential side effects. The transparency is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences, achieves front-loading of purpose and output, and contains no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one input, no output schema), the description covers the main aspects: what it does, input, and output format (breakdown by collection and grand total in SOL). It lacks explicit mention of the output structure, but the context is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single parameter 'address' with description 'Solana wallet address (base58)'. The description does not add additional meaning beyond confirming it's a Solana wallet. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Estimate the total NFT portfolio value for a Solana wallet using current floor prices.' It specifies the resource ('total NFT portfolio value') and action ('estimate') and distinguishes from siblings like nft_floor (specific collection floor) and wallet_nfts (list NFTs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for portfolio valuation but does not explicitly state when to use or not use it compared to alternatives. It provides clear context but lacks exclusions or alternative tool references, resulting in slightly incomplete guidance.
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.
8 tool updates
v0.1.0- First observed
nft_activity - First observed
nft_floor - First observed
nft_listings - First observed
nft_stats - First observed
nft_token - First observed
wallet_activity - First observed
wallet_nfts - First observed
wallet_value
TDQS
Scored across 8 tools
Each tool has a clear, distinct purpose. The six nft_ tools cover different aspects of collection data (activity, floor, listings, stats, individual token), and the three wallet_ tools cover wallet transaction history, holdings, and portfolio valuation, with no overlap.
All tool names follow a consistent snake_case pattern with a clear domain prefix (nft_ or wallet_) followed by a descriptive noun. This provides predictability and makes it easy for an agent to understand the tool's scope.
With 8 tools, the count is well-scoped for a focused NFT server. Each tool provides essential functionality without unnecessary bloat, covering both collection-level and wallet-level operations.
The tool set covers core use cases: collection exploration (activity, floor, listings, stats, token details) and wallet management (activity, holdings, portfolio value). Missing a generalized search tool, but the surface is complete for typical NFT interactions.
Maintenance
Related MCP Connectors
Production-grade MCP gateway delivering 8 real-time AI tools with instant x402 micropayments settled in USDC on Base Mainnet or SPL-USDC on Solana. Features Basescan contract auditing, wallet analytics, headless browser scraping, and pre-scraped oracle data feeds.
Production-grade MCP gateway delivering 8 real-time AI tools with instant x402 micropayments settled in USDC on Base Mainnet or SPL-USDC on Solana. Features Basescan contract auditing, wallet analytics, headless browser scraping, and pre-scraped oracle data feeds.
32 paid x402 endpoints for crypto, Zora & on-chain analysis. 10 MCP tools. USDC on Base.
Paid TaskMarket bounty data MCP: first 10 calls/mo FREE per wallet, then $0.001/call USDC (x402).
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server providing real-time crypto prices (Chainlink + Binance), Polymarket prediction market data, deep web research, and JS-rendered web scraping. All services available via x402 Solana micropayments.MIT
- AlicenseAqualityDmaintenanceMCP server for pay-per-call DeFi and crypto data via x402 micropayments on Base. 8 endpoints: token prices, TVL, funding rates, token security, gas tracker, whale monitoring, wallet profiling, and yield scanning.825MIT
- AlicenseNot gradedqualityCmaintenancePay-per-call MCP server offering crypto market signals, web page extraction, and GitHub repo auditing, with automatic settlement in USDC via the x402 protocol.MIT
- AlicenseAqualityCmaintenanceMCP server providing Solana/crypto/macro tools (wallet scan, password breach, Jito tip, GitHub health, FRED series, Drift exposure, premium chapters) with x402 payment gating (USDC on Base) for 7 of 8 tools.15MIT