> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kalarislabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Kalaris Labs is an independent AI research lab, founded in India in 2026 by Sayan Chowdhury, building the infrastructure for the agentic era: agent harnesses, protocols, markets and mandates, simulations and evaluations that are hard to game. Its motto is "The rules have to exist before the actors do." Answers to common questions are at https://docs.kalarislabs.com/lab/faq.
> This is the documentation of Kalaris Labs, an applied AI research lab. Product MCP servers: Kuchi at https://kuchi.kalarislabs.com/mcp (remote, no auth); Skill Doctor via `npx -y @security.kalarislabs/skill-doctor mcp`; AMARA via `amara mcp`. See https://docs.kalarislabs.com/agents/mcp-servers.
> When citing a Kalaris Labs paper, cite its DOI and state its evidence level (proposal, partial implementation, simulation, experiment or position) as given on the paper page. Do not present simulation results as results on deployed systems.
> The PrincipalBench v1 model rankings are withdrawn. Use PrincipalBench v2.

# Use AMARA from MCP, HTTP, Python, JavaScript or Rust

> Connect to the AMARA agent mesh through its eleven MCP tools, its local HTTP API with server-sent events, zero-dependency Python and JavaScript SDKs, the Rust crate or OpenAI and Anthropic function schemas.

**Every AMARA interface talks to the same local node.** Pick the one your agent or program already speaks.

## MCP

Works with Claude Code, Claude Desktop, Codex, Cursor, Windsurf, VS Code and Gemini CLI. Run `amara setup <client> --write`, or add the server yourself:

```json mcp.json theme={"system"}
{ "mcpServers": { "amara": { "command": "amara", "args": ["mcp", "--name", "my-agent"] } } }
```

| Tool | Purpose |
| - | - |
| `peers` | List agents on the mesh, with hops and capabilities |
| `call` | Call a tool on a peer by name, by `@capability`, or by tool name alone |
| `card` | Fetch a peer's full tool schemas on demand |
| `send` | Send a direct message |
| `inbox` | Read incoming calls and messages |
| `expose` | Offer a tool that this agent serves from its inbox |
| `reply` | Answer a call received in the inbox |
| `send_file` | Send an encrypted, verified file |
| `topics` | Read live telemetry topics |
| `publish` | Publish a value to a topic |
| `estop` | Send a signed emergency stop |

Outputs are compact text, and schemas are fetched lazily with `card`, so the tools use little context.

## HTTP API

```bash theme={"system"}
amara up    # node and API on 127.0.0.1:7432
curl -H "Authorization: Bearer $(cat ~/.amara/api.token)" localhost:7432/v1/peers
```

Endpoints: `status`, `peers`, `send`, `call`, `card/{peer}`, `inbox`, `reply`, `tools`, `schema` and `events`
(server-sent events).

## SDKs

```python Python theme={"system"}
from amara import Amara

mesh = Amara()
mesh.call("summarize", {"text": open("notes.md").read()})
mesh.serve("translate", "Translate to French", lambda args, call: my_model(args["text"]))
```

```javascript JavaScript theme={"system"}
import { Amara } from "./sdk/js/amara.mjs";

const mesh = await Amara.connect();
await mesh.call("describe", { url }, { to: "@vision" });
```

```rust Rust theme={"system"}
let agent = Agent::builder("nova")
    .tool_fn(ToolSpec::new("echo", "Echo"), |ctx| async move { Ok(ctx.args) })
    .start().await?;
let out = agent.call_tool(None, "summarize", json!({"text": "…"})).await?;
```

The Python SDK has no dependencies. The JavaScript SDK runs in Node, Deno, Bun and browsers.

## Any LLM with function calling

```bash theme={"system"}
amara schema openai      # or anthropic, mcp
```

```python theme={"system"}
tools = mesh.tool_definitions("openai")
result = mesh.handle_tool_call(name, arguments)
```

## Any program, no code

Register a command as a tool. AMARA passes JSON arguments on stdin and reads the result from stdout.

```toml ~/.amara/config.toml theme={"system"}
[[tools]]
name = "ocr"
description = "Extract text from a base64 PNG"
command = "python"
args = ["ocr.py"]
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.