The Api.Login method checks the login data of the user and on successful verification opens a new Web API session. The method requests the name and the password of the user in plain text as proof of authorization. The user name and the password are encrypted before they are transferred to the ser...
AI agents use Api-Login to create or update resources in ThinkPLC-MCP — usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your ThinkPLC-MCP environment.
Api.Login creates a new authenticated session (a stateful resource on the server), which is a Write operation. It does not read existing data, execute commands, destroy data, or involve finances. Misuse could allow an AI agent to authenticate as a user and gain access to PLC controls, but the login itself is reversible (session can be terminated).
From the tool's definition 'opens a new Web API session' — the method creates a new session resource on the server by verifying credentials and establishing an authenticated session.
Documented attack patterns abuse exactly the kind of access Api-Login gives an agent:
PolicyLayer is an MCP gateway — it sits between your AI agents and ThinkPLC-MCP, and nothing reaches the server without passing your rules. This is the rule we recommend for Api-Login:
{
"version": "1",
"default": "deny",
"tools": {
"Api-Login": {
"limits": [
{
"counter": "api-login_rate",
"window": "minute",
"max": 30,
"scope": "grant"
}
]
}
}
} Api-Login stays usable, but capped — an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
Free to start. No card required.
The Api.Login method checks the login data of the user and on successful verification opens a new Web API session. The method requests the name and the password of the user in plain text as proof of authorization. The user name and the password are encrypted before they are transferred to the server. Possible error messages: 4 No resources || The system does not have the required resources to carry out this request. Perform the request again as soon as enough resources are available again. 100 Login failed || The user name and/or password are not permissible. Assign a permissible user name and a permissible password. Another reason why the login failed may be an active brute force attack. 101 Already authenticated || The current X-Auth-Token is already authenticated. Use Api.Logout before you authenticate yourself again. 102 Login Failed - Password expired || The password of the user account has expired. The user must change the password in order to be able to successfully authenticate again. It is categorised as a Write tool in the ThinkPLC-MCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
Register the ThinkPLC- MCP server in PolicyLayer and add a rule for Api-Login: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches ThinkPLC-MCP. Nothing to install.
Api-Login is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the Api-Login rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for Api-Login. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
Api-Login is provided by the ThinkPLC- MCP server (mrwan84/thinkplc-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Start from ThinkPLC-MCP, add the rest of your stack, and see everything your agents can call. Then put policy on all of it.
Free to start. No card required.
23 ThinkPLC-MCP tools catalogued and risk-classified — across an index of 43,000+ MCP servers.