Connect a Google account with one approval on Google's own screen — no passwords or API keys. Read Google Sheets, export to new Google Sheets, send email from the connected Gmail account, and read Search Console (sitemaps, URL indexing, search performance). Paid plans.
Try it with your AI assistant
Once WebsitePublisher is connected to your AI assistant, paste one of these into the chat. Replace the parts in [brackets] with your own details.
@WebsitePublisher connect my Google account and show my [sheet name] Google Sheet in a table on my admin page@WebsitePublisher export my leads to a new Google Sheet@WebsitePublisher show how my site performs in Google Search: clicks, impressions and which pages are indexedWith WebsitePublisher, connect my Google account and show my [sheet name] Google Sheet in a table on my admin pageWith WebsitePublisher, export my leads to a new Google SheetWith WebsitePublisher, show how my site performs in Google Search: clicks, impressions and which pages are indexedWith WebsitePublisher, connect my Google account and show my [sheet name] Google Sheet in a table on my admin pageWith WebsitePublisher, export my leads to a new Google SheetWith WebsitePublisher, show how my site performs in Google Search: clicks, impressions and which pages are indexedEndpoints (16)
Start connecting a Google account. Returns authorize_url: give it to the user as a clearly labelled "Connect Google" link or button. The user approves on Google's own screen and the tokens are stored automatically — never ask the user for a password or secret. The link is single-use and expires after 30 minutes. Paid plans only.
| Field | Type | Required | Description |
|---|---|---|---|
capabilities |
array | ✓ Yes | What the connection may do: "sheets_read" (read Google Sheets), "drive_export" (create and fill new Google Sheets), "gmail_send" (send email from the connected Gmail account; cannot read mail), "search_console_read" (read Search Console data of the site; cannot change anything), "search_console_manage" (also submit the site's own sitemap; includes search_console_read). Ask only for what the task needs. |
return_url |
string | No | Optional page on a websitepublisher.ai domain to return to after approval. |
Whether Google is connected for this project: account email, granted capabilities, and what to do when re-authorization is needed.
No input parameters required.
Disconnect Google: revokes access at Google and deletes the stored tokens.
No input parameters required.
Spreadsheet title and its tabs (name, rows, columns). Requires capability sheets_read.
| Field | Type | Required | Description |
|---|---|---|---|
spreadsheet |
string | ✓ Yes | Google Sheets URL or spreadsheet ID. |
Read rows from a tab or A1 range, max 5000 rows per call. Requires capability sheets_read.
| Field | Type | Required | Description |
|---|---|---|---|
spreadsheet |
string | ✓ Yes | Google Sheets URL or spreadsheet ID. |
range |
string | ✓ Yes | Tab name ("Leads") or A1 range ("Leads!A1:F500"). |
max_rows |
integer | No | Cap on returned rows (default and maximum 5000). |
Create a new Google Sheet in the connected account, optionally with a header row. Requires capability drive_export. Returns spreadsheet_id and url.
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | ✓ Yes | Spreadsheet title. |
tab |
string | No | Name of the first tab (default "Sheet1"). |
header |
array | No | Optional header row, e.g. ["Name", "Email"]. |
Write rows to a Google Sheet that was created through the platform (drive_export cannot reach other sheets). mode "append" adds rows below the existing data, "replace" clears the tab first. Values are written as plain text, never as formulas. Max 5000 rows per call.
| Field | Type | Required | Description |
|---|---|---|---|
spreadsheet |
string | ✓ Yes | Spreadsheet URL or ID (from sheets-create or a google_sync push source). |
tab |
string | ✓ Yes | |
rows |
array | ✓ Yes | Array of rows; each row is an array of cell values. |
mode |
string | No | "append" (default) or "replace". |
Send an email from the connected Gmail account (the sender is always that account). Requires capability gmail_send. Recipients per email and emails per day are limited per project (see get-config); Gmail's own sending limits also apply. from_name and reply_to fall back to the project defaults.
| Field | Type | Required | Description |
|---|---|---|---|
to |
array | ✓ Yes | Recipient addresses, e.g. ["jan@example.com"]. |
subject |
string | ✓ Yes | |
body_text |
string | No | Plain-text body. Provide body_text, body_html or both. |
body_html |
string | No | HTML body. A plain-text version is derived when body_text is empty. |
cc |
array | No | |
reply_to |
string | No | |
from_name |
string | No | Display name for the sender, e.g. the business name. |
Send a test email to the connected Google account itself, to confirm that sending works. Requires capability gmail_send.
No input parameters required.
Search Console properties of the connected account that cover this project's live domains (Domain properties first), plus the project hosts. Only these properties can be used. Requires capability search_console_read.
No input parameters required.
Sitemaps of this site in Search Console: last submitted and downloaded, errors, warnings and submitted URL count. Only sitemaps on this project's own domains are shown. Requires capability search_console_read.
| Field | Type | Required | Description |
|---|---|---|---|
site |
string | No | A property from gsc-list-sites; default the first one. |
Google's index status of one URL of this site: verdict, coverage state, last crawl, robots.txt, canonical and the sitemaps it was found in. The URL must be on a live domain of this project. Limited per project per day. Requires capability search_console_read.
| Field | Type | Required | Description |
|---|---|---|---|
url |
string | ✓ Yes | Full URL, e.g. https://www.example.com/tema/anxiety. |
site |
string | No | A property from gsc-list-sites that covers the URL; default chosen automatically. |
Search performance from Search Console: clicks, impressions, CTR and position, grouped by up to 3 dimensions. Default: the last 28 days of available data, by query. Always limited to this project's own domains. Requires capability search_console_read.
| Field | Type | Required | Description |
|---|---|---|---|
start_date |
string | No | YYYY-MM-DD. Default 27 days before end_date. |
end_date |
string | No | YYYY-MM-DD. Default 2 days ago (Google data lags). |
dimensions |
array | No | Up to 3 of query, page, country, device, date. Default ["query"]. |
row_limit |
integer | No | Default 100, max 1000. |
page_contains |
string | No | Only pages whose URL contains this text, e.g. "/tema/". |
site |
string | No | A property from gsc-list-sites; default the first one. |
Submit this site's own sitemap (https://{live domain}/sitemap.xml) to Search Console, e.g. after adding pages. No other URL can be submitted. Paid plans (Free serves no sitemap). Limited per project per day. Requires capability search_console_manage.
| Field | Type | Required | Description |
|---|---|---|---|
site |
string | No | A property from gsc-list-sites that covers the live domain; default chosen automatically. |
Project settings for this integration (Gmail limits and defaults), which ones were changed, and the platform limits.
No input parameters required.
Change project settings; only the keys you send change, null resets a key to the platform default. Values must stay within the platform limits shown by get-config. Paid plans.
| Field | Type | Required | Description |
|---|---|---|---|
gmail_daily_limit |
integer | No | Max emails per day for this project. |
gmail_max_recipients |
integer | No | Max recipients (to + cc) per email. |
default_from_name |
string | No | Sender display name used when gmail-send has no from_name. |
default_reply_to |
string | No | Reply-To address used when gmail-send has no reply_to. |
MCP Tool Names
When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:
| Endpoint | MCP Tool Name |
|---|---|
| connect | google_connect |
| connection-status | google_connection_status |
| disconnect | google_disconnect |
| sheets-get-meta | google_sheets_get_meta |
| sheets-read-range | google_sheets_read_range |
| sheets-create | google_sheets_create |
| sheets-write-values | google_sheets_write_values |
| gmail-send | google_gmail_send |
| gmail-test-send | google_gmail_test_send |
| gsc-list-sites | google_gsc_list_sites |
| gsc-list-sitemaps | google_gsc_list_sitemaps |
| gsc-inspect-url | google_gsc_inspect_url |
| gsc-search-analytics | google_gsc_search_analytics |
| gsc-submit-sitemap | google_gsc_submit_sitemap |
| get-config | google_get_config |
| set-config | google_set_config |
Website