@clikta/mcp-server

@clikta/mcp-server

Enables Claude to drive a real browser and automatically turn interactions into Clikta interactive demos, step-by-step guides, and narrated videos.

Category
访问服务器

README

@clikta/mcp-server

MCP server that lets Claude drive a real browser and turn what it does into a Clikta interactive demo, step-by-step guide, and narrated video — automatically. No manual clicking, no Chrome extension required.

It reuses the exact same pipeline as the Clikta Chrome extension: every action is posted as an Event to your Clikta workspace, and clikta_finish_recording triggers the same AI guide generator that turns a human's recording into steps.

Built by Clikta — the design rationale and implementation history live in docs/mcp-architecture.md in the main clikta repo.

Setup

  1. Get an API token: in the Clikta web app, go to Settings → API Token and generate one (clikta_...). This is the same token type the Chrome extension uses.
  2. Install Playwright's Chromium browser (runs automatically on npm install via postinstall, but you can re-run it manually):
    npx playwright install chromium
    
  3. Add the server to Claude Code (or any MCP host) — either via the CLI:
    claude mcp add clikta -- npx -y @clikta/mcp-server
    
    or by adding it to your .mcp.json:
    {
      "mcpServers": {
        "clikta": {
          "command": "npx",
          "args": ["-y", "@clikta/mcp-server"],
          "env": {
            "CLIKTA_API_URL": "https://clikta.com",
            "CLIKTA_API_TOKEN": "clikta_..."
          }
        }
      }
    }
    

Environment variables

Variable Required Default Description
CLIKTA_API_TOKEN yes Generated in Settings → API Token
CLIKTA_API_URL no https://clikta.com Point at a self-hosted instance if you run one
CLIKTA_MCP_HEADLESS no false Set "true" to run Chromium headless (CI/scripted use). Headed by default so you can watch the demo happen live

Tools

Tool What it does
clikta_start_recording Creates a recording, launches the browser, optionally navigates to toolUrl
clikta_navigate Go to a URL, logs a navigate step
clikta_click Click an element (by role/name, text, or CSS selector), logs a click step. Refuses destructive-looking targets (delete/pay/confirm purchase/...) unless confirm: true
clikta_type Fill a field, logs an input step
clikta_note Explain why you did something — feeds the AI guide generator the same way a human's spoken narration does. Use this liberally, it's the highest-leverage tool here
clikta_screenshot Ad-hoc screenshot saved to the Clikta screenshot library
clikta_finish_recording Marks the recording done, generates the AI guide, publishes it, returns the share link, closes the browser
clikta_list_recordings Lists existing recordings, to resume or avoid duplicates
clikta_list_tools Lists registered Clikta "Tool" entities (products), to attach a recording to an existing one via toolId

Typical flow

  1. clikta_start_recording with a name and toolUrl pointing at the product/page to demo
  2. Open the returned watchUrl in a browser to watch steps land live
  3. clikta_navigate / clikta_click / clikta_type through the flow, calling clikta_note to explain intent along the way
  4. clikta_finish_recording to generate and publish the guide

Guardrails

  • Never click through payments, deletions, or other irreversible actions without the user's explicit go-ahead — clikta_click blocks these by default (see src/locator.ts's destructive-label patterns) and requires confirm: true to proceed.
  • clikta_start_recording warns (non-blocking, via a warning field in its result) when toolUrl's host doesn't look like a staging/sandbox environment — prefer pointing it at one when available.
  • API calls retry transient failures (network errors, 408/409/429/5xx) up to 3 times with backoff; real client errors (401/404/400/...) fail immediately since retrying won't help.
  • Screenshots may capture whatever is on the page, including sensitive data — same disclosure as the Chrome extension's privacy policy applies here.

Development

npm install
npm run build   # tsc -> dist/
npm run dev      # tsc --watch

Manual test scripts

Both spawn the built server and drive it through the real MCP client protocol (@modelcontextprotocol/sdk's Client + StdioClientTransport), not a shortcut import of the tool functions. Need a real Clikta instance and an API token — generate one from Settings → API Token in the Clikta web app (or, if you also have the main clikta repo checked out, node scripts/mint-api-token.mjs you@example.com there mints one directly against the dev DB without going through the login UI).

CLIKTA_API_URL=http://localhost:3000 CLIKTA_API_TOKEN=clikta_... node scripts/e2e-test.mjs        # happy-path pipeline
CLIKTA_API_URL=http://localhost:3000 CLIKTA_API_TOKEN=clikta_... node scripts/guardrail-test.mjs   # destructive-click block + sandbox warning

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选