MCP connector
On this page
Connect Claude, ChatGPT, Cursor or any MCP client to your organization's Lucen data. Your assistant can answer questions from your analytics, explain how a metric is calculated and draft dashboards for you to review.
Overview
Lucen is a managed data pipeline. It loads your marketing and business sources into a BigQuery warehouse and models them into clean, analysis-ready tables (the gold layer). The warehouse is either your own Google Cloud project or one Blumie runs for you, where your organization has its own dataset prefix and service account. The Lucen MCP server gives an AI assistant governed access to those tables.
With the connector, your assistant can:
- Answer questions about your data by running read-only queries on your organization's warehouse, starting from your gold tables.
- Reuse the saved, validated queries in your organization's query library.
- Explain how a metric is calculated by reading your pipeline's transformation code.
- Tell you how fresh the data is, table by table.
- Draft Blocks dashboard pages for you to review and publish in the Lucen portal.
The assistant only sees what your Lucen account can see, and every query runs in your organization's warehouse.
Requirements
- A Lucen account that belongs to at least one organization. Ask your organization owner for an invite if you don't have one.
- An AI client that supports remote MCP servers with OAuth: Claude (web, desktop or Claude Code), ChatGPT (with developer mode) or Cursor.
Connect
Every client uses the same server URL:
https://lucen-api.blumie.io/mcpThe first time you connect, your browser opens Lucen to sign in and approve access. See Authentication and permissions.
Menu names can differ slightly between client versions and languages.
Claude (web or desktop)
- Open Settings → Connectors → Add custom connector.
- Paste the server URL and save.
- Approve access when your browser opens.
ChatGPT
- In ChatGPT on the web, open Settings → Apps → Advanced settings and turn on Developer mode. On Business and Enterprise workspaces, an admin may need to allow it first under Workspace settings → Permissions & Roles → Connected Data.
- Open Settings → Connectors → Add custom connector and paste the server URL.
- Approve access when your browser opens.
Developer mode is available on ChatGPT Plus, Pro, Business, Enterprise and Education plans.
Cursor
Add this to .cursor/mcp.json, then approve access when your browser opens:
{
"mcpServers": {
"lucen": {
"url": "https://lucen-api.blumie.io/mcp"
}
}
}Claude Code
Run this in your terminal:
claude mcp add --transport http lucen https://lucen-api.blumie.io/mcpThen run /mcp inside Claude Code, pick lucen, choose Authenticate and approve access when your browser opens.
Optional: skills for developers
The connector works on its own. Developers who use Claude Code or another client that supports skills can also install Lucen's skills, which teach the assistant your data model and the Blocks dashboard format in more depth:
npx skills add Blumie-io/lucen-skills --skill lucen-datanpx skills add Blumie-io/lucen-skills --skill lucen-blocksAuthentication and permissions
Lucen uses OAuth 2.1 with PKCE. Your client registers itself automatically, and you never paste a password or API key into the AI client.
When you connect, Lucen shows a consent screen. On it you:
- Sign in with your Lucen account.
- Choose which of your organizations this connection may use. You can grant one or several.
- Review what the connection is allowed to do.
A connection can hold two permissions:
| Permission | What it allows |
|---|---|
read | Read-only queries over your analytics data, and running queries from your library. Every connection has it. |
write | Saving new queries to your query library, and creating or editing draft dashboard pages. |
Access follows your Lucen membership on every call. If you are removed from an organization, the connection stops working for that organization right away, even if the client still holds a token.
Access tokens last 1 hour. The client renews them with a refresh token that lasts 30 days, and each renewal starts a new 30 days, so a client in regular use stays connected. A client left unused for 30 days asks you to sign in again. Token lifetime is not what ends access: membership is, as described above.
To disconnect, log out of or remove the Lucen connector in your AI client. To stop someone's access entirely, remove them from the organization in Lucen.
Tools
The server exposes 17 tools. Every tool declares whether it only reads or also writes.
| Tool | Title | Access | What it does |
|---|---|---|---|
get_server_info | Get Server Info | Read | Describes the server version and the tools available to this connection. |
list_organizations | List Organizations | Read | Lists the organizations this connection is authorized to use. |
list_tables | List Tables | Read | Lists your gold tables and their columns. |
get_data_guide | Get Data Guide | Read | Explains the grain and metric rules of your connected sources, so figures are added up correctly. |
get_data_freshness | Get Data Freshness | Read | Shows when each gold table was last built and whether that build succeeded. |
run_bigquery | Run BigQuery SQL | Read | Runs one read-only SELECT on your organization's warehouse. |
compare_entities | Compare Entities | Read | Ranks campaigns, ads or other entities fairly when they were active for different lengths of time. |
list_queries | List Saved Queries | Read | Lists the saved, validated queries in your query library. |
find_query | Find Saved Query | Read | Checks whether a saved query already answers a question. |
run_query | Run Saved Query | Read | Runs a saved query, optionally with parameters such as a date range. |
read_pipeline_code | Read Pipeline Code | Read | Reads the transformation code behind a table, to explain how a metric is calculated. |
list_pages | List Pages | Read | Lists your organization's Blocks dashboard pages. |
get_page | Get Page | Read | Reads one dashboard page, as a draft or as published. |
plan_page | Plan Page | Read | Turns a dashboard request into a short brief and the questions to ask you before building. |
get_blocks_guide | Get Blocks Guide | Read | Returns the guide for writing Blocks dashboard pages. |
save_query | Save Query | Write | Saves a tested query to your query library as a new entry. |
upsert_page | Create or Update Page Draft | Write | Writes a dashboard page as a draft and returns a preview link. |
Only save_query and upsert_page write, and both need the write permission. Neither deletes data or changes anything already published: saving a query adds a new entry to your library, and a page draft stays private until someone publishes it in the Lucen portal. Clients that follow MCP tool hints, such as Claude, ask you to confirm before either one runs.
Example prompts
Answer a question from your data
What was our total ad spend and ROAS by platform last month?
The assistant checks your query library with find_query. If a saved query fits, it runs it with run_query. Otherwise it looks up your tables with list_tables, writes a read-only query and runs it with run_bigquery.
Rank campaigns fairly
Which campaigns performed best over the last 90 days? Some only ran for two weeks.
The assistant uses compare_entities, which normalizes for how long each campaign was active, so a short campaign is not ranked below a long one just for having fewer days of spend.
Build a dashboard
Build me a dashboard of paid media performance by week, with spend, clicks and CPA.
The assistant calls plan_page first and asks you a few questions, such as which platforms and which period. It then saves the queries it needs with save_query and writes the page with upsert_page. You get a preview link and decide whether to publish it in the Lucen portal.
Data handling and security
- The connector does not store query results. Queries run in your organization's BigQuery warehouse and the results go back to your AI client. The MCP server does not write result rows to Lucen's database. For saved-query runs it records metadata only: the parameter values used, row count, bytes processed, duration, whether BigQuery's cache answered, and who ran it. BigQuery keeps its standard query cache, about 24 hours, in the warehouse project. Lumi, the chat inside the Lucen portal, stores its own conversations separately.
- Read-only by design. A query must be a single SELECT or WITH statement. Anything that would write, delete or change tables is refused before it reaches BigQuery.
- Scoped to your organization's warehouse. Queries run only in the warehouse of the organization the call names. On your own BigQuery, that is your Google Cloud project, and the connector can read what you granted Lucen there. On the warehouse Blumie runs, a query that references another organization's datasets is refused before it runs, and your organization's service account can only read data in its own datasets.
- Cost and size limits. Every query is checked with a BigQuery dry run first. Queries that would scan too much data are refused, and results are capped at 1,000 rows.
- Membership is checked on every call. Each call names the organization it acts on, and Lucen confirms both the connection's grant and your current membership before running it.
- Nothing is published for you. Dashboard pages written by an assistant are drafts. Publishing is always a click by a person in the Lucen portal.
- Your AI provider sees the results you ask for. Query results are sent to the AI client you connected, under your agreement with that provider.
Questions you send to find_query are matched against your query library with Google Vertex AI embeddings, which run in Google Cloud alongside the rest of Lucen.
For more detail, see our Privacy Policy, Terms of Service and Documents.
Troubleshooting
The assistant says your data is not ready.Your organization's gold tables have not been built yet, or the catalog is still catching up after a build. If your sources were connected recently, try again after the next daily sync. If the message persists, contact support.
A tool asks you to reconnect for write access.Your connection was approved with read only. Remove the Lucen connector in your client, add it again and approve write access on the consent screen.
The assistant asks which organization to use.Your connection covers more than one organization. Name the organization in your request, or connect with a single organization.
A tool you expected is missing.Some clients load the tool list only once. Start a new conversation or reconnect the connector.
A number looks stale.Ask the assistant when the data was last updated. It checks with get_data_freshness, table by table.
Support
Write to blumie@blumie.io. Include the client you use (for example Claude or Cursor), your organization's name and, if you can, the prompt that failed.
