Skip to content

Tracking: OpenSea Arbitrum MCP server (PR #204) #207

@oxdev6

Description

@oxdev6

Summary

  • Adds read-only OpenSea MCP server focused on Arbitrum
  • Integrates skill/tools into quickstart agent
  • Docs and headless SSE client for local testing

Scope

  • Tools: get_wallet_nfts, get_collection, search_collections, get_listings_by_collection, get_listings_by_asset, get_offers_by_asset
  • SSE + STDIO transports with CORS
  • Zod validation + undici + p-retry
  • Cursor-based pagination and rate-limit surfacing

Acceptance criteria

  • Tools execute with OPENSEA_API_KEY configured
  • Agent exposes OpenSea (Read-only) skill
  • Pagination (nextCursor) and rateLimit returned when applicable

Links

Follow-ups

  • Broaden chain support
  • Unit tests for schemas and HTTP
  • Metrics for rate limits / retries
  • More Inspector recipes

Scope update:

Proposed write tools (Arbitrum-first, non-custodial by default):

approve_operator (setApprovalForAll to Seaport conduit)
list_asset (fixed-price): build EIP-712, sign, POST listings
cancel_listing: on-chain Seaport cancel
buy_asset: fetch listing → fulfillment data → tx calldata (prepare-only default)
make_offer: build/sign EIP-712 → POST offers
accept_offer: fulfillment → tx calldata
transfer_nft
wrap_eth / unwrap_eth
Execution modes:

Prepare-only (default): returns typedData/calldata for user signing
Execute (opt-in): gated by WALLET_PRIVATE_KEY env
Config: OPENSEA_API_KEY, ARBITRUM_RPC_URL (optional WALLET_PRIVATE_KEY).
Architecture: separate skill opensea-actions; read-only tools unchanged.
Plan: approvals → list → buy first; then offers/cancel.

Plugin note:

Ember plugin system launches next week; we’ll integrate for on-chain execution via plugin.

This PR introduces an NFT plugin core (schemas and registry), implements the OpenSea plugin (read operations plus non‑custodial write preparations), refactors the OpenSea MCP server to use the plugin system, and wires a new nft skill into the Quickstart Agent. It also adds a Magic Eden plugin skeleton aligned to the same interface, ready to complete once the base URL and API key are provided.
All write actions are prepare‑only and non‑custodial by default (ENABLE_OPENSEA_WRITE=false). No personal credentials are used. Inspector connectivity over HTTP/SSE has been verified. Workspace builds are clean with pnpm install && pnpm build run from the typescript/ directory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions