ecmind-blue-client

ecmind-blue-client is a Python library (Python >= 3.12) that wraps access to an ECMind Blue server using the proprietary TCP/RPC protocol.

The library provides three layers of abstraction:

RPC layer

Direct TCP socket access to the server. Serialises job parameters into the proprietary binary protocol.

Pool client

Recommended connection pools (SyncPoolClient / AsyncPoolClient) with weighted load balancing across multiple servers.

ECM API

High-level object-oriented API for folders, registers, documents, and direct database access.

1. Available namespaces

After initialisation via the ECM() factory, the following namespaces are available:

Namespace Description

ecm.dms

Object operations: folders, registers, documents — query, insert, update, delete

ecm.security

User and group management

ecm.system

Server metadata and object definitions

ecm.db

Direct SQL access via ADO (ado.ExecuteSQL)

2. Sync and async

All namespaces are available in both synchronous and asynchronous variants. Passing a SyncPoolClient to ECM() returns a synchronous instance; passing an AsyncPoolClient returns the asyncio-based variant.

  • Sync

  • Async

from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import SyncPoolClient

client = SyncPoolClient(servers="<host>:4000:1", username="<username>", password="<password>")
ecm = ECM(client)
from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import AsyncPoolClient

client = AsyncPoolClient(servers="<host>:4000:1", username="<username>", password="<password>")
ecm = ECM(client)
SyncPoolClient and AsyncPoolClient connect over TLS by default (use_ssl=True). use_ssl=False exists only for legacy enaio versions without TLS support and is considered deprecated — keep it True in any current environment.

3. Skills for AI assistants

For use with LLM-based development tools (Claude Code, Cline, Cursor), this library ships a collection of skills — compact, LLM-optimised descriptions of each individual operation, each with the signature, a minimal example, and a link to the full reference. Skills are loaded on demand via description-based auto-invocation, so the language model only pulls the relevant operation into context.

Direct download: skills.zip

Extract into your tool’s skills directory, e.g. for Claude Code:

unzip skills.zip -d ~/.claude/skills/

4. Further reading