Developers
GUIDE & REFERENCE

SDK and transport compatibility

Known differences between the current SDKs, CLI, standalone MCP server, and dedicated daemon.

The repositories contain useful client surfaces, but source signatures alone do not prove that a call works against the currently configured daemon. This page records concrete differences found in the 2026-09-12 source snapshot so integrations can use the exact HTTP contract where needed.

Authentication

InterfaceWhat the source sendsCurrent limitation
TypeScript SDKConfig.tokenAuthorization: Bearer ...High-level clients do not automatically set x-akasha-capability; public HttpClient.request supports extra headers
Python AkashaClient.api_keyAuthorization: Bearer ...Does not set management x-api-key or instance capability header; explicit httpx can supply them
Go Config.APIKeyAuthorization: Bearer ...Default transport has no public additional-header option
Rust HttpConfig.tokenAuthorization: Bearer ...Default transport has no public capability-header option
cogs AKASHA_TOKENRust SDK Bearer transportA token value alone does not satisfy capability-required instance requests
Minds dashboard Akasha proxyx-akasha-capabilityUses the signed-in browser and authorized active-instance context

The daemon checks x-akasha-capability when AKASHA_REQUIRE_CAPABILITY is enabled. If a deployment also enables legacy JWT verification, that check is additional. Do not disable server authentication to make an old client example pass.

Request and response differences

OperationClient behaviorInspected daemon contract
TypeScript cognitive remember/recall/forgetPer-tool paths under /v1/mcp/tools/<name>POST /v1/mcp/tools/call with {name, arguments}
TypeScript list toolsGET /v1/mcp/toolsPOST /v1/mcp/tools/list with {}
TypeScript hybrid retrievalSends query, expects resultsSends text, optional limit/chunk; response has rows
Python hybrid retrievalSends query/top_k, expects resultsSame text/limit/rows daemon contract
TypeScript/Python episodic insertionFlat event fieldsDaemon expects an event wrapper
Rust/cogs episodic storeSends raw_from and tagsDaemon expects an event wrapper
Python episodic searchExpects {events:...}Daemon returns a bare array
Rust/cogs episodic searchSends query and limit, expects arrayMatches the inspected payload shape; authentication compatibility still applies
Rust/cogs hybrid retrievalSends text and limitMatches the inspected payload shape; authentication compatibility still applies

Use Connect to your Mind for an explicit request. A tool response has content, is_error, and result; check is_error even after HTTP success.

MCP hosts and persistence

The separate akasha-mcp binary supports standard MCP transports, but its default standalone constructor uses InMemoryBackend. Setting --endpoint does not replace that backend in this source version. A host can test tools during that process's lifetime, but the configuration is not a verified persistent connection to the dedicated Mind.

The cogs mcp setup-claude and mcp setup-cursor helpers currently generate a command containing akasha mcp serve; the CLI's McpAction enum has no serve subcommand. Use the manual, explicitly local demonstration setup in Agent integrations, or the direct HTTP integration for durable instance access.

cogs mcp test creates a fresh in-memory backend for each invocation. Two separate invocations do not share the memory created by the first.

Source versus release

These findings do not imply identical behavior in every published release. Pin the SDK, record the daemon revision and enabled services, and validate the exact method your application will use. When a fix lands, repeat the request and result checks before removing a compatibility note.

Evidence: minds-ts-sdk/src/index.ts; minds-python-sdk/akasha/runtime/memory.py; minds-go-sdk/akasha/client.go; minds-rust-sdk/src/{clients,transport}.rs; minds-cli/src/{main,mcp}.rs; akasha-daemon/src/main.rs; akasha/mcp/src/{server,tools/mod}.rs.

On this page