Skip to main content
ClaudeWave

Safe write access for AI agents. An append-only business fact store with an MCP server: every change is kept, attributed to the agent that made it, and can be undone.

MCP ServersOfficial Registry8 stars0 forks● GoAGPL-3.0Updated today
ClaudeWave Trust Score
95/100
✓ Verified
Passed
  • ✓Open-source license (AGPL-3.0)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Last scanned: 9/29/2026
Install in Claude Code / Claude Desktop
Method: Manual · stellarjay
Claude Code CLI
git clone https://github.com/kyle-visner/stellarjay
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "stellarjay": {
      "command": "stellarjay",
      "env": {
        "STELLARJAY_URL": "<stellarjay_url>",
        "STELLARJAY_TOKEN": "<stellarjay_token>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Install the binary first: go install github.com/kyle-visner/stellarjay@latest (make sure it ends up on your PATH).
Detected environment variables
STELLARJAY_URLSTELLARJAY_TOKEN
Use cases

MCP Servers overview

<p align="center">
  <img src="docs/assets/stellarjay-logo.png" alt="Stellar Jay logo" width="900">
</p>

# Stellar Jay

**Safe write access for AI agents.** Stellar Jay is where your agents keep
business data. Every change is kept, attributed to the agent that made it, and
can be undone. Think of it as Git for your business data.

- **Hosted:** [AvianSuite](https://aviansuite.com) runs Stellar Jay for you.
  $20/month per store, with a 14-day free trial.
- **Self-hosted:** free and open source under the AGPL. The quick start below
  gets a store running on your machine in a few minutes.

## Agent setup

Connect an agent with the MCP server. On AvianSuite, add the remote server:

```sh
# Claude Code
claude mcp add --transport http aviansuite https://mcp.aviansuite.com/mcp
```

```json
// Cursor: .cursor/mcp.json
{"mcpServers": {"aviansuite": {"url": "https://mcp.aviansuite.com/mcp"}}}
```

In Claude and ChatGPT, add a custom connector with the same URL.

For a self-hosted store, run the local server instead:

```json
{
  "mcpServers": {
    "aviansuite": {
      "command": "stellarjay-mcp",
      "env": {"STELLARJAY_URL": "https://store.example.com", "STELLARJAY_TOKEN": "writer-token"}
    }
  }
}
```

Install it with `go install github.com/kyle-visner/stellarjay/cmd/stellarjay-mcp@latest`.
Tools and details: [docs/mcp.md](docs/mcp.md).

## Why

Clients want agents that do the work, not just read about it. But when an agent
writes straight into a CRM or ticketing system, one bad decision or runaway
loop can overwrite or delete records, and there is often no way back.

Stellar Jay is built so that can't happen:

- **Nothing is overwritten or deleted.** A correction or retraction is a new
  entry, and the original stays in history.
- **Every change has a name on it.** Each agent gets its own token, so you can
  see exactly which agent changed what, and when.
- **Any change can be undone.** Roll back everything one agent did in a time
  window, with a preview first.
- **History is tamper-evident.** If anyone rewrites or removes past entries, it
  shows.
- **Retries are safe.** An agent that retries after a timeout doesn't create
  duplicates, and a write based on stale information is refused.
- **Your data stays flexible.** Facts are JSON, so new fields and new kinds of
  records need no migrations.

Stellar Jay records what agents say happened. It doesn't decide whether a fact
is true; it makes sure a wrong one stays visible and correctable.

## Who it's for

Developers, consultants, and small teams moving from read-only copilots to
agents that are allowed to act: operations, accounting, approvals, support, and
other work where the data matters. Each store serves one organization. Many
agents and apps can share it.

## Quick start (self-hosted)

Requires Go 1.22 or later.

**1. Install and create secrets.**

```sh
go install github.com/kyle-visner/stellarjay/cmd/stellarjay-server@latest
stellarjay-server init ./secrets
```

`init` creates a data encryption key and prints an admin, writer, and reader
token once. Save them in a password manager.

**2. Start the server.**

```sh
export STELLARJAY_DATA_DIR=./data
export STELLARJAY_DATA_KEY_FILE=./secrets/data_key
export STELLARJAY_AUTH_FILE=./secrets/auth.json
stellarjay-server serve
```

It listens on `127.0.0.1:8080`.

**3. Record a fact.** In another terminal:

```sh
export STELLARJAY_URL=http://127.0.0.1:8080
export STELLARJAY_TOKEN='the-writer-token'

curl -fsS -X POST "$STELLARJAY_URL/v1/events" \
  -H "Authorization: Bearer $STELLARJAY_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: first-fact" \
  --data '{
    "type": "business.fact",
    "entity_id": "customer-42",
    "command": "fact assert",
    "payload": {"predicate": "primary_contact", "value": "Ada Lovelace"},
    "expected_root": ""
  }'
```

`expected_root` is empty only for the first entry in a new store. After that,
read the current value from `GET /v1/root` and send it with each write, so a
write based on stale information is refused. The [API guide](docs/api.md)
covers reading history, pagination, named checkpoints, and snapshots.

**4. Connect an agent.** Point the MCP server at your store:

```sh
go install github.com/kyle-visner/stellarjay/cmd/stellarjay-mcp@latest
```

Then use the self-hosted config from [Agent setup](#agent-setup) with
`STELLARJAY_URL=http://127.0.0.1:8080` and your writer token. Agents that don't
use MCP can read `$STELLARJAY_URL/llm.txt`, which explains how to work with the
store.

## Deploy to a server

For a production store with HTTPS, you need a Linux host with Docker Compose,
ports 80 and 443 open, and a DNS record pointing a domain at the host.

```sh
git clone https://github.com/kyle-visner/stellarjay.git
cd stellarjay
cp .env.example .env
# Edit .env and set STELLARJAY_DOMAIN.

go run ./cmd/stellarjay-server init ./secrets

docker compose up -d --build
curl https://stellarjay.example.com/health/ready
```

`init` will not replace existing secrets. Read the
[operations runbook](docs/operations.md) for backups, token rotation, and
upgrades, and the [security model](docs/security.md) before storing sensitive
data. Or skip all of this and use [AvianSuite](https://aviansuite.com).

## Documentation

- [llm.md](llm.md): the guide agents follow to read and write safely
- [docs/mcp.md](docs/mcp.md): MCP server setup and tools
- [docs/how-it-works.md](docs/how-it-works.md): storage model, design limits,
  and the embedded Go library
- [docs/api.md](docs/api.md): HTTP API reference ([OpenAPI](docs/openapi.json))
- [docs/architecture.md](docs/architecture.md), [docs/security.md](docs/security.md),
  [docs/operations.md](docs/operations.md): running it in production

## Development

```sh
GOCACHE=/tmp/stellarjay-gocache go test -race ./...
GOCACHE=/tmp/stellarjay-gocache go vet ./...
docker compose config
docker build -t stellarjay:test .
```

## License

AGPL-3.0-or-later. See `LICENSE`. Hosted Stellar Jay is available from
[AvianSuite](https://aviansuite.com).
agent-memoryai-agentsappend-onlyaudit-trailevent-sourcingmcpmcp-serverversion-history

What people ask about stellarjay

What is kyle-visner/stellarjay?

+

kyle-visner/stellarjay is mcp servers for the Claude AI ecosystem. Safe write access for AI agents. An append-only business fact store with an MCP server: every change is kept, attributed to the agent that made it, and can be undone. It has 8 GitHub stars and its last recorded update is dated 2026-09-28.

How do I install stellarjay?

+

You can install stellarjay by cloning the repository (https://github.com/kyle-visner/stellarjay) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is kyle-visner/stellarjay safe to use?

+

Our security agent has analyzed kyle-visner/stellarjay and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains kyle-visner/stellarjay?

+

kyle-visner/stellarjay is maintained by kyle-visner. The last recorded GitHub activity is dated 2026-09-28, with 0 open issues.

Are there alternatives to stellarjay?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy stellarjay to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: kyle-visner/stellarjay
[![Featured on ClaudeWave](https://claudewave.com/api/badge/kyle-visner-stellarjay)](https://claudewave.com/repo/kyle-visner-stellarjay)
<a href="https://claudewave.com/repo/kyle-visner-stellarjay"><img src="https://claudewave.com/api/badge/kyle-visner-stellarjay" alt="Featured on ClaudeWave: kyle-visner/stellarjay" width="320" height="64" /></a>

More MCP Servers

stellarjay alternatives