Skip to main content
Glama
Artsy Analytics MCP Server

Artsy Analytics MCP Server

by damassi

Artsy Analytics MCP Server POC

Model Context Protocol server providing Artsy partner analytics tools for Claude Desktop. Built with modelcontextprotocol/typescript-sdk.

Available Tools

Core Analytics

  • get_partner_activity_stats - Partner activity overview with pageviews and inquiries

  • get_partner_sales_stats - Sales performance metrics and trends

  • get_partner_artworks_published_stats - Artwork publishing analytics

  • get_partner_audience_stats - Audience metrics and visitor counts

  • get_partner_inquiries_stats - Inquiry volume and response analytics

  • get_complete_partner_analytics - Comprehensive analytics dashboard

  • get_partner_modern_pageviews - Enhanced pageview analytics with time series

  • get_partner_time_series_analytics - Time series data for pageviews or artworks

  • get_partner_sales_time_series - Sales analytics with revenue tracking

  • get_partner_inquiry_time_series - Inquiry trends with response times

Content Performance

  • get_partner_top_artworks - Top-performing artworks by views

  • get_partner_top_content - Top content (artworks, shows, artists, viewing rooms)

Audience Insights

  • get_partner_visitor_demographics - Visitor breakdowns by country, device, referral

  • custom_graphql_query - Execute custom GraphQL queries

Related MCP server: API Tester MCP Server

Setup

  • Install Bun

curl -fsSL https://bun.sh/install | bash
  • Install deps

git clone https://github.com/damassi/mcp-tests.git
cd mcp-tests
bun install
  • Sync GraphQL schema:

bun sync-schema
  • Configure Claude Desktop MCP settings:

code ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "artsy-analytics": {
      "command": "/Users/<user-name>/.bun/bin/bun",
      "args": ["/path/to/mcp/src/mcp-server.ts"],
      "env": {
        "CLAUDE_DESKTOP": "true",
        "METAPHYSICS_ENDPOINT": "your_endpoint",
        "USER_ID": "your_user_id",
        "X_ACCESS_TOKEN": "your_token"
      }
    }
  }
}
  • Restart Claude Desktop

Usage

Ask Claude questions like:

  • "Show visitor demographics for pace-gallery"

  • "Get sales trends for hauser-wirth over 16 weeks"

  • "What are the top artworks for gagosian-gallery?"

Development

When developing, can run

bun dev

# Generate GraphQL types from schema
bun gql

Then launch the modelcontextprotocol inspector:

bunx @modelcontextprotocol/inspector

Make sure the setup looks like the below, and (critical!) be sure to add correct Environment Variables as seen in .env.example:

Available Tools

14 tools
get_partner_activity_statsget_partner_activity_statsB

Get partner activity analytics including pageviews, artwork views, and unique visitors

Inputs: partnerId (required), period.

get_partner_artworks_published_statsget_partner_artworks_published_statsC

Get partner artwork publishing statistics and trends

Inputs: partnerId (required), period.

get_partner_audience_statsget_partner_audience_statsC

Get partner audience analytics including unique visitors, commercial visitors, and geographic data

Inputs: partnerId (required), includeGroupedStats, period.

get_partner_complete_analyticsget_partner_complete_analyticsC

Get comprehensive analytics overview for a partner including all major metrics

Inputs: partnerId (required), period.

get_partner_inquiries_statsget_partner_inquiries_statsB

Get partner inquiry analytics including inquiry count and response times

Inputs: partnerId (required), period.

get_partner_inquiry_time_seriesget_partner_inquiry_time_seriesC

Get detailed inquiry analytics with time series data and response times

Inputs: partnerId (required), cumulative, period.

get_partner_modern_pageviewsget_partner_modern_pageviewsC

Get detailed pageview analytics using the modern pageview schema with time series support

Inputs: partnerId (required), cumulative, includeTimeSeries, period.

get_partner_sales_statsget_partner_sales_statsC

Get partner sales analytics including order count, revenue, and response times

Inputs: partnerId (required), period.

get_partner_sales_time_seriesget_partner_sales_time_seriesC

Get detailed sales analytics with time series data including revenue amounts

Inputs: partnerId (required), cumulative, period.

get_partner_time_series_analyticsget_partner_time_series_analyticsC

Get time series data for partner analytics with optional cumulative view

Inputs: partnerId (required), cumulative, metric, period.

get_partner_top_artworksget_partner_top_artworksB

Get partner's most viewed artworks with ranking data

Inputs: partnerId (required), limit, period.

get_partner_top_contentget_partner_top_contentC

Get top-performing content (artworks, shows, artists, or viewing rooms) by views

Inputs: partnerId (required), first, objectType, period.

get_partner_visitor_demographicsget_partner_visitor_demographicsB

Get visitor demographic breakdowns by device, country, referral source, or landing page

Inputs: partnerId (required), first, metric, objectType, +1 more.

query_analytics_customquery_analytics_customC

Execute a custom GraphQL query against the analytics schema

Inputs: query (required), variables.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 14 tools

    Disambiguation3/5

    The tools have clear distinctions in their primary focus areas (activity, artworks, audience, inquiries, sales, time series, top content, demographics, custom queries), but there is notable overlap between some tools. For example, 'get_partner_complete_analytics' overlaps with many others by providing an overview, and 'get_partner_time_series_analytics' overlaps with specific time series tools like 'get_partner_inquiry_time_series' and 'get_partner_sales_time_series'. Descriptions help clarify, but an agent might struggle to choose between overlapping tools for specific needs.

    Naming Consistency5/5

    All tool names follow a consistent 'get_partner_*_stats' or 'get_partner_*_analytics' pattern, with variations like 'time_series', 'top_artworks', or 'visitor_demographics' fitting logically. The naming is highly predictable and readable, using snake_case uniformly throughout. This consistency makes it easy for an agent to understand the structure and purpose of each tool at a glance.

    Tool Count4/5

    With 14 tools, the count is reasonable for an analytics server covering various aspects like activity, sales, inquiries, and demographics. It's slightly on the higher side but well-scoped to provide detailed insights without being overwhelming. Each tool appears to serve a specific analytical function, though some redundancy might be present, keeping it within a manageable range for the domain.

    Completeness4/5

    The tool set covers a broad range of analytics for partners, including activity, audience, inquiries, sales, time series, top content, and demographics, with a custom query option for flexibility. Minor gaps exist, such as no explicit tools for updating or deleting analytics data (which might be intentional if read-only) or more granular filtering options, but the surface is comprehensive for querying and reporting purposes, allowing agents to access most needed metrics.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables AI assistants like Claude to track events, page views, user signups, set user properties, and track revenue in Amplitude analytics.
      14 npm
      7
      MIT