For developers & agencies
Set your bot up by talking to your own AI assistant.
Point an assistant you already use — Claude, or anything that speaks MCP — at Scode, hand it one scoped key, and say "here's my business, set it up." It builds the knowledge base, writes the answers, wires the actions, and tests its own work.
What this actually is
Scode exposes an MCP server — a small program your assistant runs — that lets it read and write your bot's configuration through the Scode API. It is a setup tool, not the bot itself.
The bot that answers your customers runs inside Scode on a fast, inexpensive model. This is a separate surface, and the split is the whole idea: the thing that decides support quality is the knowledge and the action descriptions, not the model reading them back. So it is worth pointing a strong assistant at that preparation work, even though a small one serves the result to customers.
You bring your own. Scode only provides the key and the tools it calls. Nothing about your setup assistant touches what your customers experience — they never talk to it.
Getting started
Create a management key
In the dashboard, open Settings → Management keys (owner only) and create one. Tick only the permissions the job needs — see below. You'll see the key once.
Copy the setup config
The same dialog gives you a ready-to-paste configuration block with the key already in it. It looks like this:
{ "mcpServers": { "scode-setup": { "command": "npx", "args": ["-y", "@scode/mcp-server"], "env": { "SCODE_MANAGEMENT_KEY": "smk_your_key_from_the_dashboard", "SCODE_API_URL": "https://api.ai.scode.iq" } } } }Paste it into your assistant's MCP configuration. (In Claude Desktop or Claude Code, that is the
mcpServerssection of its config file.) Thenpxline fetches and runs the server for you — nothing to install by hand.Talk to it
Ask for what you want in plain language. It will check what it's allowed to do first, then get to work.
# then just talk to your assistant in plain language: "Here's my furniture shop. Crawl zanhome.iq, add a Q&A for our Basra delivery fee, then test it in Iraqi Arabic and tell me anything the bot gets wrong."
The assistant tests its own work by asking the bot questions the way a customer would. Those test conversations are never delivered to anyone, never cached, and never counted in your analytics — there's a free allowance of 200 per billing period. Good setup means testing far more than feels necessary, especially in the Iraqi dialect your customers actually type.
Permissions (scopes)
A key does only what you ticked — nothing more. Each permission is granted on its own, so you can hand an agency the ability to build knowledge without also letting it point your bot at outside systems.
| Permission | Lets the assistant… |
|---|---|
knowledge:read | See your documents, Q&A pairs, business facts, and crawl jobs. |
knowledge:write | Upload documents, crawl your website, and create or edit Q&A pairs and business facts. |
insights:read | See what real customers asked that the bot couldn't answer — the best guide to what to add next. |
test | Ask the bot test questions (the free, invisible allowance above). |
actions:read | See the actions the bot can perform, and their invocation logs. |
actions:write | Create or edit AI Actions. Granted separately on purpose: an action can make your bot send data to an outside URL, so this is the one permission to hand out deliberately, and only to someone you'd trust with that. |
actions:write is the powerful one — everything else only shapes what the bot says, but an action changes what it does. The dashboard flags it in bright warning colour for exactly this reason. Leave it unticked unless the job is specifically to build an integration.
What a key can never do
The list above is the entire reach of a management key. Everything else is unreachable — not by a rule someone remembered to add, but because those parts of Scode were never opened to this kind of key at all.
✗ Out of reach, always
- Billing — can't see a card, change your plan, or spend money.
- Deleting — there are no delete tools. It can retire a Q&A pair, never destroy your knowledge base.
- Channels — can't connect or disconnect WhatsApp, Instagram, or Telegram.
- Other keys — can't create a broader key for itself or outlive your revoking it.
- Your account — can't change settings, team, or passwords.
✓ In reach, if you granted it
- Read and build your knowledge base.
- Crawl your website into the bot.
- See what customers ask.
- Wire and edit AI Actions.
- Test the bot as a customer would.
Is it safe? Will it expose my keys?
No — and the design goes out of its way to make sure of it. Three things worth knowing:
Your own API credentials stay hidden
If an AI Action carries a secret — say an authorization header for your order system — that value is redacted before it ever reaches a management key. The assistant can see which header an action sends (so it can help you wire and test it) but not the secret inside. Your Gemini, Voyage, or provider keys aren't part of this surface at all; they live in the server environment and no key can read them.
A management key is its own kind of credential
It starts with smk_, travels in its own header, and is stored only as a hash — Scode can't show it to you again after creation, and neither can anyone who gets into the database. It is deliberately not the same as your public widget key, so the two can never be confused for one another.
You stay in control
Send it through something private — not email or a group chat. Give the narrowest permissions the job needs, set a short expiry, and revoke it when the work is done. If it ever leaks, revoking is instant and creating a fresh one takes seconds.
The tools it has
Sixteen in total — six that read, ten that write, and none that delete. You don't call these yourself; your assistant does, based on what you ask for. They map onto the permissions above.
Reading
Writing
If you want the bot to answer "what's my balance?" or "reschedule my booking" for a logged-in user of your own app, that's the identity hand-off, covered in Connect your platform. The test_bridge tool here is how your assistant checks that integration is safe before it goes live.