Skip to main content
Glama
appdatalayer

AppDataLayer MCP Server

by appdatalayer

appdatalayer-mcp

Open-source TypeScript SDK for the AppDataLayer MCP Server — the App Intelligence Query Engine powered by the Model Context Protocol.

Analyze 1B+ app reviews across Google Play and the Apple App Store. Semantic topic search, sentiment analysis, keyword rankings, competitive analysis, and time-series forecasting — all through a single typed API.

Installation

npm install appdatalayer-mcp

Quick Start

As a TypeScript/JavaScript SDK

import { AppDataLayerClient } from "appdatalayer-mcp";

const client = new AppDataLayerClient({ apiKey: "sk_live_..." });

// Get app metadata
const app = await client.getAppOverview("com.instagram.android");
console.log(app.data?.title, app.data?.score);

// Analyze review sentiment
const reviews = await client.analyzeReviews({
  app_id: "com.spotify.music",
  dimensions: ["sentiment", "topic"],
  days: 30,
});

// Semantic topic search
const topics = await client.searchTopics("crashes and bugs");

// Compare apps head-to-head
const comparison = await client.compareApps({
  app_ids: ["com.spotify.music", "com.apple.music"],
});

// Forecast review volume
const forecast = await client.forecastMetric({
  series: [100, 120, 115, 130, 128, 145, 142, 160, 155, 170],
  horizon: 7,
});

await client.disconnect();

As an MCP Server for LLM Agents

Use AppDataLayer directly in Claude Desktop, Cursor, Windsurf, or any MCP-compatible AI agent:

import { generateMcpConfig } from "appdatalayer-mcp";

const config = generateMcpConfig("sk_live_...");
console.log(JSON.stringify(config, null, 2));

Paste the output into your agent's config file:

Client

Config File

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

Cursor

.cursor/mcp.json

Windsurf

~/.windsurf/mcp.json

VS Code

.vscode/mcp.json

Generated config:

{
  "mcpServers": {
    "appdatalayer": {
      "url": "https://mcp.appdatalayer.com/mcp",
      "headers": {
        "APPDATALAYER_API_KEY": "sk_live_..."
      }
    }
  }
}

Available Tools

The SDK provides typed methods for all 22 MCP tools:

Data Querying

Method

Description

getAppOverview(appId)

App metadata: title, developer, score, installs, rating histogram

analyzeReviews(input)

Aggregate reviews by day/week/month/sentiment/country/score/topic

getKeywordRankings(input)

Track app ranking for a search keyword over time

getTopCharts(input?)

Latest top charts (free, paid, grossing, new)

getSimilarApps(appId)

Apps similar/related to a given app

getSearchSuggestions(input)

Autocomplete suggestions from app stores

getGlobalStats()

Platform totals: apps tracked, reviews count

getReviewsByTopics(input)

Actual review text filtered by topic IDs

compareApps(input)

Head-to-head comparison of 2-5 apps

getTopicTrend(input)

Track topic volume and sentiment changes over time

Topic Intelligence

Method

Description

resolveTopics(ids)

Convert topic IDs → human-readable labels

searchTopics(query)

Semantic search over 1M+ review topics

findAppsByTopics(input)

Find apps at the intersection of two topic sets

Forecasting

Method

Description

forecastMetric(input)

Predict future values using Google TimesFM 2.5

Scraping Operations

Method

Description

getScrapeJobsOverview()

Overview of all scraping jobs by type

listScrapeJobs(input?)

List and filter individual scrape jobs

getFailedJobs(input?)

Get failed/dead jobs with failure reasons

getJobScheduleStatus(input?)

Get overdue jobs

Webhooks

Method

Description

listWebhooks()

List all webhooks for the authenticated user

createWebhook(input)

Create a webhook alert rule

deleteWebhook(id)

Delete a webhook

toggleWebhook(id, active)

Enable/disable a webhook

Raw Access

Method

Description

call(toolName, args)

Call any MCP tool by name

listTools()

List all available tools

listResources()

List all available resources

readResource(uri)

Read a resource (e.g. table schemas)

API Reference

AppDataLayerClient

const client = new AppDataLayerClient({
  apiKey: string;            // Required — your API key
  endpoint?: string;         // Default: "https://mcp.appdatalayer.com/mcp"
  timeout?: number;          // Default: 30000ms
});

Return Type

All methods return ToolCallResult<T>:

interface ToolCallResult<T> {
  content: { type: string; text: string }[]; // Raw MCP content
  isError?: boolean;                          // True if the tool returned an error
  data: T | null;                             // Parsed JSON data (null if error)
}

generateMcpConfig

import { generateMcpConfig } from "appdatalayer-mcp";

const config = generateMcpConfig(
  apiKey: string,
  endpoint?: string  // Default: "https://mcp.appdatalayer.com/mcp"
);

Configuration

Env Variable

Description

APPDATALAYER_API_KEY

Your AppDataLayer API key

Examples

See the examples/ directory:

Data Coverage

Metric

Value

Reviews

1B+

Apps

250K+

Topics

1M+ clusters

Countries

44

Stores

Google Play, Apple App Store

License

MIT — AppDataLayer

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/appdatalayer/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server