AIWorkers MCP
MCP server for AIWorkers: manage neural employees, surveys, tasks, workers, Telegram bots, and Booking CRM.
Authenticate/inspect: login link, skill docs, whoami, mint child tokens.
Surveys: CRUD, DSL validation, responses, stats, settings, scenarios, sharing.
Tasks: list/count/get/create/update/batch/complete/cancel.
Workers: list/get/update, balances/top-up, salary/tt quotes/confirm, partner, memory, chats, send/broadcast, ready replies.
Telegram: status, command menus, restart bot process.
Booking CRM: resolve context, create/update/cancel events.
All actions are scoped by API key and optional group_id.
Enables sending messages to Instagram chats via the AIWorkers platform's worker chat send functionality.
Provides tools for managing Telegram bots (status, command menu, restart) and sending messages to Telegram chats through the AIWorkers platform.
Enables sending messages to WhatsApp chats via the AIWorkers platform's worker chat send functionality.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AIWorkers MCP list my workers and their status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_/ childawm_keysSurveys (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 v1Minting 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.shGet 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 loginPaste 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-mcpEnvironment
Variable | Meaning |
| Parent |
| Child |
| Default |
| Default |
| Default Telegram |
| Comma list. Default |
| Override path to |
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 linkaiworkers_skill— agent SKILL.mdaiworkers_skill_update— write/refresh~/.cursor/skills/aiworkers/SKILL.mdaiworkers_token_mint— parentawp_mints a childawm_for one module + group (shown once;save=truewrites 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 |
| |
Claude Desktop |
| |
Claude Code |
| |
VS Code Copilot |
| |
Windsurf |
| |
OpenClaw |
| |
Codex CLI |
| |
Gemini CLI |
| |
Cline |
| |
Continue |
|
Restart the agent after editing.
uvx variant (no global install): see examples/openclaw-uvx.json.
Compatibility
Older CLIs still work:
aiworkers-survey-mcp— same asAIWORKERS_MODULES=surveysaiworkers-tasks-mcp— same asAIWORKERS_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_/ childawm_keysSurveys (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 v1Minting 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 toolsaiworkers_login_linkA
Share a Telegram URL to get a one-time MCP token. The link has no secret. After the Mini App shows the token once, run aiworkers-mcp login and paste it. Works without an existing key.
Inputs: no named parameters. Returns: result
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_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_topup_linkA
URL to top up the ACCOUNT wallet in @aiworkersbot (users.balance). Does not credit group tt. No tt_credit. If amount_usd omitted: ask_amount=true and start=addBalance. If set: start=addBalance_10 (integer USD); bot shows Change amount. Dot in start payload is invalid.
Inputs: group_id, amount_usd. 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
Scored across 59 tools
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.
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.
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.
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
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
AI agent platform: manage leads, conversations, bots, calendar and CRM via MCP.
Hosted Telegram MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn 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-
- AlicenseNot gradedqualityDmaintenanceAn 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 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server exposing WhatsApp Cloud API operations as tools for AI agents like Claude Code, Cursor, and Codex.MIT
- AlicenseNot gradedqualityDmaintenanceAn 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