Memories MCP Server
Any memory folder can optionally be exposed as an MCP (Model Context Protocol) server. When enabled, external tools - Cursor, Claude Code, custom scripts, or any MCP-compatible client - can read from and write to that folder directly using the same operations available inside Aisle workflows.
This is separate from using memories as a RAG source in workflows. The MCP server is for external agents and tools that need to access Aisle memory from outside the platform.
To enable it, open the folder's Settings and turn on Enable External MCP Servers.
Connecting
Each memory folder has a dedicated MCP endpoint:
https://app.aisle.sh/mcp/memories
Authorization: Bearer <your-access-key>
The access key determines which folder the connection targets. One key grants access to one folder.
To get your connection details:
- Navigate to Tools > Memories
- Open the folder you want to connect
- Click Connect via MCP
- Copy the endpoint URL and bearer token
In your MCP client (for example, Claude Code's .mcp.json):
{
"mcpServers": {
"my-knowledge-base": {
"url": "https://app.aisle.sh/mcp/memories",
"headers": {
"Authorization": "Bearer <your-access-key>"
}
}
}
}
Available Tools
Once connected, the following tools are available:
create_memory
Create a new memory in the folder.
| Parameter | Required | Description |
|---|---|---|
name | Yes | Name for the memory |
content | Yes | Markdown content |
metadata | No | Key/value pairs for filtering |
vector_description | No | Description used for embedding instead of raw content |
update_memory
Update an existing memory.
| Parameter | Required | Description |
|---|---|---|
recordId | Yes | ID of the memory to update |
content | No | New content |
metadata | No | Updated metadata |
operation | No | replace (default) or append |
vector_description | No | Updated embedding description |
Use append to add to existing content without overwriting it - useful for accumulating notes over time.
find_memory
Retrieve a specific memory by ID or name.
| Parameter | Required | Description |
|---|---|---|
recordId | Either | Memory ID |
name | Either | Exact memory name |
query_memories
Filter memories by metadata. All conditions are AND-combined.
| Parameter | Required | Description |
|---|---|---|
name | No | Filter by exact name match |
metadata | No | Array of {key, value} pairs to match |
Example: find all memories where status = active and category = billing:
{
"metadata": [
{ "key": "status", "value": "active" },
{ "key": "category", "value": "billing" }
]
}
vector_search
Semantic search across the folder's indexed content.
| Parameter | Required | Description |
|---|---|---|
query | Yes | Natural language search query |
limit | No | Max results to return (1-100, default 10) |
similarity_threshold | No | Minimum match score (0.0-1.0, default 0.7) |
Returns matching chunks with their source document info and a similarity score. Requires the folder to have Generate Embeddings enabled.
get_propositions
Return the extracted facts (propositions) for a specific memory.
| Parameter | Required | Description |
|---|---|---|
recordId | Yes | Memory ID |
Returns an array of atomic fact strings extracted from the memory content.
list_records
Return a lightweight list of all memories in the folder, with optional metadata filtering.
| Parameter | Required | Description |
|---|---|---|
metadata | No | Filter array (same format as query_memories) |
Returns [{id, name, created_at}] - no content, for fast enumeration.
Use Cases
Shared team knowledge base - store research, decisions, and context in a memory folder. Connect Claude Code or Cursor to the folder so your tools can search and reference it while you work.
Long-term agent memory - connect an external agent to a memory folder. The agent calls vector_search to recall relevant past context, and create_memory or update_memory to record new findings.
Cross-tool context - write summaries from one tool (e.g., a meeting bot), search them from another (e.g., a coding assistant). The memory folder acts as a shared context layer between tools.
RAG for custom applications - use vector_search as the retrieval step in a retrieval-augmented generation pipeline. Your application queries the folder, injects the results into a prompt, and calls an LLM. The folder handles chunking, embedding, and similarity search.
Notes
- One access key grants access to one folder. Create separate keys for separate folders.
- Vector search only works on folders with Generate Embeddings enabled. Embeddings are generated in the background after each memory is created or updated - allow a few seconds before searching newly added content.
- The
vector_descriptionfield on individual memories lets you control what gets embedded. If a memory is long or has noisy content, set a concise description that captures what it is about. The description is used for embedding instead of the full content.