CaliLuke/rusty-mcp
If you are the rightful owner of rusty-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Rusty Memory is a straightforward memory server designed for coding agents, offering a simple setup and cost-effective solution for storing and retrieving notes.
Rusty Memory MCP
Rusty Memory MCP is a no‑fuss memory server for coding agents. It chunks text, generates embeddings, and stores vectors in Qdrant. You can run it as:
- An MCP server over stdio for editors/agents
- A local HTTP service for simple scripts
If you want to hack on the codebase or learn how it works internally, jump to Developer Docs below.
Quick Start (MCP in your editor)
-
Install the binaries
cargo install rustymcp
This installs:
rusty_mem_mcp
(MCP server)rustymcp
(HTTP server)metrics-post
(helper used by scripts)
-
Start Qdrant (vector database)
docker run --pull=always -p 6333:6333 qdrant/qdrant:latest
-
Configure environment
Copy
.env.example
to.env
and edit values, or provide the same variables via your MCP client config:Required variables:
QDRANT_URL
(e.g.http://127.0.0.1:6333
)QDRANT_COLLECTION_NAME
(e.g.rusty-mem
)EMBEDDING_PROVIDER
(ollama
enables the local client; other values use the deterministic fallback for now)EMBEDDING_MODEL
(free‑form, e.g.nomic-embed-text
)EMBEDDING_DIMENSION
(must match your model, e.g.768
)OLLAMA_URL
(optional, defaults tohttp://127.0.0.1:11434
whenEMBEDDING_PROVIDER=ollama
)
-
Launch the MCP server
rusty_mem_mcp
-
Add to your agent
-
Codex CLI (
~/.codex/config.toml
):[mcp_servers.rusty_mem] command = "rusty_mem_mcp" # or use the full path to the binary args = [] transport = "stdio" [mcp_servers.rusty_mem.env] QDRANT_URL = "http://127.0.0.1:6333" QDRANT_COLLECTION_NAME = "rusty-mem" EMBEDDING_PROVIDER = "ollama" EMBEDDING_MODEL = "nomic-embed-text" EMBEDDING_DIMENSION = "768" OLLAMA_URL = "http://127.0.0.1:11434" # omit to use the default
-
JSON clients (Kilo, Cline, Roo Code):
{ "mcpServers": { "rusty": { "command": "rusty_mem_mcp", "args": [], "transport": "stdio", "env": { "QDRANT_URL": "http://127.0.0.1:6333", "QDRANT_COLLECTION_NAME": "rusty-mem", "EMBEDDING_PROVIDER": "ollama", "EMBEDDING_MODEL": "nomic-embed-text", "EMBEDDING_DIMENSION": "768", "OLLAMA_URL": "http://127.0.0.1:11434" } } } }
-
-
Try it
From your agent, use:
push
→ ingest text with optional metadata (project_id
,memory_type
,tags
,source_uri
)search
→ retrieve memories semantically with filters for project, memory type, tags, time range, and score thresholdsummarize
→ condense episodic memories into semantic summaries with provenance and idempotentsummary_key
sget-collections
→ list Qdrant collectionsnew-collection
→ create or resize a collectionmetrics
→ view counters (documentsIndexed
,chunksIndexed
,lastChunkSize
)listResources
→ discover read-only resources; usereadResource
on:mcp://memory-types
mcp://projects
mcp://health
mcp://settings
(search defaults)mcp://usage
(usage policy and recommended flows)- Template:
mcp://{project_id}/tags
Optional: Run the HTTP server
If you prefer HTTP, set the same environment and run:
rustymcp
By default the server binds the first free port in 4100–4199
(or SERVER_PORT
if set). Example:
curl -sS -X POST http://127.0.0.1:4100/index \
-H 'Content-Type: application/json' \
-d '{"text":"hello from http"}'
Returns { "chunks_indexed": <number>, "chunk_size": <number>, "inserted": <number>, "updated": <number>, "skipped_duplicates": <number> }
on success.
Having trouble? See docs/Troubleshooting.md
.
Developer Docs
If you want to extend Rusty Memory or understand the architecture:
- Configuration reference and client snippets:
docs/Configuration.md
- Architecture and module overview:
docs/Design.md
- Editor integration examples:
docs/Editors.md
- Development guide (style, tests, scripts):
docs/Development.md
License
Licensed under the . Free for non‑commercial use.
Support
Issues and PRs are welcome. If anything in the Quick Start is unclear, please open an issue so we can make onboarding even smoother.