At a glance
Sign in with OAuth, or use a key
Add https://api.source.app/mcp in any client that supports OAuth for remote MCP servers. You will be sent to Source to sign in and approve access. No key to copy. For clients and scripts that take a header, create a key in Settings, API keys. It is shown once.
Add Source to your client
Before you connect
Start by connecting Source in Claude or ChatGPT. You can create a free account when you sign in, then have your agent install the pixel. Client steps are below.
Connect in Claude or ChatGPT
Add https://api.source.app/mcp in Claude, ChatGPT, Cursor or any MCP client, then sign in to Source and approve access.
Sign up free
If you do not have a Source account yet, create one at dash.source.app/signup, or when you approve access. Free to start, no credit card.
Install the pixel
Ask your agent to call get_pixel_installation_guide and follow the steps for your site. First data shows up after the next refresh (nightly on Free).
You can also say: install the Source pixel on my site, using get_pixel_installation_guide.
1. Open Customize, then Connectors. 2. Search for Source and choose Connect. 3. Sign in to Source and approve access. On Team and Enterprise plans, an Owner adds the connector for the organization first. Not in the directory view? Add a custom connector with https://api.source.app/mcp
Add https://api.source.app/mcp as a custom connector and sign in.
{
"mcpServers": {
"source": {
"url": "https://api.source.app/mcp",
"headers": {
"Authorization": "Bearer ${env:SOURCE_API_KEY}"
}
}
}
}claude mcp add --scope user --transport http source https://api.source.app/mcp \ --header "Authorization: Bearer YOUR_KEY"
grok mcp add --transport http source https://api.source.app/mcp \ --header "Authorization: Bearer YOUR_KEY" On grok.com: Add https://api.source.app/mcp as a custom connector and sign in.
Server URL https://api.source.app/mcp
Transport Streamable HTTP
Auth OAuth 2.1 with PKCE, or
--header "Authorization: Bearer YOUR_KEY"
{
"mcpServers": {
"source": {
"type": "http",
"url": "https://api.source.app/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}{
"mcpServers": {
"source": {
"url": "https://api.source.app/mcp"
}
}
}After you connect, start a new session. You should see eight tools. If the pixel is not on your site yet, ask your agent to call get_pixel_installation_guide. Then ask a pipeline question.
Eight tools
Prefer ask for most questions. Use describe_data before writing SQL for run_sql. Call list_websites first if the credential covers more than one website. Call get_pixel_installation_guide to install the pixel, get_funnel_configuration_guide and configure_funnel to map your CRM stages, and feedback if an answer looks wrong.
Ask a question about your attribution data. Returns the answer, the SQL behind it, the result table and follow-up questions. Pass conversation_id from a previous result to follow up.
website_id string, optional when the credential
covers one website
question string, required
conversation_id string, optional, from a previous askLists your tables and columns, with notes on which table answers which question. Call it before writing SQL for run_sql.
website_id string, optional when the credential
covers one websiteRead-only BigQuery standard SQL. SELECT only. Unqualified table names resolve to your website's data. Returns up to 100 rows by default, 1,000 at most.
website_id string, optional
sql string, required. BigQuery standard SQL,
SELECT statements only
max_rows integer, optional. Default 100, cap 1000SELECT channel, SUM(visits) AS visits FROM agg_visit_days WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 29 DAY) GROUP BY channel ORDER BY visits DESC LIMIT 5
{
"bytes_processed": 13934955,
"columns": [{"name":"channel","type":"STRING"},{"name":"visits","type":"INTEGER"}],
"row_count": 5,
"rows": [["DIRECT",1088],["PAID_SOCIAL",227],["ORGANIC_SEARCH",207],
["PAID_SEARCH",174],["OTHER",27]],
"truncated": false
}The websites this credential can query, with the website_id each tool takes.
No inputs
Flag an ask answer that looks wrong. Pass the conversation_id from that ask and a short note.
website_id string, optional
conversation_id string, required. From the ask
whose answer was wrong
note string, required. What was wrongGet install steps for the Source pixel on your site. Call this after you connect, then follow the steps for your site builder.
What your agent can query
25 tables. Here are the ones agents use most.
Your agent can list all 25 tables and their columns with describe_data.
Six models on every touch
Ask about pipeline, then check the SQL
How fresh the data is
Nightly refresh, 3 months of history
1x to 24x a day, 1 to 24 months of history
Custom refresh, unlimited retention
Read-only, scoped, revocable
Agents can query. They cannot change or delete data. A connected client sees only the websites you approved. Revoke access any time in Settings, API keys, Connected apps. SOC 2 Type II and ISO 27001.