Ettajer for Developers
Model Context Protocol over HTTP JSON-RPC. Same Bearer auth and scopes as the REST API — Claude and Cursor use one connected store.
Production
https://www.ettajer.com/api/v1/mcp
Method POST · Header Authorization: Bearer … · Body JSON-RPC 2.0
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}Create an app in the console with the correct redirect URIs, then complete OAuth. Do not put client secrets in browser code.
Add a custom connector with the MCP URL above. Advanced settings: client ID and secret from your app. Callback https://claude.ai/api/mcp/auth_callback.
Point MCP at the production URL. Use ${env:ETTAJER_MCP_CLIENT_SECRET} for the secret. Complete interactive OAuth in Cursor settings.
About 32 tools. Prefer batch over recreating themes.
get_contextget_theme_schemaget_productsget_collections
create_themeapply_theme_batchupdate_sectionget_themepreview_theme
publish_theme
Requires themes:publish — keep off for AI clients by default.
Short-lived signed preview URL (~10 minutes). Read-only. Works on home, product, collection, and custom pages. Does not publish.
Requires themes:publish. Transactional. Cart and checkout stay on Ettajer.
Readable via resources/list and resources/read.
ettajer://storeettajer://theme-schemaettajer://productsettajer://collectionsettajer://navigationDefault RATE_LIMIT_BACKEND=memory is fine for local or single-instance use. Production multi-instance should use RATE_LIMIT_BACKEND=redis with Upstash REST credentials. In-memory limits are not shared across instances.
Create an app, add redirect URIs, then authorize your store.