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
| Interface | What the source sends | Current limitation |
|---|---|---|
TypeScript SDKConfig.token | Authorization: Bearer ... | High-level clients do not automatically set x-akasha-capability; public HttpClient.request supports extra headers |
Python AkashaClient.api_key | Authorization: Bearer ... | Does not set management x-api-key or instance capability header; explicit httpx can supply them |
Go Config.APIKey | Authorization: Bearer ... | Default transport has no public additional-header option |
Rust HttpConfig.token | Authorization: Bearer ... | Default transport has no public capability-header option |
cogs AKASHA_TOKEN | Rust SDK Bearer transport | A token value alone does not satisfy capability-required instance requests |
| Minds dashboard Akasha proxy | x-akasha-capability | Uses 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
| Operation | Client behavior | Inspected daemon contract |
|---|---|---|
| TypeScript cognitive remember/recall/forget | Per-tool paths under /v1/mcp/tools/<name> | POST /v1/mcp/tools/call with {name, arguments} |
| TypeScript list tools | GET /v1/mcp/tools | POST /v1/mcp/tools/list with {} |
| TypeScript hybrid retrieval | Sends query, expects results | Sends text, optional limit/chunk; response has rows |
| Python hybrid retrieval | Sends query/top_k, expects results | Same text/limit/rows daemon contract |
| TypeScript/Python episodic insertion | Flat event fields | Daemon expects an event wrapper |
| Rust/cogs episodic store | Sends raw_from and tags | Daemon expects an event wrapper |
| Python episodic search | Expects {events:...} | Daemon returns a bare array |
| Rust/cogs episodic search | Sends query and limit, expects array | Matches the inspected payload shape; authentication compatibility still applies |
| Rust/cogs hybrid retrieval | Sends text and limit | Matches 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.