Choose a connection
Use MCP when your client supports remote MCP and you want template discovery, authoring, sending, and history tools. Use a custom HTTP tool when you need a small, application-specific contract.Establish the contract before sending
- Choose an approved template and test destination outside the model.
- Read
GET /v1/templates/{id}/input-schemaand validate the data your application will supply. - Give the model only the content fields it should fill. Keep credentials, destination, template ID, and operation ID in application configuration.
- Require approval in your application before exposing or executing a send tool.
- Return a small structured result containing the outcome and request ID. Do not send raw receiver errors or credentials back to the model.
Reusable Python client
Download lithoblocks_client.py beside your adapter. It uses Python’s standard library, sets a 30-second request timeout, sends one configured destination, preserves a stable operation ID, and does not automatically retry writes or follow redirects. Set these server-side variables:{{message}}. Its only model-supplied input is message; use messages:create on the key. Read/discovery calls additionally need templates:read.
The operation ID belongs to one intended send. Persist it in the job/workflow record and reuse it with the same message on retries. For concurrent jobs, create a configured client per job instead of sharing process environment. A new, approved message gets a new operation ID.

