Statewave
by smaramwbc
README.md
# @statewavedev/mcp-server
Statewave MCP server — exposes Statewave memory to MCP-compatible clients (coding assistants, agent frameworks, IDE extensions).
> Part of the [Statewave Connectors](https://github.com/smaramwbc/statewave-connectors) ecosystem. Vendor-neutral by design — no IDE, model provider, or hosted dependency assumptions.
## What's here
- **`STATEWAVE_MCP_TOOLS`** — the canonical tool surface (5 tools, JSON Schema input)
- **`StatewaveClient`** — thin HTTP client for the Statewave v1 API (auth, tenant, typed errors)
- **`dispatchTool`** — input-validating dispatcher that maps a tool call to a `StatewaveClient` method
- **`startMcpServer`** — minimal stdio JSON-RPC 2.0 transport, plus a `--list-tools` mode
## Tools
| Tool | Purpose |
|---|---|
| `statewave_ingest_episode` | Ingest a single normalized episode (deduped on `idempotency_key`). |
| `statewave_search_memories` | Search compiled memories by free-text query within a subject. |
| `statewave_get_context` | Retrieve compact, ranked context for a subject — the default tool to use inside a prompt. |
| `statewave_get_timeline` | Chronological episodes for a subject; filterable by `kinds`, `since`, `until`. |
| `statewave_compile_subject` | Trigger compilation of a subject so newly ingested episodes become recallable. |
## Usage
```bash
# As a CLI subcommand (via @statewavedev/connectors-cli)
statewave-connectors mcp start --list-tools # print the JSON Schema surface and exit
statewave-connectors mcp start # stdio JSON-RPC 2.0 server (requires STATEWAVE_URL)
# Or programmatically inside an existing MCP runtime
import { StatewaveClient, dispatchTool } from "@statewavedev/mcp-server";
const client = new StatewaveClient({ url: process.env.STATEWAVE_URL!, apiKey: process.env.STATEWAVE_API_KEY });
const { result } = await dispatchTool(client, "statewave_get_context", {
subject: "repo:owner/name",
query: "repo conventions and recent changes",
});
```
## Status
`v0.1.0` preview — minimal stdio transport included. See [RELEASE_NOTES.md](https://github.com/smaramwbc/statewave-connectors/blob/main/RELEASE_NOTES.md).
TDQS
A4.6/5.0
Scored across 6 tools
Disambiguation5/5
Each tool targets a unique operation: ingestion, compilation, context retrieval, timeline viewing, memory search, and subject listing. Descriptions explicitly distinguish when to use each, leaving no ambiguity.
Naming Consistency5/5
All tools follow the consistent pattern `statewave_verb_noun` (e.g., `statewave_ingest_episode`, `statewave_get_context`), making the set predictable and easy to navigate.
Tool Count5/5
Six tools cover the essential operations for a memory management system—ingest, compile, retrieve, search, and list—without redundancy or bloat.
Completeness4/5
The tools provide a complete workflow: write, compile, read (context/timeline/search), and discover. Minor gaps such as missing update/delete operations exist, but the core lifecycle is well-supported.
Maintenance
ActivityActive
ResponsivenessNo issues