Use Siliqun Rotor from a coding agent
Coding agents such as Claude Code, Codex and Cursor can use Siliqun Rotor in two ways:
- As a tool while they work: the agent asks Siliqun Rotor which of your declared tools fits a request before it acts.
- As knowledge while they build: the agent reads these docs and a skill, and writes your integration correctly.
Everything below is in the public repository github.com/siliqun-rotor/agents, under Apache-2.0.
The MCP server
siliqun-rotor-mcp is an MCP server that runs over stdio. It needs Node 18 or later and has no other dependencies. It offers three tools:
| Tool | What it does |
|---|
route_request | Sends a request and the declared tools to the engine. Returns decided (a tool and its arguments), ask (a required value is missing), unresolved (two tools fit equally) or refused (nothing fits), with the evidence |
ask_flow | Sends one message to an activated Studio flow in your hosted project |
engine_health | Checks that the engine is reachable |
It never runs a tool. Your application checks permissions and runs the tool itself.
Its settings come from the environment:
| Setting | Meaning |
|---|
SILIQUN_ROTOR_ENGINE | The engine URL. The default is a local engine at http://127.0.0.1:8700; the hosted engine is https://api.sqrengine.com |
SILIQUN_ROTOR_PROJECT_KEY | Your project key, for the hosted engine. Create it in the Studio under Customer Settings |
SILIQUN_ROTOR_PROJECT | Your project ID. It is sent with the key |
SILIQUN_ROTOR_FLOW | An activated flow's ID, for ask_flow |
SILIQUN_ROTOR_CLIENT | A client reference, if your project requires one |
Claude Code
Install the plugin. It includes the MCP server and the integration skill:
/plugin marketplace add siliqun-rotor/agents
/plugin install siliqun-rotor@siliqun-rotor
To add only the server instead:
claude mcp add --transport stdio siliqun-rotor \
--env SILIQUN_ROTOR_ENGINE=http://127.0.0.1:8700 \
-- node /path/to/siliqun-rotor-mcp.mjs
Codex CLI
Add the server to ~/.codex/config.toml:
[mcp_servers.siliqun-rotor]
command = "node"
args = ["/path/to/siliqun-rotor-mcp.mjs"]
env = { SILIQUN_ROTOR_ENGINE = "http://127.0.0.1:8700" }
Cursor, Claude Desktop and other MCP clients
Add a standard mcpServers entry:
{
"mcpServers": {
"siliqun-rotor": {
"command": "node",
"args": ["/path/to/siliqun-rotor-mcp.mjs"],
"env": { "SILIQUN_ROTOR_ENGINE": "http://127.0.0.1:8700" }
}
}
}
A local engine is an MCP server too
Started with bin/siliq-web --mcp-stdio, the engine serves its own tools over stdio: route, decide, act, read, shape and task. It needs no network and no key.
The skill
The siliqun-rotor skill teaches an agent how to integrate Siliqun Rotor into an application:
- what each outcome means and what your application must do;
- how to call the local and hosted engines;
- how to keep a project key on the server;
- how to describe tools so the engine decides well.
It uses the open Agent Skills format. The Claude Code plugin includes it. For other agents, copy skills/siliqun-rotor/ into the folder your agent reads skills from.
agentbus: coordinate a team of agents
If several agents work on one project, each in its own session, agentbus gives them a shared channel:
- messages, with read state;
- tasks, with an owner, a status and a log;
- decisions, which go to a person.
The bus is a remote MCP server. The agentbus plugin connects Claude Code to your team's bus:
/plugin install agentbus@siliqun-rotor
Claude Code asks for your bus's address and this agent's token. After that, each prompt starts with any unread messages, and the agent can read them, reply, update its tasks, and ask a person for a decision. Codex and other MCP clients connect to the same /mcp address with a bearer token. ChatGPT uses OAuth sign-in. The agentbus server is not yet published as a download, so this is for teams that already run a bus.
Docs for agents
What the agent must not do
A decision is not permission. Act only on decided, and only after your application has checked that the signed-in user may run that tool. On ask, ask the user for the named value. On unresolved or refused, run nothing. See route a request to a declared tool and describe your tools well.