Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLog level: debug, info, warn, error
SHOPIFY_STORENoShopify store domain (*.myshopify.com)
DTC_MCP_SANDBOXNoSandbox mode: auto, sidecar, or vm
KLAVIYO_API_KEYYesKlaviyo private API key (pk_...)
DTC_MCP_DOCS_URLNoOverride docs source URL
DTC_MCP_NODE_PATHNoAbsolute path to Node binary for sidecar
SHOPIFY_CLIENT_IDNoDev Dashboard app Client ID
SHOPIFY_API_VERSIONNoShopify API version (default 2026-01)
DTC_MCP_DOCS_REFRESHNoSet to 0 to disable docs refresh
SHOPIFY_ACCESS_TOKENNoLegacy custom app Admin API token (shpat_...)
SHOPIFY_CLIENT_SECRETNoDev Dashboard app Client Secret (shpss_...)
DTC_MCP_MAX_RESPONSE_KBNoMax response size in KB (default 100)
KLAVIYO_CONVERSION_METRIC_IDNoOverride auto-discovered Placed Order metric ID

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
execute_codeA

execute_code(code: string) -> { ok, result, stdout, state, durationMs } state: current globalThis stash (auto-populated, summary-form — read this to see what data from prior calls is available without re-fetching)

Sandbox globals: klaviyo, shopify, console, pick, topN, summarize, globalThis (persists across calls)

Discovery: search_docs / read_doc surface SDK paths, parameter shapes, and recipes. The SDK uses JSON:API conventions (sort keys, sparse fieldsets) that differ from typical JS SDKs — search_docs FIRST for unfamiliar methods.

Reference example (real API surface — note JSON:API request shape): const metricId = await klaviyo.getConversionMetricId(); const report = await klaviyo.reporting.campaignValues({ data: { type: 'campaign-values-report', attributes: { timeframe: { key: 'last_30_days' }, conversion_metric_id: metricId, statistics: ['recipients', 'open_rate', 'conversion_value'], }} }); globalThis.report = report; return topN(report.data.attributes.results, 5, r => r.statistics.conversion_value);

search_docsA

Search the bundled SDK reference docs for Klaviyo and Shopify methods exposed inside the execute_code sandbox. Returns ranked markdown chunks: method signatures, parameter descriptions, and runnable code examples.

Use this BEFORE writing code in execute_code — the SDK surface is constrained to registered methods (escape hatches are 'klaviyo.get/post/paginate' and 'shopify.gql/ql').

The docs index is refreshed daily from a CDN-backed source repo, so new Klaviyo/Shopify API revisions land without requiring a new MCP release.

read_docA

Fetch a specific SDK docs chunk by exact path, or list all available paths when called with no args.

Use this instead of search_docs when you already know the chunk ID — it's cheaper and more deterministic. Common patterns: • read_doc({}) → list every chunk ID with one-line summaries (use this once at the start of a session to map the SDK surface) • read_doc({ path: "klaviyo.reporting.campaignValues" }) → fetch one method's full doc (signature + JSDoc + example) verbatim • read_doc({ platform: "shopify" }) → list only Shopify chunk IDs

This adopts the "filesystem-as-API" pattern from Anthropic's Code Execution with MCP research: LLMs are faster and more accurate when they can read a typed-source-of-truth doc page directly, rather than re-searching for it on every code generation.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/rafaelsztutman/dtc-mcp'

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