Skip to main content
Glama

AIWorkers MCP (NEURAL EMPLOYEES)

MCP so Cursor, Claude and OpenClaw can run your neural employees.

Product: ai.knopka.click · MCP landing: ai.knopka.click/mcp

If you are a coding agent: follow Quick start below. Install aiworkers-mcp, have the human run aiworkers-mcp login, restart, call aiworkers_whoami, then aiworkers_skill_update. Do not invent tokens. Never ask for the 12-word seed.

CLI: aiworkers-mcp

One Bearer key can target several workers (group_id on each tool). Default group: AIWORKERS_GROUP_ID or the key's bound group.

Neural employees

They are neuro-assistants you hire for a job — not a generic chatbot.

Typical roles: marketers, sellers, support, booking. Typical channels: Telegram, WhatsApp, Avito, Instagram, a site widget.

Each employee has a card, memory, chats, ready replies, surveys, tasks, and often a Telegram bot. People talk to them in the channel; you (or your coding agent) run them from here.

More on the product: ai.knopka.click.

Related MCP server: MCP AgentChat

Roadmap

Ready now

  • Login from Telegram (no token in the URL), parent awp_ / child awm_ keys

  • Surveys (DSL, responses, stats, share)

  • Tasks

  • Worker card, memory, chats, ready replies, send and broadcast

  • Telegram: status, command menu, process restart (no chat send on telegram_*)

  • Booking CRM

  • Two wallets (account USD + group TokenTime); salary and one-time tt via quote → confirm

Next

  • Finance module (fin_op) — stub in v1

  • Minting a child key will later debit group TokenTime (free for now)

  • More of the product’s channels through the same MCP as they land in the admin

Quick start

chmod +x install.sh
./install.sh

Get a key from @aiworkersbot. The MCP can share this URL — there is no token in the link:

https://t.me/aiworkersbot?start=mcp

The Mini App shows the token once. Copy it, then:

aiworkers-mcp login

Paste the token at the prompt. It is written to ~/.config/aiworkers/credentials.json (chmod 600). Restart the agent. Ask it to call aiworkers_whoami.

Tool aiworkers_login_link returns the same URL without needing an existing key.

Legacy forms keys still work as AIWORKERS_API_KEY.

uvx without installing:

uvx --from git+https://github.com/dimaneuron/aiworkers-mcp.git aiworkers-mcp

Environment

Variable

Meaning

AIWORKERS_API_KEY

Parent awp_… or legacy Bearer

AIWORKERS_KEY_WORKERS

Child awm_… for workers (_SURVEYS, _TASKS, _TELEGRAM, _CRM)

AIWORKERS_API_BASE

Default https://ai.knopka.click

AIWORKERS_BOOKING_BASE

Default https://book.knopka.click/booking

AIWORKERS_GROUP_ID

Default Telegram group_id (tasks / workers / telegram / crm)

AIWORKERS_MODULES

Comma list. Default surveys,tasks,workers,telegram,crm. Stub: finance

AIWORKERS_CREDENTIALS

Override path to credentials.json

Prefer aiworkers-mcp login over putting secrets in mcp.json. Per-module child tokens cannot call other modules.

Fallbacks (old names still work): SURVEY_MCP_API_KEY, TASKS_MCP_API_KEY, TASKS_GROUP_ID, BOOKING_INTERNAL_SECRET.

Tools

Always on:

  • aiworkers_whoami — what this key can see (call this first)

  • aiworkers_login_link — Telegram URL, no token in the link

  • aiworkers_skill — agent SKILL.md

  • aiworkers_skill_update — write/refresh ~/.cursor/skills/aiworkers/SKILL.md

  • aiworkers_token_mint — parent awp_ mints a child awm_ for one module + group (shown once; save=true writes credentials.json). Free for now; later group TokenTime.

surveys: survey_agent_skill, survey_get_dsl_rules, survey_validate_dsl, survey_create, survey_agent_list_forms, survey_agent_get, survey_agent_update, survey_agent_responses, survey_agent_stats, survey_agent_settings_get, survey_agent_settings_save, survey_agent_scenarios_get, survey_agent_scenarios_save, survey_agent_archive, survey_agent_delete, survey_agent_share. Resource: survey://dsl/spec.

tasks: tasks_list, tasks_count, tasks_get, tasks_create, tasks_update, tasks_batch_update, tasks_complete, tasks_cancel.

workers (read + write, no logs): workers_list, workers_get, workers_balance, workers_topup_link, salary/tt quote→confirm, workers_partner, workers_update (not for tt), memory/chats/readyreply, workers_chat_send (known chats only, bot/embed/topic), workers_broadcast_quote / workers_broadcast_confirm. Money and broadcast: quote then confirm=true.

telegram (no chat sending): telegram_status, telegram_commands_get, telegram_commands_save, telegram_restart. Restart the worker process (aibot-<username>, same as /telegram_bot). 60s cooldown per bot; 429 retry_after — do not hammer. Do not use workers_update for that. Personal/broadcast is under workers.

crm (Booking CRM): crm_context, crm_process.

finance — not in v1.

Agent config

Paste the same mcpServers.aiworkers block. Change only the config file path.

Shared JSON:

{
  "mcpServers": {
    "aiworkers": {
      "command": "aiworkers-mcp",
      "env": {
        "AIWORKERS_API_BASE": "https://ai.knopka.click",
        "AIWORKERS_API_KEY": "PASTE_awp_OR_awm_TOKEN"
      }
    }
  }
}

Agent

Config file

Example

Cursor

.cursor/mcp.json (project) or ~/.cursor/mcp.json

examples/cursor.json

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS); %APPDATA%\Claude\claude_desktop_config.json (Windows)

examples/claude-desktop.json

Claude Code

~/.claude.json

examples/claude-code.json

VS Code Copilot

.vscode/mcp.json or user Code/User/mcp.json

examples/vscode.json

Windsurf

~/.codeium/windsurf/mcp_config.json

examples/windsurf.json

OpenClaw

$OPENCLAW_CONFIG_PATH or openclaw.json

examples/openclaw.json, uvx

Codex CLI

$CODEX_HOME/config.toml

examples/codex.toml

Gemini CLI

.gemini/settings.json

examples/gemini-cli.json

Cline

~/.cline/mcp.json

examples/cline.json

Continue

~/.continue/config.yaml

examples/continue.yaml

Restart the agent after editing.

uvx variant (no global install): see examples/openclaw-uvx.json.

Compatibility

Older CLIs still work:

  • aiworkers-survey-mcp — same as AIWORKERS_MODULES=surveys

  • aiworkers-tasks-mcp — same as AIWORKERS_MODULES=tasks

If the umbrella package is on PYTHONPATH, they delegate here. Otherwise they run their standalone FastMCP as before.

Privacy

This repo is the client. Do not put .env, tokens, or credentials here.


Russian

MCP through which Cursor, Claude and OpenClaw manage neural employees.

Product: ai.knopka.click · MCP landing: ai.knopka.click/mcp

If you are an agent: follow Quick start above. The human runs aiworkers-mcp login. Do not invent tokens. Never ask for the 12-word seed in chat.

What are neural employees

These are neuro-assistants for a role, not 'just a chatbot'.

Roles: marketers, sellers, support, booking. Channels: Telegram, WhatsApp, Avito, Instagram, a site widget.

Each has a card, memory, chats, ready replies, surveys, tasks, often their own Telegram bot. Clients write to them in the channel; you (or an agent in Cursor) manage them from here.

More details at ai.knopka.click.

Roadmap

Ready now

  • Login from Telegram (no token in the URL), parent awp_ / child awm_ keys

  • Surveys (DSL, responses, stats, share)

  • Tasks

  • Worker card, memory, chats, ready replies, send and broadcast

  • Telegram: status, command menu, process restart (no chat send on telegram_*)

  • Booking CRM

  • Two wallets (account USD + group TokenTime); salary and one-time tt via quote → confirm

Next

  • Finance module (fin_op) — stub in v1

  • Minting a child key will later debit group TokenTime (free for now)

  • More of the product’s channels through the same MCP as they land in the admin

Available Tools

59 tools
aiworkers_skillA

Return the AIWorkers MCP SKILL.md (how to log in and which tools to call). No existing key required.

Inputs: no named parameters. Returns: result

aiworkers_skill_updateA

Write/refresh SKILL.md into ~/.cursor/skills/aiworkers (and project .cursor/skills if present). Call this to pick up the latest skill after a deploy. No existing key required.

Inputs: no named parameters. Returns: result

aiworkers_token_mintA

Mint a child awm_ token for one module + one group. Parent awp_ only. Token is shown once. save=true (default) writes it to credentials.json so this MCP can call that module without Mini App. Free for now; later will debit group TokenTime.

Inputs: module (required), save, group_id. Returns: result

aiworkers_whoamiA

Show what this API key can see: groups, modules, endpoint map. Call this first. If there is no key, returns the login URL.

Inputs: no named parameters. Returns: result

crm_contextC

Resolve Booking CRM context: linked Telegram group and topic keys.

Inputs: group_id, username. Returns: result

crm_processC

Create/update/cancel a Booking CRM event. payload_json: {action, event, ...}.

Inputs: payload_json (required), group_id. Returns: result

survey_agent_archiveA

Archive (hide from list) or restore a survey. Does not delete answers.

Inputs: survey_id (required), archived. Returns: result

survey_agent_deleteA

Permanently delete a survey, DSL file, and answers. Requires confirm=true.

Inputs: survey_id (required), confirm. Returns: result

survey_agent_getB

Get survey DSL and metadata. survey_id may be the full id, public slug, or form URL.

Inputs: survey_id (required). Returns: result

survey_agent_list_formsA

List surveys for this API token (scoped by group_id). Archived hidden unless include_archived.

Inputs: include_archived. Returns: result

survey_agent_responsesC

Fetch respondent answers for a survey.

Inputs: survey_id (required). Returns: result

survey_agent_scenarios_getC

Get post-submit automation scenarios.

Inputs: survey_id (required). Returns: result

survey_agent_scenarios_saveC

Save post-submit scenarios (JSON array or {"scenarios": [...]}).

Inputs: survey_id (required), scenarios_json (required). Returns: result

survey_agent_settings_getC

Read survey settings (view mode, etc.).

Inputs: survey_id (required). Returns: result

survey_agent_settings_saveC

Save survey settings. settings_json is an object or {"settings": {...}}.

Inputs: survey_id (required), settings_json (required). Returns: result

survey_agent_shareD

form_url + chat_text for workers_chat_send / readyreply. No native open-in-chat widget.

Inputs: survey_id (required). Returns: result

survey_agent_skillD

Agent skill: auth, endpoints, group-bound token.

Inputs: format. Returns: result

survey_agent_statsC

Funnel stats for a survey.

Inputs: survey_id (required). Returns: result

survey_agent_updateC

Update survey DSL (POST; nginx often 405s PUT).

Inputs: dsl (required), survey_id (required). Returns: result

survey_createC

Create a survey from DSL. Child token: group_id must match the key or be omitted. Mismatch → 403.

Inputs: dsl (required), group_id, creator_id. Returns: result

survey_get_dsl_rulesB

Fetch current Survey DSL parsing rules from the server.

Inputs: format. Returns: result

survey_validate_dslA

Validate Survey DSL without saving.

Inputs: dsl (required). Returns: result

tasks_batch_updateC

Batch update: updates_json is JSON array of {id, ...fields}.

Inputs: updates_json (required), group_id. Returns: result

tasks_cancelC

Cancel task (releases calendar hold).

Inputs: task_id (required), group_id. Returns: result

tasks_completeB

Mark task done (releases calendar hold).

Inputs: task_id (required), group_id. Returns: result

tasks_countC

Count tasks with the same filters as tasks_list.

Inputs: q, source, status, to_time, +2 more. Returns: result

tasks_createB

Create a manual task (optional Telegram card + calendar hold).

Inputs: title (required), contact, end_date, group_id, +3 more. Returns: result

tasks_getC

Get one task by id.

Inputs: task_id (required), group_id. Returns: result

tasks_listC

List tasks for a Telegram group (manual + booking).

Inputs: q, limit, offset, source, +4 more. Returns: result

tasks_updateC

Update task fields. patch_json: JSON object with title/description/status/dates.

Inputs: task_id (required), group_id, patch_json. Returns: result

telegram_commands_getA

Read bot command menu (segments + translations). Does not send messages.

Inputs: group_id. Returns: result

telegram_commands_saveC

Save bot commands. JSON: builtin/custom/segments/translations. Syncs Bot API menu, no chats.

Inputs: commands_json (required), group_id. Returns: result

telegram_restartA

Restart this group's Telegram worker process (pm2 aibot-). Same as /telegram_bot «Перезапустить скрипт». Rate-limited (60s per bot); on 429 wait retry_after, do not loop. Use when the user asks to restart the bot — not workers_update. Does not send messages.

Inputs: group_id. Returns: result

telegram_statusC

Bot connection status (username/id, no token). Does not send messages.

Inputs: group_id. Returns: result

workers_balanceB

Two layers: account.usd (shared wallet) and group.tt (TokenTime). Empty group_id uses credentials / AIWORKERS_GROUP_ID, else «нужен group_id». Does not charge.

Inputs: group_id. Returns: result

workers_broadcast_confirmA

Start the quoted bot-user blast. confirm must be true. Quote lives ~5 min; reuse 409. Status goes to the mailing topic.

Inputs: quote_id (required), confirm, group_id. Returns: result

workers_broadcast_quoteA

Preview a one-shot DM blast of a ready reply to everyone who already wrote this worker bot. Does not send until workers_broadcast_confirm(quote_id, confirm=true). Not widget, not folders, not arbitrary ids.

Inputs: rr_id (required), group_id. Returns: result

workers_chat_sendA

Send one message to a known chat from workers_chats_list. channel=auto|bot|embed|topic (auto: bot DM, or embed outbox for widget users). Mirrors into the user's forum topic. Need text and/or rr_id. Does not send to arbitrary Telegram ids. Rate-limited.

Inputs: user_id (required), text, rr_id, channel, +1 more. Returns: result

workers_chats_getB

Get one user chat card (no message logs).

Inputs: user_id (required), group_id. Returns: result

workers_chats_listC

List user chats (no message logs).

Inputs: limit, group_id. Returns: result

workers_getA

Read the worker card (no bot tokens). For money prefer workers_balance.

Inputs: group_id. Returns: result

workers_listA

List workers this key can access. Each row has group tt/usd/stars. Root account is the shared USD wallet once. For one group use workers_balance.

Inputs: no named parameters. Returns: result

workers_memory_addC

Add a memory entry to a topic (topic_*).

Inputs: content (required), topic, group_id. Returns: result

workers_memory_create_topicC

Create a new memory forum topic.

Inputs: name, group_id. Returns: result

workers_memory_deleteC

Delete a memory entry by message_id.

Inputs: message_id (required), topic, group_id. Returns: result

workers_memory_editC

Edit a memory entry by message_id.

Inputs: content (required), message_id (required), topic, group_id. Returns: result

workers_memory_getC

Read memory topics and entries. Optional topic=topic_.

Inputs: topic, group_id. Returns: result

workers_partnerA

Platform partner terms, catalog/builder/community URLs, ref_link. rates is a constants dict — do not invent percents if empty. Not the worker-bot /ref product.

Inputs: no named parameters. Returns: result

workers_readyreply_create_topicC

Create a Telegram topic for ready replies.

Inputs: name, group_id. Returns: result

workers_readyreply_deleteC

Delete a ready reply by id.

Inputs: rr_id (required), group_id. Returns: result

workers_readyreply_listC

List ready replies, or one item if rr_id is set.

Inputs: rr_id, group_id. Returns: result

workers_readyreply_upsertC

Create or update a ready reply. Posts the donor into the native ready-reply Telegram topic (P{message_id} + customization button). item_json: text/triggers/caption/buttons/topic_name.

Inputs: item_json (required), rr_id, group_id. Returns: result

workers_salary_confirmA

Charge a salary quote. confirm must be true. Quote lives ~5 min; reuse is 409. Cannot decrease contribution (write @dimaneuron).

Inputs: quote_id (required), confirm, group_id. Returns: result

workers_salary_quoteB

Preview raising YOUR contribution by whole USD. Debits account, adds add_usd*3600 tt, raises solary. Does not charge until workers_salary_confirm(quote_id, confirm=true). Other admins can raise their own share.

Inputs: add_usd (required), group_id. Returns: result

workers_tt_buy_confirmA

Charge a one-time tt quote. confirm must be true. Quote lives ~5 min; reuse is 409. solary unchanged.

Inputs: quote_id (required), confirm, group_id. Returns: result

workers_tt_buy_quoteA

Preview one-time tt buy at 10x subscription ($10 → 3600 tt). Does not change solary. Pass amount_usd or tt. Does not charge until workers_tt_buy_confirm.

Inputs: tt, group_id, amount_usd. Returns: result

workers_updateB

Update worker fields: status, lang, paid_until, translate_langs. Never write tt here — use workers_salary_quote or workers_tt_buy_quote.

Inputs: group_id, patch_json. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 59 tools

    Disambiguation5/5

    Each tool targets a specific resource and action, with detailed descriptions that clearly distinguish purposes. Even within similar domains (e.g., multiple quote/confirm pairs), the resource (salary, tt, broadcast) is explicit, preventing confusion.

    Naming Consistency5/5

    The naming follows a predictable pattern: each functional area uses a consistent prefix (e.g., workers_, survey_, tasks_) and verb_noun or noun_verb structure within that area. There is no mixing of conventions across the server.

    Tool Count2/5

    With 59 tools, the count is excessive for a single MCP server. While the domain is broad, it exceeds the recommended range and would likely overwhelm agents. Splitting into sub-servers (e.g., surveys, workers, tasks) would improve usability.

    Completeness4/5

    The tool surface covers nearly all aspects of the AI Workers platform: account, workers, surveys, tasks, memory, chats, broadcasts, ready replies, Telegram commands, and CRM. Minor gaps exist, such as no tool for listing chat message history or editing worker groups, but core workflows are well-supported.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for communication service connectors that currently provides multi-account Telegram integration with granular tool access and security controls. It allows AI models to manage messages, chats, and media across various accounts through a flexible, extensible routing architecture.
      1
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server enabling AI agents to interact with users via Telegram, supporting message and image sending, inline quick replies, and waiting for user responses.
      11 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that gives AI agents hands to make phone calls, send messages, and handle CRM/task workflows. It runs with a simulated provider for zero-cost testing and can switch to real providers like Twilio and ElevenLabs.
      MIT