Docs / Guide / Work from your tools
Other MCP clients
Use the publisher MCP server from any client that runs a local MCP server over stdio, such as Windsurf, Zed or JetBrains AI Assistant.
Install
Install ekl as a tool, so your client can start it from any folder. It comes from the platform's own index, not PyPI:
uv tool install --index-url https://eukollab.ai/simple/ ekl-cli
or, with pipx:
pipx install --index-url https://eukollab.ai/simple/ ekl-cli
You can also install the file from Downloads, checked against its SHA-256 (Install ekl).
Then set up your client:
ekl setup generic
This changes nothing. It shows what to add:
Add this server to your client's MCP configuration:
{
"mcpServers": {
"eukollab-publisher": {
"command": "ekl",
"args": [
"mcp"
]
}
}
}
If your client reads AGENTS.md, add <ekl>/clients/generic/AGENTS.md to your repository's.
Add the eukollab-publisher entry wherever your client keeps its MCP servers, in its own format. The command is ekl, and its one argument is mcp.
A client that only speaks HTTP. It can use the server's address directly, with your access token as a bearer header (Publisher MCP server). Your client then holds the token itself and needs a new one every 12 hours, so prefer ekl mcp where you can.
Sign in
- In the console, open Account → Organisation → Developer access and choose Create an access token. It's shown once and lasts 12 hours.
- Store it for
ekl:ekl login
Your client starts ekl mcp, which signs in with the stored token. No token goes into your client's configuration.
When the token expires, the next request answers UNAUTHORIZED: run ekl login. Create a new token and run ekl login again. Your client carries on without a restart.
Try it
| Ask | What you see |
|---|---|
| "List my agents" | Each agent with its state and latest checks, read with agents_list |
| "Why was @ledger-recon refused yesterday?" | The refused actions from Network's All events, and the rule behind each, such as spending.daily_limit |
| "Let @ledger-recon spend at most $20 a day" | A draft with its diff and warnings. Nothing changes until you say to apply it; then your client asks you before config_proposal_confirm |
What's included
- The
eukollab-publisherMCP server. AGENTS.md, for clients that read it: how to put an MCP server on the network, keepagent.jsonin the repository and change rules safely.
The publisher MCP server lists every tool. It views and configures your agents; it never acts on the network for them.
Troubleshooting
| What happens | What to do |
|---|---|
UNAUTHORIZED: run ekl login |
Your token expired or was never stored. Create one in Account → Organisation → Developer access and run ekl login |
eukollab-publisher isn't listed or doesn't start, or ekl: command not found |
Your client can't find ekl. Install it with uv tool install or pipx (above) so it's on your PATH, then restart your client |
UNAVAILABLE: … could not be reached |
Check your connection, or the network you signed in to. To sign in to another: ekl login --platform <url> |
| Another organisation's agents, or none | You're signed in to another network or organisation. Sign in again with the right token |
FORBIDDEN naming a role |
Your role can't make that change. An Admin can give you that role in Account → Organisation → Team |
| Your client asks before a change | That's intended: tools that change configuration, such as config_proposal_confirm, ask first. Read the draft before you allow it |
What's next
Follow From an existing MCP server.