agentleFS
P-EssonamP-Essonam/clicsdev/skills/chatgpt/SKILL.md

chatgpt

Skill1 starsChanged 2 months agoMITView on GitHub

Use Clics through the remote MCP connector in ChatGPT. Use when a user wants ChatGPT to query Clics analytics, inspect or manage Clics projects, goals, funnels, sessions, AI crawler activity, or set up browser and AI crawler tracking from a connected Clics workspace.

3 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. mediause/agent-skills★ 9same name
    2. lifeshoftcode/codex-chatgpt-skill-recipe★ 2same name
    3. zqcccc/chrome-agent-bridge★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repositoryOne other file it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. About 0 are common, 12 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the Clics remote MCP connector in ChatGPT.

    line 8
  2. Very specific:

    Start with list_projects unless the user already gave a project_id.

    line 26
  3. Distinctive:

    Use project tools before analytics tools:

    line 28
  4. Distinctive:

    If there is no project, follow Empty Workspace Setup.

    line 31
  5. Distinctive:

    Use goals, funnels, sessions, stats, or AI crawler tools against that project.

    line 32
  6. Distinctive:

    Use projects to choose the analytics scope and to set up tracking.

    line 39
  7. Distinctive:

    Use goals to track conversions.

    line 61
  8. Distinctive:

    Use funnels to measure ordered conversion paths.

    line 81
  9. Distinctive:

    Use sessions to inspect individual visits and their events.

    line 112
  10. Very specific:

    Use query_stats for dashboard-style analytics.

    line 122
  11. Distinctive:

    Use only one time dimension at a time.

    line 173
  12. Very specific:

    Use get_ai_crawler_analytics to inspect AI crawler activity.

    line 253
  13. Very specific:

    Use time:hour for hourly series, time:day for daily series, and time only when the dashboard-level aggregate time bucket is wanted.

    line 532
  14. Very specific:

    Start by calling list_projects when the user asks to inspect analytics and no project is known.

    line 644
  15. Very specific:

    Create the project with create_project.

    line 652
  16. Distinctive:

    After creating the project, help the user install browser tracking.

    line 657
  17. Very specific:

    Use get_ai_crawler_analytics after setup to verify crawler activity when data is available.

    line 702
  18. Distinctive:

    When reporting analytics, state:

    line 707
  19. Distinctive:

    When a result is empty, say whether the workspace has no project, the project has no data for that date range, or the filters removed all …

    line 717

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

ChatGPT Clics Remote MCP

Use the Clics remote MCP connector in ChatGPT.

Connection

The remote MCP endpoint is:

https://api.clics.dev/v1/mcp

In ChatGPT, the user connects Clics from Plugins or Connectors, signs in to Clics, and selects a workspace.

Confirm the connected tool list before calling a tool. If the connector is not connected, ask the user to connect Clics in ChatGPT first.

Tool Workflow

Start with list_projects unless the user already gave a project_id.

Use project tools before analytics tools:

  1. Resolve the project with list_projects or get_project.
  2. If there is no project, follow Empty Workspace Setup.
  3. Use goals, funnels, sessions, stats, or AI crawler tools against that project.
  4. Report the project name or project_id, date range, filters, and environment.

Tools

Projects

Use projects to choose the analytics scope and to set up tracking.

ToolUse it forMain input
list_projectsList workspace projects. Call this first when no project is known.none
get_projectInspect one project.project_id
create_projectCreate a project for a new site.name, website_url, optional allow_localhost
update_projectRename a project or update its domain/dev setting.project_id, optional name, website_url, allow_localhost
delete_projectDelete a project. Confirm intent first because analytics data is tied to it.project_id

Example:

{
  "name": "Acme",
  "website_url": "https://acme.com",
  "allow_localhost": true
}

Goals

Use goals to track conversions.

ToolUse it forMain input
list_goalsList goals for a project.project_id
create_goalCreate a conversion goal.project_id, env_id, goal_type, display_name, rule
update_goalUpdate a goal.goal_id, optional display_name, goal_type, rule
delete_goalDelete a goal.goal_id

Goal types and rules:

TypeRule
page{ "page_path": "/signup" }
event{ "event_name": "purchase" }
outbound{ "outbound_url": "https://partner.example.com/signup" }
scroll_depth{ "page_path": "/pricing", "scroll_depth_threshold": 75 }

Funnels

Use funnels to measure ordered conversion paths.

ToolUse it forMain input
list_funnelsList funnels for a project.project_id
get_funnelInspect one funnel definition.funnel_id
create_funnelCreate a funnel with ordered steps.project_id, name, steps, optional conversion window and filters
update_funnelUpdate a funnel definition.funnel_id, optional name, conversion_window, steps
delete_funnelDelete a funnel.funnel_id

Funnel conversion window units:

seconds, minutes, hours, days, weeks, months

Funnel filter fields:

country, device, browser, os, page, event, hostname, referrer,
utm_source, utm_medium, utm_campaign, utm_term, utm_content

Funnel filter operators:

is, is_not, contains, not_contains

Sessions

Use sessions to inspect individual visits and their events.

ToolUse it forMain input
list_sessionsList recent sessions with optional domain, date range, and pagination.project_id, optional domain, date_range, start, end, cursor, limit
get_sessionInspect one session.project_id, session_id
list_session_eventsList events in one session.project_id, session_id

Stats

Use query_stats for dashboard-style analytics.

Main input:

  • project_id: required Clics project ID.
  • metrics: required non-empty array of metric enums.
  • date_range: required period preset string, or [start, end] ISO8601 pair.
  • domain: optional domain filter. Schemes, paths, and ports are stripped by the API. Omit it for all production domains, or pass localhost for development traffic.
  • timezone: optional IANA timezone. Defaults to UTC.
  • dimensions: optional grouping. Use one time dimension, or up to two non-time breakdown dimensions.
  • filters: optional tuples in [operator, dimension, values] format.
  • order_by: optional tuples in [field, direction] format.
  • include: optional object with previous_period and total_rows.
  • pagination: optional object with limit and offset.

Metrics:

visitors, visits, pageviews, bounce_rate, visit_duration,
views_per_visit, conversion_rate, events

KPI and time-series metrics:

visitors, visits, pageviews, bounce_rate, visit_duration, views_per_visit

Breakdown metrics:

visitors, pageviews, conversion_rate, events

Dimensions:

event:page, event:hostname, event:name, event:outbound_url,
visit:country, visit:device, visit:browser, visit:os, visit:referrer,
referrer:ai_provider,
visit:utm_source, visit:utm_medium, visit:utm_campaign, visit:utm_term,
visit:utm_content,
time, time:hour, time:day

Time dimension presets:

time, time:hour, time:day

Use only one time dimension at a time. Do not combine a time dimension with breakdown dimensions.

Filter-only dimension:

event:goal

Stats filter operators:

is, is_not, contains, contains_not

Stats filter shape:

["is", "visit:country", ["US", "FR"]]

The first item is the operator, the second item is a filter dimension, and the third item is a string array of accepted values.

Stats filter dimensions:

event:page, event:hostname, event:goal, event:name, event:outbound_url,
visit:country, visit:device, visit:browser, visit:os, visit:referrer,
referrer:ai_provider,
visit:utm_source, visit:utm_medium, visit:utm_campaign, visit:utm_term,
visit:utm_content

Stats order shape:

["visitors", "desc"]

The first item is any metric or query dimension. The second item is asc or desc.

Stats include shape:

{
  "previous_period": true,
  "total_rows": true
}

previous_period is useful for KPI queries without dimensions. total_rows is useful with paginated breakdowns.

Stats pagination shape:

{
  "limit": 50,
  "offset": 0
}

limit must be between 1 and 1000. offset must be 0 or greater.

Example:

{
  "project_id": "project_123",
  "date_range": "last7days",
  "metrics": ["visitors", "pageviews"],
  "dimensions": ["time:day"],
  "timezone": "Europe/Paris"
}

AI Crawler Analytics

Use get_ai_crawler_analytics to inspect AI crawler activity. AI crawler analytics are production-only; use no environment argument.

Main input:

  • project_id
  • optional date_range
  • optional timezone
  • optional filters: category, provider, crawler, status
  • optional operators: provider_op, crawler_op, status_op

AI crawler categories:

answer_fetch, search_index, training

AI crawler filter operators:

is, is_not

AI crawler providers:

OpenAI, Anthropic, Perplexity, Google, Microsoft, Mistral, Amazon,
DuckDuckGo, Apple, Moonshot AI, Common Crawl

AI crawlers:

ChatGPT-User, OAI-SearchBot, GPTBot,
Claude-User, Claude-SearchBot, ClaudeBot,
Perplexity-User, PerplexityBot,
Google-Agent, Google-GeminiNotebook, Google-NotebookLM,
Google-Read-Aloud, Google-InspectionTool, Googlebot, GoogleOther,
Google-CloudVertexBot,
Bingbot, msnbot,
MistralAI-User, MistralAI-Index,
Amzn-User, Amzn-SearchBot, Amazonbot,
DuckAssistBot,
Applebot,
Kimi-User, Kimi-SearchBot, KimiBot,
CCBot

Example:

{
  "project_id": "project_123",
  "date_range": "last30days",
  "timezone": "Europe/Paris",
  "provider": "OpenAI",
  "provider_op": "is",
  "category": "answer_fetch"
}

Input Shapes

These examples mirror the remote MCP tool schemas. Use the live tool schema as the final source of truth if ChatGPT shows a field-level schema.

Project Inputs

list_projects accepts optional pagination:

{
  "limit": 20,
  "cursor": "next_cursor"
}

get_project and delete_project:

{
  "project_id": "project_123"
}

create_project:

{
  "name": "Acme Marketing",
  "website_url": "example.com",
  "allow_localhost": false
}

update_project requires project_id and at least one field to change:

{
  "project_id": "project_123",
  "name": "Acme",
  "website_url": "acme.com",
  "allow_localhost": true
}

Goal Inputs

list_goals:

{
  "project_id": "project_123",
  "env_id": "production"
}

create_goal uses display_name and goal_type:

{
  "project_id": "project_123",
  "env_id": "production",
  "display_name": "Signup",
  "goal_type": "page",
  "rule": {
    "page_path": "/signup"
  }
}

update_goal does not take project_id. Pass goal_id and at least one field:

{
  "goal_id": "goal_123",
  "display_name": "Trial signup",
  "rule": {
    "page_path": "/thank-you"
  }
}

delete_goal:

{
  "goal_id": "goal_123"
}

Funnel Inputs

list_funnels accepts optional pagination:

{
  "project_id": "project_123",
  "env_id": "production",
  "limit": 20,
  "cursor": "next_cursor"
}

get_funnel and delete_funnel use only funnel_id:

{
  "funnel_id": "funnel_123"
}

create_funnel requires at least two ordered steps. Each step needs a name and at least one filter:

{
  "project_id": "project_123",
  "env_id": "production",
  "name": "Checkout",
  "conversion_window": {
    "value": 7,
    "unit": "days"
  },
  "steps": [
    {
      "name": "Cart",
      "filters": [
        {
          "filter_type": "page",
          "operator": "is",
          "values": ["/cart"]
        }
      ]
    },
    {
      "name": "Purchase",
      "filters": [
        {
          "filter_type": "page",
          "operator": "is",
          "values": ["/thanks"]
        }
      ]
    }
  ]
}

update_funnel does not take project_id. Pass funnel_id and at least one field:

{
  "funnel_id": "funnel_123",
  "name": "Updated checkout"
}

Session Inputs

list_sessions:

{
  "project_id": "project_123",
  "domain": "example.com",
  "date_range": "last7days",
  "limit": 20,
  "cursor": "next_cursor"
}

For a custom session range, pass both start and end; when both are set, date_range is ignored:

{
  "project_id": "project_123",
  "start": "2026-09-01",
  "end": "2026-09-03"
}

get_session and list_session_events:

{
  "project_id": "project_123",
  "session_id": "session_123",
  "date_range": "allTime"
}

Stats Inputs

query_stats takes the full stats request body. date_range is either a preset string or a two-item [start, end] ISO8601 array.

Complete accepted input fields:

project_id, domain, timezone, metrics, date_range, dimensions, filters,
order_by, include, pagination

Stats date range presets:

last24h, last7days, last30days, last3months, last12months,
monthToDate, quarterToDate, yearToDate, allTime

Stats time dimension presets:

time, time:hour, time:day

Use time:hour for hourly series, time:day for daily series, and time only when the dashboard-level aggregate time bucket is wanted. Do not combine these with country/device/page/referrer/event breakdown dimensions.

KPI query:

{
  "project_id": "project_123",
  "domain": "example.com",
  "timezone": "Europe/Paris",
  "metrics": ["visitors", "pageviews", "bounce_rate"],
  "date_range": "last30days",
  "include": {
    "previous_period": true
  }
}

Time-series query:

{
  "project_id": "project_123",
  "timezone": "Europe/Paris",
  "metrics": ["visitors", "visits", "pageviews"],
  "date_range": "last7days",
  "dimensions": ["time:day"],
  "order_by": [["time:day", "asc"]]
}

Breakdown query with filters, sort, and pagination:

{
  "project_id": "project_123",
  "metrics": ["visitors", "pageviews"],
  "date_range": ["2026-09-01T00:00:00Z", "2026-09-03T23:59:59Z"],
  "dimensions": ["visit:country"],
  "filters": [["is", "visit:device", ["desktop"]]],
  "order_by": [["visitors", "desc"]],
  "pagination": {
    "limit": 50,
    "offset": 0
  }
}

AI Crawler Inputs

get_ai_crawler_analytics uses production implicitly. provider and crawler may be a single enum value or a non-empty array of enum values. Use provider_op, crawler_op, and status_op for filter operators.

{
  "project_id": "project_123",
  "date_range": "last30days",
  "timezone": "Europe/Paris",
  "category": "answer_fetch",
  "provider": ["OpenAI", "Anthropic"],
  "provider_op": "is",
  "crawler": "GPTBot",
  "crawler_op": "is_not",
  "status": "200",
  "status_op": "is",
  "breakdown_limit": 50,
  "filter_values_limit": 200
}

For a custom AI crawler range, pass start and end:

{
  "project_id": "project_123",
  "start": "2026-09-01T00:00:00Z",
  "end": "2026-09-03T23:59:59Z"
}

Shared Presets

Environment values:

production, development

env_id is used by goals and funnels. Default to production when the user does not specify an environment. query_stats does not take env_id; use its domain field, or pass localhost as the domain for development traffic.

Date range presets:

last24h, last7days, last30days, last3months, last12months,
monthToDate, quarterToDate, yearToDate, allTime

For a custom range, pass the explicit start and end dates in the format expected by the tool schema.

Timezone values are IANA timezones, for example:

UTC, Europe/Paris, Europe/London, America/New_York, America/Los_Angeles

Empty Workspace Setup

Start by calling list_projects when the user asks to inspect analytics and no project is known. If the workspace has no projects, pause analytics work and ask the user for:

  • project name
  • production website domain
  • whether localhost tracking should be allowed for development

Create the project with create_project. After creation, use the returned project_id in the setup instructions.

Browser Tracking Setup

After creating the project, help the user install browser tracking. Read:

https://docs.clics.dev/installation-guides

Choose the section that matches the user's framework. If the framework or entry file is unclear, ask where the app shell, root layout, or HTML head lives.

Give the user the browser tracking snippet with the real project_id already filled in:

<script
  defer
  data-project-id="<project_id>"
  src="https://clics.dev/tracker.js"
></script>

For Next.js, use the same project_id in next/script:

<Script
  strategy="afterInteractive"
  src="https://clics.dev/tracker.js"
  data-project-id="<project_id>"
/>

Help the user place the snippet in the correct file, then tell them to open the site and check the Clics dashboard for the first pageview.

AI Crawler Tracking Setup

AI crawler analytics uses a separate server-side setup. Read:

https://docs.clics.dev/installation-guides/ai-crawler-tracking

Identify the section for the user's runtime, such as Next.js, TanStack Start, Hono, Express, Cloudflare, or a generic Fetch handler. Help the user add the server-side tracking code and the required project-scoped crawler token.

Use get_ai_crawler_analytics after setup to verify crawler activity when data is available. Report that AI crawler analytics are production-only.

Reporting

When reporting analytics, state:

  • project used
  • date range
  • timezone when provided
  • filters applied
  • environment when the tool accepts env_id
  • domain when the tool accepts domain
  • for AI crawler analytics, production is implied

When a result is empty, say whether the workspace has no project, the project has no data for that date range, or the filters removed all rows.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.