# SiteGPT (remote · sitegpt.ai)

Manage SiteGPT chatbots and account resources through the SiteGPT API v2.

- Trust score: 40/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- remote · `sitegpt.ai`: 40/100 (this document), [markdown](https://verifymcp.io/servers/sitegpt-sitegpt/sitegpt.md), [page](https://verifymcp.io/servers/sitegpt-sitegpt/sitegpt)

## Channel facts

- Endpoint: `https://sitegpt.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Endpoint Security**: 100/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 0/100
  - Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http.
- **Schema Quality & AI Usability**: 0/100
  - Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Tool Safety**: 0/100
  - Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Capabilities**: 0/100
  - Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.

**Unverified: 6 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the SiteGPT MCP server?

SiteGPT is a hosted endpoint at https://sitegpt.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http sitegpt-sitegpt 'https://sitegpt.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "sitegpt-sitegpt": {
      "url": "https://sitegpt.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sitegpt-sitegpt": {
      "type": "http",
      "url": "https://sitegpt.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.sitegpt-sitegpt]
url = "https://sitegpt.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sitegpt-sitegpt": {
      "type": "remote",
      "url": "https://sitegpt.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sitegpt-sitegpt --url 'https://sitegpt.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sitegpt-sitegpt:
    url: "https://sitegpt.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "sitegpt-sitegpt": {
      "Transport": "http",
      "Url": "https://sitegpt.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add sitegpt-sitegpt -t streamable-http -u 'https://sitegpt.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "sitegpt-sitegpt": {
      "type": "http",
      "url": "https://sitegpt.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-30 (score 40, −44)

- [security regression] Endpoint reachability: reachable → behind authorisation
- [security regression] Tool safety: pass → unverified
- [security regression] Transport: pass → unverified
- [security regression] Stability: 0.17 → unverified
- [security] Authorization: The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified

### 2026-08-28 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-26 (score 83, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-25 (score 81, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-24 (score 81)

First indexed and scored.

## MCP tools (17)

### `search` (~577 tokens)

SiteGPT API Spec Search

Search the SiteGPT API v2 OpenAPI spec. Targets the SiteGPT API v2 (spec: https://sitegpt.ai/api/v2/openapi.json, docs: https://sitegpt.ai/docs/api-reference/v2/getting-started). codemode.spec() returns $refs resolved inline. This tool only reads the local spec catalog; it performs no API calls.

Types:

// OpenAPI 3.x spec with $refs resolved inline.
// The spec object follows the standard OpenAPI 3.x structure.

interface OperationObject {
  summary?: string;
  description?: string;
  operationId?: string;
  tags?: string[];
  parameters?: Array<{
    name: string;
    in: "query" | "header" | "path" | "cookie";
    required?: boolean;
    schema?: unknown;
    description?: string;
  }>;
  requestBody?: {
    required?: boolean;
    description?: string;
    content?: Record<string, { schema?: unknown }>;
  };
  responses?: Record<string, {
    description?: string;
    content?: Record<string, { schema?: unknown }>;
  }>;
  security?: Array<Record<string, string[]>>;
  deprecated?: boolean;
}

interface PathItem {
  summary?: string;
  description?: string;
  get?: OperationObject;
  post?: OperationObject;
  put?: OperationObject;
  patch?: OperationObject;
  delete?: OperationObject;
  head?: OperationObject;
  options?: OperationObject;
  trace?: OperationObject;
  parameters?: OperationObject["parameters"];
}

interface OpenApiSpec {
  openapi: string;
  info: { title: string; version: string; description?: string };
  paths: Record<string, PathItem>;
  servers?: Array<{ url: string; description?: string }>;
  components?: Record<string, unknown>;
  tags?: Array<{ name: string; description?: string }>;
}

declare const codemode: {
  spec(): Promise<OpenApiSpec>;
};

Your code must be an async arrow function that returns the result.

Examples:

// List all paths
async () => {
  const spec = await codemode.spec();
  return Object.keys(spec.paths);
}

// Find endpoints by tag
async () => {
  const spec = await codemode.spec();
  const results = [];
  for (cons…

Input parameters:

- `code` (string, required): JavaScript async arrow function to search the spec

Output parameters:

- `result` (string): The sandboxed code result as text: the returned value, JSON-stringified when not a string, possibly truncated.

### `execute_read` (~601 tokens)

SiteGPT API Reader

Run read-only SiteGPT API v2 calls (GET only) using JavaScript code. Targets the SiteGPT API v2 (spec: https://sitegpt.ai/api/v2/openapi.json, docs: https://sitegpt.ai/docs/api-reference/v2/getting-started). First use 'search' to find the right endpoints. Requests run through an authenticated host-side bridge scoped to your OAuth grant. Write methods (POST, PUT, PATCH, DELETE) are rejected here — use the execute_write tool for those.

Available in your code:

interface RequestOptions {
  method: "GET";
  path: string;
  query?: Record<string, string | number | boolean | undefined>;
  body?: unknown;
  contentType?: string;
  rawBody?: boolean;
}


// OpenAPI 3.x spec with $refs resolved inline.
// The spec object follows the standard OpenAPI 3.x structure.

interface OperationObject {
  summary?: string;
  description?: string;
  operationId?: string;
  tags?: string[];
  parameters?: Array<{
    name: string;
    in: "query" | "header" | "path" | "cookie";
    required?: boolean;
    schema?: unknown;
    description?: string;
  }>;
  requestBody?: {
    required?: boolean;
    description?: string;
    content?: Record<string, { schema?: unknown }>;
  };
  responses?: Record<string, {
    description?: string;
    content?: Record<string, { schema?: unknown }>;
  }>;
  security?: Array<Record<string, string[]>>;
  deprecated?: boolean;
}

interface PathItem {
  summary?: string;
  description?: string;
  get?: OperationObject;
  post?: OperationObject;
  put?: OperationObject;
  patch?: OperationObject;
  delete?: OperationObject;
  head?: OperationObject;
  options?: OperationObject;
  trace?: OperationObject;
  parameters?: OperationObject["parameters"];
}

interface OpenApiSpec {
  openapi: string;
  info: { title: string; version: string; description?: string };
  paths: Record<string, PathItem>;
  servers?: Array<{ url: string; description?: string }>;
  components?: Record<string, unknown>;
  tags?: Array<{ name: string; description?: string }>;
}


declare…

Input parameters:

- `code` (string, required): JavaScript async arrow function to execute

Output parameters:

- `result` (string): The sandboxed code result as text: the returned value, JSON-stringified when not a string, possibly truncated.

### `execute_write` (~684 tokens)

SiteGPT API Writer

Create, update or delete SiteGPT API v2 resources (POST, PUT, PATCH or DELETE only) using JavaScript code. Targets the SiteGPT API v2 (spec: https://sitegpt.ai/api/v2/openapi.json, docs: https://sitegpt.ai/docs/api-reference/v2/getting-started). First use 'search' to find the right endpoints and 'execute_read' for any lookups. Requests run through an authenticated host-side bridge scoped to your OAuth grant. GET is rejected here — use the execute_read tool to read data. GitHub knowledge-source connections cannot be created or updated through this tool because they carry an access token — direct users to the SiteGPT dashboard for GitHub setup; OAuth-based connectors (Notion, Google Drive, …) can be created here and finish authorization in the browser.

Available in your code:

interface RequestOptions {
  method: "POST" | "PUT" | "PATCH" | "DELETE";
  path: string;
  query?: Record<string, string | number | boolean | undefined>;
  body?: unknown;
  contentType?: string;
  rawBody?: boolean;
}


// OpenAPI 3.x spec with $refs resolved inline.
// The spec object follows the standard OpenAPI 3.x structure.

interface OperationObject {
  summary?: string;
  description?: string;
  operationId?: string;
  tags?: string[];
  parameters?: Array<{
    name: string;
    in: "query" | "header" | "path" | "cookie";
    required?: boolean;
    schema?: unknown;
    description?: string;
  }>;
  requestBody?: {
    required?: boolean;
    description?: string;
    content?: Record<string, { schema?: unknown }>;
  };
  responses?: Record<string, {
    description?: string;
    content?: Record<string, { schema?: unknown }>;
  }>;
  security?: Array<Record<string, string[]>>;
  deprecated?: boolean;
}

interface PathItem {
  summary?: string;
  description?: string;
  get?: OperationObject;
  post?: OperationObject;
  put?: OperationObject;
  patch?: OperationObject;
  delete?: OperationObject;
  head?: OperationObject;
  options?: OperationObject;
  trace?: OperationObject;
  par…

Input parameters:

- `code` (string, required): JavaScript async arrow function to execute

Output parameters:

- `result` (string): The sandboxed code result as text: the returned value, JSON-stringified when not a string, possibly truncated.

### `preview_chatbot` (~225 tokens)

SiteGPT Chatbot Preview

Render a live, interactive preview of a SiteGPT chatbot directly in the conversation (MCP Apps extension). Call it after creating or inspecting a chatbot, passing the chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id — and optionally the chatbot title for the preview header. Returns { chatbotId, widgetUrl }; hosts that support MCP Apps render the actual chat widget from the ui://sitegpt/chatbot-preview resource, and any client can open widgetUrl in a browser instead. Performs no API calls and does not verify that the chatbot exists — use execute_read for lookups. Note: chatbots that restrict embedding via Allowed Domains (Settings > General) block the inline frame; the preview then switches to a built-in chat driven by the send_chat_message tool, and shows a fallback with the direct link when that fails too.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `title` (string): Optional chatbot title shown in the preview header.

Output parameters:

- `chatbotId` (string)
- `title` (string)
- `widgetUrl` (string): Public chat widget URL for this chatbot — the page the preview embeds.

### `send_chat_message` (~206 tokens)

Send Chat Message

Send a visitor message to a SiteGPT chatbot and get its answer — the data lane behind the inline chatbot preview's built-in chat. The first call (no threadId) creates a conversation and returns its threadId; pass that threadId on follow-ups to continue the same conversation. Messages are capped at 20000 characters (the endpoint's limit). On chatbots in human-support mode the message is delivered but answer is null — a human replies in the site widget. Uses POST /api/v2/chatbots/{chatbotId}/messages and POST /api/v2/chatbots/{chatbotId}/conversations/{threadId}/messages.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `message` (string, required): The visitor message to send.
- `threadId` (string): Omit on the first message; pass the threadId a previous call returned to continue that conversation.

Output parameters:

- `answer` (string|null): The chatbot answer text, or null when no automatic answer was produced (human-support mode).
- `chatbotId` (string)
- `messageType` (string|null)
- `threadId` (string): Conversation thread id — pass it back for follow-ups.

### `get_onboarding_status` (~130 tokens)

Onboarding Status

Get the live status of an agent-first onboarding workspace: workspace and claim state, the setup checklist (knowledge crawl/training, persona, starters, …), the browser onboarding page URL, and the POST-only claim API endpoint (claimUrl is for agents/CLI clients — never a page to open in a browser). The onboarding-progress view polls this while pages crawl and train. Requires the temporary onboarding token issued by the onboarding start endpoint. Uses GET /api/v2/onboarding/workspaces/{workspaceId}.

Input parameters:

- `workspaceId` (string, required): Onboarding workspace id (an RFC-4122 UUID).

Output parameters:

- `chatbotId` (string|null)
- `checklist` (array)
- `claimStatus` (string|null)
- `claimUrl` (string|null): POST-only API endpoint for agents/CLI clients starting a claim. NOT a browser page — never present it to a human as a link to open (a browser GET returns 405).
- `isExpired` (boolean)
- `onboardingUrl` (string|null): The browser onboarding page — the one link humans open.
- `status` (string|null): Workspace status: CREATED, BUILDING, CLAIMED, EXPIRED, …
- `workspaceId` (string)

### `get_chatbot_appearance` (~104 tokens)

Get Widget Appearance

Read the chatbot widget appearance (colors, launcher position and shape, title, welcome message, placeholder, tooltip) plus its starter questions, for the inline appearance card. Uses GET /api/v2/chatbots/{chatbotId}/settings/appearance and GET /api/v2/chatbots/{chatbotId}/starters.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.

Output parameters:

- `appearance` (object)
- `chatbotId` (string)
- `starters` (array)

### `update_chatbot_appearance` (~261 tokens)

Update Widget Appearance

Update the chatbot widget appearance: title, welcome message, placeholder, tooltip, brand/launcher/link colors (#rrggbb), and launcher position. Only the provided fields change; the tool returns the full updated appearance. This changes the LIVE widget customers see. Uses PATCH /api/v2/chatbots/{chatbotId}/settings/appearance.

Input parameters:

- `brandColor` (string): Widget header/background color as #rrggbb.
- `brandTextColor` (string): Text color over the brand color as #rrggbb.
- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `iconBackgroundColor` (string): Launcher bubble background color as #rrggbb.
- `iconPosition` (string): Which side of the page the launcher bubble sits on.
- `linkColor` (string): Hyperlink color inside chatbot replies as #rrggbb.
- `placeholderText` (string): Placeholder text inside the message input box.
- `title` (string): Widget header title shown to visitors.
- `tooltip` (string): Short prompt shown next to the closed launcher bubble.
- `welcomeMessage` (string): First message the widget shows when a visitor opens it.

Output parameters:

- `appearance` (object)
- `chatbotId` (string)

### `list_conversations` (~158 tokens)

List Conversations

List a chatbot conversation inbox with filters (open/resolved status, escalated-only) and cursor pagination, projected to compact rows with a last-message snippet. Renders as the inline conversations inbox. Uses GET /api/v2/chatbots/{chatbotId}/conversations.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `cursor` (string): Opaque pagination cursor from the previous page.
- `escalated` (boolean): true → only conversations escalated to a human.
- `limit` (integer): Maximum conversations to return (default 50, max 100).
- `status` (string): Filter by resolution status; defaults to all.

Output parameters:

- `chatbotId` (string)
- `conversations` (array)
- `nextCursor` (string|null)

### `get_conversation` (~107 tokens)

Get Conversation Transcript

Read one conversation with its transcript (visitor questions and chatbot/system answers, capped at 2000 characters per message). Renders as the transcript panel of the inline conversations inbox. Uses GET /api/v2/chatbots/{chatbotId}/conversations/{threadId}.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `threadId` (string, required): Conversation thread id, from list_conversations.

Output parameters:

- `chatbotId` (string)
- `escalated` (boolean)
- `important` (boolean)
- `messages` (array)
- `mode` (string|null)
- `resolved` (boolean)
- `threadId` (string)
- `title` (string|null)

### `get_chatbot_analytics` (~158 tokens)

Chatbot Analytics

Get chatbot analytics for the inline analytics card: message counts and feedback split, training/knowledge state (from the chatbot dashboard endpoint), account-wide quota usage with a 12-month message-volume history (from the usage endpoint), and trailing-30-day engagement totals — widget opens, conversations started, unique visitors, escalations, leads (from the analytics endpoint; null when the account does not have analytics enabled). Uses GET /api/v2/chatbots/{chatbotId}/dashboard, GET /api/v2/usage, and GET /api/v2/chatbots/{chatbotId}/analytics.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.

Output parameters:

- `chatbotId` (string)
- `conversations` (object)
- `engagement`
- `history` (array)
- `knowledge` (object)
- `quota` (object)
- `training` (object)

### `list_leads` (~157 tokens)

List Leads

List the leads a chatbot collected (name, email, phone, received time, starred/archived flags) with search, status filter, and cursor pagination. Renders as the inline leads browser. Uses GET /api/v2/chatbots/{chatbotId}/leads.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `cursor` (string): Opaque pagination cursor from the previous page.
- `limit` (integer): Maximum leads to return (default 50, max 100).
- `query` (string): Search across lead name, email, and phone.
- `status` (string): Filter leads by state (default all).

Output parameters:

- `chatbotId` (string)
- `leads` (array)
- `nextCursor` (string|null)

### `list_escalations` (~159 tokens)

List Waiting Escalations

List the open conversations that are escalated to a human and waiting — the queue behind the inline escalations view — with cursor pagination for queues longer than one page. Read-only: replying to escalated visitors happens in the SiteGPT dashboard inbox (API v2 has no agent-reply endpoint yet). Uses GET /api/v2/chatbots/{chatbotId}/conversations with escalated=true and status=open.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `cursor` (string): Pass the previous page nextCursor to fetch the next page.
- `limit` (integer): Maximum escalations to return (default 50, max 100).

Output parameters:

- `chatbotId` (string)
- `escalations` (array)
- `nextCursor` (string|null)

### `list_knowledge_sources` (~109 tokens)

List Knowledge Sources

List a chatbot connector data sources (Notion, Google Drive, Confluence, …) with their sync state, plus document counts by ingestion status. Renders as the inline knowledge view. Uses GET /api/v2/chatbots/{chatbotId}/knowledge/sources and GET /api/v2/chatbots/{chatbotId}/documents/stats.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.

Output parameters:

- `chatbotId` (string)
- `documents` (object)
- `sources` (array)

### `create_knowledge_source` (~194 tokens)

Connect Knowledge Source

Create a new OAuth knowledge source connection (Notion, Google Drive, Dropbox, OneDrive, Box, SharePoint, or Confluence) and get the browser authorization URL to finish connecting it. Confluence additionally requires the site domain (e.g. your-team.atlassian.net). GitHub is not available here — its connections carry an access token and must be set up in the SiteGPT dashboard. Uses POST /api/v2/chatbots/{chatbotId}/knowledge/sources.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `connector` (string, required): OAuth connector type. GitHub is dashboard-only.
- `domain` (string): Confluence site domain (e.g. your-team.atlassian.net). Required when connector is CONFLUENCE; ignored otherwise.
- `name` (string, required): Display name.

Output parameters:

- `authorizationUrl` (string|null): OAuth URL to open in a browser to finish connecting the source.
- `chatbotId` (string)
- `nextStep` (string|null)
- `source` (object)

### `authorize_knowledge_source` (~88 tokens)

Authorize Knowledge Source

Get a fresh browser authorization URL for an existing knowledge source connection (for example one still pending OAuth). Uses POST /api/v2/chatbots/{chatbotId}/knowledge/sources/{connectionId}/authorize.

Input parameters:

- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `connectionId` (string, required)

Output parameters:

- `authorizationUrl` (string|null): OAuth URL to open in a browser to finish connecting the source.
- `chatbotId` (string)
- `nextStep` (string|null)
- `source` (object)

### `upload_knowledge_file` (~147 tokens)

Upload Knowledge File

Upload one file (base64-encoded, max 1500000 bytes decoded — about 1.5 MB; the MCP transport caps request bodies, larger files go through the dashboard) as chatbot training knowledge. Ingestion is queued asynchronously. Uses POST /api/v2/chatbots/{chatbotId}/knowledge/files.

Input parameters:

- `base64` (string, required): Base64 file content (a data: URL prefix is tolerated).
- `chatbotId` (string, required): SiteGPT chatbot id — an RFC-4122 UUID or a 15-20 digit numeric id.
- `name` (string, required): File name.
- `type` (string): MIME type; defaults to application/octet-stream.

Output parameters:

- `chatbotId` (string)
- `documentsCount` (number)
- `fileName` (string)
- `ingestJobRunIds` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sitegpt-sitegpt/sitegpt#diagnostics

## Score history

- 2026-09-21: 40
- 2026-09-20: 40
- 2026-09-19: 40
- 2026-09-18: 40
- 2026-09-17: 40
- 2026-09-16: 40
- 2026-09-15: 40
- 2026-09-14: 40
- 2026-09-13: 40
- 2026-09-12: 40
- 2026-09-11: 40
- 2026-09-10: 40
- 2026-09-09: 40
- 2026-09-08: 40
- 2026-09-07: 40
- 2026-09-06: 40
- 2026-09-05: 40
- 2026-09-04: 40
- 2026-09-03: 40
- 2026-09-02: 40
- 2026-09-01: 40
- 2026-08-31: 40
- 2026-08-30: 40
- 2026-08-29: 84
- 2026-08-28: 84
- 2026-08-27: 83
- 2026-08-26: 83
- 2026-08-25: 81
- 2026-08-24: 81

## Common questions

### What is the SiteGPT MCP server?

SiteGPT is an MCP server listed in the public MCP registry as io.github.sitegpt/sitegpt. Manage SiteGPT chatbots and account resources through the SiteGPT API v2. This page covers its hosted endpoint (https://sitegpt.ai/mcp).

### Is the SiteGPT MCP server safe to use?

SiteGPT scores 40 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the SiteGPT MCP server expose?

SiteGPT exposes 17 tools: search, execute_read, execute_write, preview_chatbot, send_chat_message, and 12 more. Their descriptions and schemas cost roughly 4,065 tokens of context every time the server is loaded.

### Does the SiteGPT MCP server require authentication?

Yes. SiteGPT asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the SiteGPT MCP server still maintained?

SiteGPT is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://sitegpt.ai/mcp
- Repository: https://github.com/sitegpt/agent-skills
- Website: https://sitegpt.ai/
- Changelog RSS feed: https://verifymcp.io/servers/sitegpt-sitegpt/sitegpt.xml
- Changelog JSON feed: https://verifymcp.io/servers/sitegpt-sitegpt/sitegpt.json
- HTML version of this page: https://verifymcp.io/servers/sitegpt-sitegpt/sitegpt
