CoreCP

The assistant and connecting your own AI

The panel can talk to an AI in two ways: a chat inside the panel running on your own API key, and a connection that lets your own AI client (Claude, ChatGPT) work with the panel directly. This page explains how to set both up and — more imp

Written for: Customer, Reseller, Administrator

The panel can talk to an AI in two ways: a chat inside the panel running on your own API key, and a connection that lets your own AI client (Claude, ChatGPT) work with the panel directly. This page explains how to set both up and — more importantly — what an AI may and may not do here.

Screenshot — Panel → AdministrationSettingsAI connection. The chat button itself is in the top bar. Screenshots are captured with openwolf designqc into .wolf/designqc-captures/.

The rule that decides everything

The AI can never do more than you. Every action goes through the same permission check as your own clicks. A customer who asks the assistant to restart the server gets the same answer as if that customer had clicked it themselves: not allowed.

On top of that sits a second boundary: a list of operations that are never an AI action, in any form, no matter how high your rights are. They are in the panel under Never available, with a reason per operation. Examples:

OperationWhy not
removing an accountirreversibly deletes data
writing filesthat is a shell with extra steps
installing WordPressinstalls third-party code and creates an administrator
minting a wp-admin login linkthat stays a human act

The list is generated from the tool registry, not maintained by hand. What is not in it does not exist as an AI action.

You never have to say which server something is on

Just ask: "add info@mydomain.com". The assistant works out the account and the machine itself, inside your own hosting — so if the domain is not yours, the answer is "I do not know that domain", and not a list of what your neighbour has.

If the model does name a server, that name is checked:

You areThe rule
administrator or server administratorthe machine has to be in your own assignment
reseller or end useryou have to have hosting on that machine

Since 10 August 2026 the second case is a real question about your hosting rather than about the group the machine sits in. That was the same problem as everywhere else in the panel: one machine serves customers of several resellers, so "which group is that machine in" says nothing about whether it is your server. See Where a website is served.

When the server name is wrong the answer is always the same sentence — "there is no node X you can reach" — whether that server does not exist or is not yours. That is deliberate: the difference between those two answers would let you read off the hostnames of every machine on the platform.

Chat in the panel, with your own key

The chat button in the top bar works as soon as you connect an API key of your own. You pay your own usage directly to the provider; the panel is not in between and adds nothing.

  1. Go to SettingsAI connectionChat in the panel with your own key.
  2. Choose a provider and a model.
  3. Paste your API key and click Connect.

The key is kept encrypted on the server and never shown again; you only see its last characters. Under What it has cost you are the turns, actions and tokens per day and per model — your bill, in your terms.

Disconnecting is Remove key. That takes the key off the server.

Connecting your own AI client (MCP)

If you would rather work from Claude or ChatGPT, connect it to the panel over MCP. Under The URL to connect are two addresses:

  • MCP endpoint — the full address. Paste this into your client as a custom connector. You then sign in to the panel and grant consent; the connection works with exactly your rights and nothing more.
  • Read-only endpoint (deep research) — the same, but carrying search and fetch only. Use this for ChatGPT deep research: there is demonstrably no action next to it that can change anything.

Under Connected clients you see what currently has access, with its rights, when it was connected and when it was last used. Disconnect revokes every token of that client; the client has to ask for consent again next time.

What an AI can do here

Under What an AI can do here is the full list of available actions, with the right each one needs and whether it changes anything. Changing actions are marked yes — with confirmation: the panel asks you to agree before it happens.

That is the heart of the design: reading is free, changing asks a human.

For administrators: setting it per node group

AI settings belong to the hosting group, like the rest of the group configuration. Under Per node group you set, per group:

SettingWhat it does
Customers may connect their own AIswitches the MCP connection on or off
Customers may use the chat in the panelswitches the chat on or off
Customers may also choose the providers you addedbeside the default providers
Actions per minute / per daythe rate limit
Actions per conversation · Steps per answerhow far one question may run
Concurrent conversations per customerhow many may run at once
Keep conversations (days)how long the history stays

Those limits protect the tool layer and the nodes, not a model — the customer pays for their own AI. With a group switched off, a customer in that group sees the notice that AI connections are off and nothing else.

What is recorded

Every AI action lands in the audit log, with the client that made it. Search AdministrationAudit log for the client to see what happened on your behalf. For a conversation in the panel, the retention the group sets applies.

From the terminal

The connection itself is a web thing — you connect it in your AI client, not in a shell. What you do do on the server is check what happened on somebody's behalf:

# on panel1: the audit log, oldest first, filtered down to the AI rows
corecp-panel audit export --config /etc/corecp/panel.yaml --since 0 --limit 500 \
  | grep -i 'mcp\|assistant'

# does the log's chain still add up? (an edited row fails here)
corecp-panel audit verify --config /etc/corecp/panel.yaml
corecp-panel audit status --config /etc/corecp/panel.yaml

And to check that the MCP endpoint answers at all — without a token this should be a 401, which is exactly what you want to see:

curl -si https://panel.yourbrand.com/mcp | head -1
# HTTP/2 401

That the actions themselves exist independently of the AI is visible in corectl: every AI action is an existing operation and nothing new.

corectl help | head -40        # the same operations, with no AI in between

When something is not right

What you seeWhat it usually is
"AI connections are off for this hosting group"An administrator has not enabled them for the group.
The chat button is not thereNo key connected, or the chat is off for your group.
The AI says something is not allowedExactly right: your own rights apply. Ask your hosting provider, or do it yourself in the panel.
The client keeps asking for consentThe connection was disconnected, or the token expired. Connect again.
"{used} of {limit} AI actions today" and it stopsYour group's daily limit is reached. Tomorrow again, or ask for more.
An action appears nowhere in the listIt is deliberately excluded. Look under Never available for the reason.

See also

  • What you can arrange yourself — the rights that apply to the AI too.
  • Securing your account — why a connection never does more than you.
  • Finding help and seeing what changed — where the rest of the documentation lives.