Aura
Email address, webhook, durable memory and zero-token waiting for agents. Paid in USDC via x402.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http aura 'https://aura.rohnelt.dev/mcp' --header 'Authorization: <Bearer token from identity.create. Optional: without it you can still list tools and call capabilities and identity_create.>'
{
"mcpServers": {
"aura": {
"type": "http",
"url": "https://aura.rohnelt.dev/mcp",
"headers": {
"Authorization": "<Bearer token from identity.create. Optional: without it you can still list tools and call capabilities and identity_create.>"
}
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Aura
The persistence layer for ephemeral agents. A real email address, a webhook URL, durable memory, and the ability to wait for an event without burning tokens — sold to autonomous agents that pay in USDC over x402, with no account and no human in the loop.
Service: https://aura.rohnelt.dev · MCP: https://aura.rohnelt.dev/mcp · Docs for models: llms-full.txt
This repository holds the client side: SDKs, framework adapters, and the Claude Skill.
The problem
An autonomous agent is ephemeral. That creates three hard blockers, and none of them is a matter of intelligence:
| Blocker | What normally happens |
|---|---|
| It has no address. | It cannot sign up for anything, because it cannot receive the verification code. |
| It cannot wait. | It polls in a loop, burning tokens on every turn, or it dies and loses the work. |
| It dies at the end of a run. | Everything it learned is gone. |
Aura removes all three. An agent proves it controls a wallet with one signature and gets a handle, a real mailbox, a webhook base URL, durable memory, and two ways to wait.
Install
npm install aura-agent # JavaScript / TypeScript
pip install aura-x402 # Python
Or point any MCP client at the endpoint:
{
"mcpServers": {
"aura": {
"type": "http",
"url": "https://aura.rohnelt.dev/mcp",
"headers": { "Authorization": "Bearer aura_sk_..." }
}
}
}
Without the header the tools still list, and capabilities and identity_create still work — an agent can evaluate the service before committing to anything.
The thirty-second version
from aura_agent import Aura, LocalSigner
client = Aura.claim(LocalSigner(private_key)) # free, one signature, no signup
address = client.whoami()["email"] # a real mailbox
sign_up_somewhere(email=address) # whatever the task actually is
code = client.await_email_code() # blocks; costs no tokens; refunds on timeout
import { Aura, toSigner } from "aura-agent";
import { privateKeyToAccount } from "viem/accounts";
const { client, identity } = await Aura.claim(toSigner(privateKeyToAccount(key)));
const code = await client.awaitEmailCode({ from: "notifications@example.com" });
What is in here
| Path | What |
|---|---|
js/ | aura-agent on npm — zero-dependency TypeScript client |
python/ | aura-x402 on PyPI (imported as aura_agent) — sync and async clients, plus LangChain and CrewAI adapters |
skill/aura/ | A Claude Skill: drop it in and Claude knows when to reach for Aura |
server.json | The manifest published to the official MCP Registry |
Framework adapters
from aura_agent.langchain import get_tools # pip install "aura-x402[langchain]"
from aura_agent.crewai import get_tools # pip install "aura-x402[crewai]"
tools = get_tools(client)
Fourteen tools, each described for a model deciding whether to spend money: what it does, when not to use it, and what it costs.
Pricing
Operations cost fractions of a cent, so they are debited off-chain from a prepaid balance: one on-chain settlement covers hundreds of calls. Claiming an identity is free and grants a small trial credit.
| Call | Price |
|---|---|
capabilities, whoami, identity.create, forget | free |
recall, list_memory | $0.0005 |
remember | $0.0008 |
inbox, read_mail, create_hook | $0.001 |
search_memory, signal, resume | $0.002 |
await | $0.004 |
park | $0.005 |
Two of these refund themselves: a timed-out await costs nothing, and resume is free when no parked work is ready. So calling resume at the start of every run is safe.
Deposits are paid in USDC on Base: POST /v1/credit/deposit/{1,5,20} answers HTTP 402 with full x402 payment requirements.
Errors carry the fix
An agent has no human to ask, so every error returns what was missing and the corrected call. A 402 carries the exact deposit call; a memory 404 carries the keys that do exist; a 400 carries the schema plus a working example. Both SDKs preserve that rather than flattening it into a string.
try:
client.remember("k", "v")
except AuraError as err:
if err.needs_credit:
print(err.fix) # the exact deposit call to make
Discovery
Aura is built to be found and evaluated by a machine, without a signup:
/v1/capabilities— every operation, price and schema. Free./llms.txtand/llms-full.txt/openapi.json— OpenAPI 3.1/.well-known/x402,/.well-known/agent.json,/.well-known/mcp.json
GET / returns JSON unless Accept explicitly asks for HTML.
License
MIT
Frequently asked questions
What is Aura?
Email address, webhook, durable memory and zero-token waiting for agents. Paid in USDC via x402.
How do I install Aura?
It runs as a remote server. In Claude Code: claude mcp add --transport http aura 'https://aura.rohnelt.dev/mcp' --header 'Authorization: <Bearer token from identity.create. Optional: without it you can still list tools and call capabilities and identity_create.>'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Aura need an API key?
Yes. It expects Authorization, which you set in its configuration.
Is Aura open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Aura?
It is published by phillypmack. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.