# for Claude

## 🤖 Endash for Claude

Welcome! This page will guide you on how to **use Endash data directly inside Claude** — ask questions in plain English, and Claude will pull live numbers from your connected ad and sales channels through the Endash MCP server.

{% hint style="info" %}
**What is MCP?** Model Context Protocol is the open standard that lets AI assistants like Claude securely connect to external data and tools. Endash exposes your team's e-commerce data as an MCP server so Claude can answer questions like *"What was last week's ROAS by channel?"* without you ever leaving the chat.
{% endhint %}

***

### ✨ What you can do

Once Endash is connected, you can ask Claude things like:

* *"Compare last 30 days' ROAS across Meta Ads, Google Ads, and Naver SA for the Acme team."*
* *"Why did Smart Store revenue drop last week? Show daily breakdown by product."*
* *"List campaigns where spend is over ₩1M and ROAS below 2."*
* *"Connect a new Coupang Ads account to my team."*

Claude will automatically discover your connected channels, look up the right column names, run a validated SQL query against your data, and explain the result.

***

### 🧩 Before you start

You'll need:

1. **An active Endash account** — sign up at [app.endash.ai](https://app.endash.ai) if you don't have one yet.
2. **Membership in at least one team** — Claude only sees data for teams you belong to.
3. **At least one connected data source** — Meta Ads, Google Ads, Naver SA, Coupang Ads, Smart Store, Cafe24, BigQuery, Google Sheets, and more. See Connect your data to get started.
4. **One of the supported Claude surfaces** — Claude.ai (web), Claude Desktop, or Claude Code.

{% hint style="success" %}
No paid Endash plan required. The MCP server uses the same access rules as your normal Endash account — if your team can see it in Endash, Claude can see it too.
{% endhint %}

***

### 🚀 Setting it up

#### In Claude.ai (web)

1. Open Claude at [claude.ai](https://claude.ai) and click your profile → **Settings** → **Connectors**.
2. Click **Add custom connector** (or browse the directory if Endash is already listed).
3. Paste the Endash MCP server URL: `https://prod.api.endash.ai/mcp`
4. Click **Connect**. You'll be redirected to Endash to sign in and authorize Claude.
5. Pick the team(s) you want Claude to access, then click **Allow**.
6. You're back in Claude. Try asking *"List my Endash teams."*

#### In Claude Desktop

1. Open **Settings** → **Developer** → **Edit Config**.
2. Add Endash to the `mcpServers` block:

```json
{
  "mcpServers": {
    "endash": {
      "url": "https://prod.api.endash.ai/mcp"
    }
  }
}
```

3. Restart Claude Desktop. You'll be prompted to authorize on first use.

#### In Claude Code

```bash
claude mcp add --transport http endash https://prod.api.endash.ai/mcp
```

Then run any prompt — Claude Code will trigger the OAuth flow in your browser the first time.

***

### 🛠 Available tools

Endash exposes the following tools to Claude. You don't usually call these by name — Claude picks the right one based on your question.

| Tool                      | What it does                                                                                             |
| ------------------------- | -------------------------------------------------------------------------------------------------------- |
| `list_teams`              | Lists the Endash teams you belong to.                                                                    |
| `list_source_types`       | Shows which data source types Endash can connect (Meta Ads, Naver SA, Coupang, Cafe24, BigQuery…).       |
| `list_connected_channels` | Lists channels already connected to a specific team.                                                     |
| `get_source_metadata`     | Returns the table/column schema and engine hint for a data model. Claude uses this to build correct SQL. |
| `get_playbook`            | Pulls a channel-specific analysis playbook (column conventions, ROAS/CTR formulas, common pitfalls).     |
| `validate_query`          | Dry-runs a SQL statement against your team's schema to catch errors before execution.                    |
| `execute_query`           | Runs the validated SQL and returns rows.                                                                 |
| `connect_source`          | Starts the flow to connect a new data source to a team.                                                  |
| `record_feedback`         | Logs your satisfaction with an answer so we can improve playbooks and prompts.                           |

{% hint style="info" %}
All read tools require the `mcp:read` scope; `connect_source` requires `mcp:write`. Claude requests both during authorization.
{% endhint %}

***

### 🔐 Permissions & data access

* **Team-scoped.** Every tool call resolves your identity from the OAuth token and validates your team membership before returning data. You can't see data for a team you don't belong to — even if you ask Claude nicely.
* **Read-mostly.** Eight of nine tools are read-only against your warehouse. Only `connect_source` performs a write, and only to add a new connection (it never modifies external accounts).
* **No silent storage.** Endash logs the question and tool calls for support and quality (so we can debug if something goes wrong), but does not retain query result rows beyond the session.
* **Transport.** All traffic is HTTPS. The MCP server uses the [Streamable HTTP](https://spec.modelcontextprotocol.io/specification/2025-06-18/basic/transports/) transport. SSE is not supported.

For the full policy, see our [Privacy Policy](https://endash.ai/privacy) and [Terms of Service](https://endash.ai/terms_of_service).

***

### 🐞 Troubleshooting

#### "I authorized but Claude says no teams found."

You're probably signed into a different Endash account than the one with team membership. Disconnect Endash from Claude (Settings → Connectors → Endash → Disconnect), sign out at [app.endash.ai](https://app.endash.ai), then reconnect.

#### "Claude says my SQL failed with `column does not exist`."

Ask Claude to *"call `get_source_metadata` again and rebuild the query from the actual columns."* The schema is the source of truth — Claude shouldn't guess column names. If it keeps happening, please send us the team ID and the failing query.

#### "ROAS numbers don't match what I see in `app.endash.ai`."

Two common reasons:

1. **Different time zone** — Naver SA is reported in KST (`date_kst` column). If Claude grouped by UTC `date`, the daily buckets shift by a few hours.
2. **Channel-specific revenue field** — Naver SA uses `conv_amt` instead of `revenue`. Ask Claude to consult `get_playbook(source_type="naver_sa")` and re-run.

#### "OAuth keeps redirecting in a loop."

Clear cookies for `claude.ai` and `app.endash.ai`, then reconnect. If the loop continues, it's almost always a third-party-cookie blocker. Allow third-party cookies for both domains and retry.

#### "A specific channel shows `Auth expired`."

Open [app.endash.ai](https://app.endash.ai) → **Connections** → find the channel → click **Reauthenticate**. Endash MCP can detect the broken state but cannot refresh tokens for you (the source platform requires you to sign in again).

***

### 💡 Tips for better answers

* **Always tell Claude which team.** "for the Acme team" is faster than letting Claude call `list_teams` first.
* **Ask for a playbook on first use of a channel.** *"Pull the Naver SA playbook before writing the query"* avoids the most common column-name mistakes.
* **Ask Claude to validate before executing.** Cheap insurance against typos in long queries.
* **If a result looks weird, ask Claude to show its SQL.** Easier to spot a wrong `GROUP BY` than to debug a wrong number.

***

### ❓ FAQ

**Does Endash MCP cost extra?** No. It's included with your Endash account at no additional charge.

**Can I use Endash MCP with ChatGPT or other AI clients?** Yes — Endash MCP supports any AI client that speaks MCP with OAuth 2.0. ChatGPT and OpenAI Apps are also supported.

**Where is my data processed?** Queries run inside Endash's infrastructure (Trino/BigQuery). Result rows are returned to Claude over HTTPS. Claude does not retain them after the conversation ends, per Anthropic's policy.

**Can I limit which tools Claude can use?** During the OAuth consent screen you can deselect `mcp:write`, which disables `connect_source`. The other tools are read-only.

**Does Endash see my Claude conversation?** No. Endash only sees the individual tool calls Claude makes — it never sees your full prompt or Claude's other reasoning.

***

### 🤝 Get help

* **Email:** <cigro.manager@endash.ai>
* **In-app chat:** Click the chat bubble at the bottom-right of [app.endash.ai](https://app.endash.ai)
* **Status & changelog:** [endash-guidance-docs.gitbook.io/docs](https://endash-guidance-docs.gitbook.io/docs)

We highly focus on the VOC, so don't hesitate to send us anything — bug reports, feature requests, or "Claude said this weird thing." 💛


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://endash-guidance-docs.gitbook.io/docs/mcp-server/for-claude.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
