Rushdb
RushDB is an Instant Database for Modern Apps & AI. Built on top of Neo4j.
Ask AI about Rushdb
Powered by Claude Β· Grounded in docs
I know everything about Rushdb. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
RushDB
The memory layer for AI agents and apps.
Push any JSON. Get graph relationships and vector search β automatically. No schema. No pipeline. No glue code.
π Website β’ π Documentation β’ βοΈ Cloud β’ π Examples
The problem
Your agent needs memory. The standard answer is three databases: Redis for key-value, a vector store for semantic search, a graph DB for relationships β plus glue code to keep them in sync.
RushDB replaces all three. Push JSON once. Query it with graph traversal, semantic search, or both β in one call.
| Without RushDB | With RushDB |
|---|---|
| Redis + Pinecone + Neo4j + glue code | One API |
| Design schema β write migrations β repeat | Push any shape, no schema required |
| Separate embedding pipeline | Managed embeddings, server-side |
| Hand-craft relationship edges | Auto-detected from your data structure |
Quick start
Get an API key at app.rushdb.com, then:
npm install @rushdb/javascript-sdk
# or
pip install rushdb
Store and recall agent memory
import RushDB from '@rushdb/javascript-sdk'
const db = new RushDB('RUSHDB_API_KEY')
// One-time: tell RushDB to auto-embed 'output' on every write
await db.ai.indexes.create({ label: 'MEMORY', propertyName: 'output' })
// Store an agent action β no embedder, no vectors array
await db.records.create({
label: 'MEMORY',
data: {
agent_id: 'agent-42',
session_id: 'sess-001',
action: 'summarized',
topic: 'Q4 results',
output: summaryText,
},
})
// Recall by meaning β graph filter + semantic search in one call
const memories = await db.ai.search({
labels: ['MEMORY'],
propertyName: 'output',
query: 'what did we decide about Q4?',
where: { agent_id: 'agent-42' },
limit: 10,
})
from rushdb import RushDB
db = RushDB('RUSHDB_API_KEY')
# Store β graph links sessions, actions, and context automatically
db.records.create(
label='MEMORY',
data={
'agent_id': 'agent-42',
'action': 'summarized',
'topic': 'Q4 results',
'output': summary_text,
},
)
# Recall β traverse relationships and filter by meaning
results = db.records.find({
'labels': ['MEMORY'],
'where': {
'agent_id': 'agent-42',
'topic': {'$contains': 'Q4'},
},
'limit': 10,
})
Also works with nested JSON β RushDB structures it automatically
// Push nested JSON β RushDB normalizes it into a graph, no schema needed
await db.records.importJson({
label: 'COMPANY',
payload: {
name: 'Acme Corp',
DEPARTMENT: [{
name: 'Engineering',
EMPLOYEE: [{
name: 'Alice',
role: 'Staff Engineer',
}]
}]
}
})
// Traverse the auto-created relationships
const engineers = await db.records.find({
labels: ['EMPLOYEE'],
where: {
role: { $contains: 'Engineer' },
DEPARTMENT: { COMPANY: { name: 'Acme Corp' } },
},
})
Connect to Claude, Cursor, or any MCP client
RushDB ships an MCP server. Your agent gets persistent, structured memory β out of the box.
{
"mcpServers": {
"rushdb": {
"command": "npx",
"args": ["@rushdb/mcp-server"],
"env": {
"RUSHDB_API_KEY": "your-api-key-here"
}
}
}
}
Place this in your Claude Desktop, Cursor, or Windsurf MCP config. The agent can now create records, search by meaning, traverse relationships, and introspect the schema β all via natural language.
What's in the box
| Capability | What it means |
|---|---|
| Managed embeddings | Index any string property once β every write is auto-embedded server-side |
| Graph + vector in one query | Semantic similarity and relationship traversal compose in a single call |
| Zero schema | Push any JSON shape. RushDB infers types, creates properties, links records |
| ACID transactions | Concurrent agents don't corrupt shared memory. Neo4j under the hood |
| Self-describing graph | Agents enumerate labels, properties, and value ranges to orient themselves |
| MCP-native | Full MCP server with discovery-first query prompt built in |
| Agent Skills | Installable @rushdb/skills package β teach any skills-compatible agent to query, model, and remember with RushDB in one command |
| Unified query API | One JSON shape for graph, vector, aggregation, and introspection |
| Self-host or cloud | Docker + your Neo4j, or managed cloud. Full data ownership |
Use cases
Agent memory β Persist tool outputs, conversation history, and reasoning chains. Graph auto-links sessions, entities, and actions without manual relationship modeling.
RAG with context β Go beyond flat chunk retrieval. Filter by relationships, rank by semantic similarity, aggregate β one query.
Schema-free apps β Push raw data now, refine later. No migration churn. Labels and properties auto-discovered for dynamic UIs and AI agents.
Connected data products β Product catalogs, knowledge bases, fraud graphs, biotech entities: traverse, filter, and aggregate without separate systems.
Self-hosting
Requires Neo4j 2026.01.4+ with APOC and Graph Data Science plugins.
# docker-compose.yml
version: '3.8'
services:
rushdb:
image: rushdb/platform
ports:
- "3000:3000"
environment:
- NEO4J_URL=neo4j+s://your-instance.neo4j.io
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=password
- RUSHDB_AES_256_ENCRYPTION_KEY=32-char-key-here
- RUSHDB_LOGIN=admin
- RUSHDB_PASSWORD=secure-password
Full environment variables
| Name | Description | Required | Default |
|---|---|---|---|
NEO4J_URL | Neo4j connection URL | yes | β |
NEO4J_USERNAME | Neo4j username | yes | neo4j |
NEO4J_PASSWORD | Neo4j password | yes | β |
RUSHDB_AES_256_ENCRYPTION_KEY | 32-char key for API token encryption | yes (prod) | β |
RUSHDB_PORT | HTTP port | no | 3000 |
RUSHDB_LOGIN | Admin login | no | admin |
RUSHDB_PASSWORD | Admin password | no | password |
Local development (bundled Neo4j)
version: '3.8'
services:
rushdb:
image: rushdb/platform
depends_on:
neo4j:
condition: service_healthy
ports:
- "3000:3000"
environment:
- NEO4J_URL=bolt://neo4j
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=password
neo4j:
image: neo4j:2026.01.4
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1"]
interval: 5s
retries: 30
start_period: 10s
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_AUTH=neo4j/password
volumes:
- ./neo4j-plugins:/var/lib/neo4j/plugins
# Manage users via CLI
rushdb create-user admin@example.com securepassword123
rushdb update-password admin@example.com newsecurepassword456
Architecture: how RushDB structures data (LMPG)
RushDB uses a Labeled Meta Property Graph (LMPG) model. Properties are elevated to first-class graph nodes ("HyperProperties") β not just key-value pairs attached to records.
This means:
- Auto-detected relationships β records sharing properties get linked without hand-crafting edges
- Schema introspection β agents can enumerate labels, property types, value ranges, and relationship topology in one query
- Soft constraints β type cohesion scoring, cardinality tracking, and vector dimension enforcement without rigid upfront schemas
- Unified query surface β the same filter expression works across records, labels, properties, and relationships
One SearchQuery retrieves multiple perspectives simultaneously (records + property stats + aggregations), avoiding the N+1 inspection pattern common in separate-system architectures.
Documentation
| Topic | Link |
|---|---|
| Quick Tutorial | https://docs.rushdb.com/get-started/quick-tutorial |
| Vector / Semantic Search | https://docs.rushdb.com/concepts/search/where#vector-operators |
| Filtering & Traversal | https://docs.rushdb.com/concepts/search/where |
| Grouping & Aggregations | https://docs.rushdb.com/concepts/search/group-by |
| TypeScript SDK | https://docs.rushdb.com/typescript-sdk/introduction |
| Python SDK | https://docs.rushdb.com/python-sdk/introduction |
| REST API | https://docs.rushdb.com/rest-api/introduction |
| MCP Server | packages/mcp-server/README.md |
| Agent Skills | packages/skills/README.md |
Contributing
See CONTRIBUTING.md. Issues and PRs welcome.
License
| Path | License |
|---|---|
| platform/core | Elastic License 2.0 |
| platform/dashboard | Elastic License 2.0 |
| docs | Apache 2.0 |
| website | Apache 2.0 |
| packages/javascript-sdk | Apache 2.0 |
| packages/mcp-server | Apache 2.0 |
Need something not supported yet? Open an issue β design discussions are welcome.
