CortexPlus
Personal memory layer: files, notes, messages, tasks and email, semantically indexed.
Should I use this
Quality & Safety
Findings (1)
- LOWin fetch
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"cortexplus": {
"url": "https://mcp.cortexplus.io/mcp"
}
}
}Remote endpoints
https://mcp.cortexplus.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢search(query, limit)
Search the user's CortexPlus memory and return ranked matches. Use this to find what the user has stored before answering from memory.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "What to look for, in natural language."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"id",
"title",
"url"
]
}
}
},
"required": [
"results"
]
}🟢fetch(id)
Retrieve the full content of one CortexPlus memory item by id, as returned by search.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Item id from a search result."
}
},
"required": [
"id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"metadata": {
"type": "object"
}
},
"required": [
"id",
"title",
"text",
"url"
]
}🟢recall(query, limit, depth, maxChars)
Build a context block from the user's CortexPlus memory: the passages that answer a question plus their graph neighbours, already formatted as text. Prefer this over search when you intend to answer from the user's memory.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
},
"depth": {
"type": "integer",
"minimum": 0,
"maximum": 3,
"default": 1
},
"maxChars": {
"type": "integer",
"minimum": 500,
"maximum": 20000,
"default": 6000
}
},
"required": [
"query"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"matches": {
"type": "integer"
}
},
"required": [
"text",
"matches"
]
}⚪remember(title, content, tags, type)
Store a note in the user's CortexPlus memory so future conversations can recall it.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"content": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"default": "note",
"description": "Node type, e.g. note or meeting-note."
}
},
"required": [
"content"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"id"
]
}🟡memory(text, tags)
Save a memory in CortexPlus. CortexPlus decides whether it is a note, task, or reminder and extracts the client.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text to classify and save."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"text"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"client": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"memory": {
"type": [
"string",
"null"
]
},
"review": {
"type": [
"string",
"null"
]
},
"resolved": {
"type": [
"boolean",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"id",
"type",
"title",
"client",
"status",
"memory",
"review",
"resolved",
"url"
]
}🟢tasks(status, client, limit)
List open CortexPlus tasks and reminders, optionally filtered by client.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"default": "open"
},
"client": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"client",
"status",
"dueAt",
"url"
],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"client": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"dueAt": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
}
}
}
}
},
"required": [
"tasks"
]
}🟡signup(email, name, client)
Create a CortexPlus account, or begin signing in to an existing one, so this conversation can use CortexPlus as the user's long-term memory and knowledge base. Ask the user for their email address, and for their name if you do not already have it, then call this tool. CortexPlus sends them a short authentication key by email; ask the user for that key and call connect with it. Never guess or invent the email address.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The user's email address. Ask the user; never guess or invent it."
},
"name": {
"type": "string",
"description": "The user's name, if it is not already known."
},
"client": {
"type": "string",
"description": "The name of the AI platform you are running on, e.g. ChatGPT, Claude, Cursor."
}
},
"required": [
"email"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"sent": {
"type": "boolean"
}
},
"required": [
"sent"
]
}🟡connect(key, client)
Complete the CortexPlus connection with the short authentication key the user received by email after signup. Ask the user to paste the key, then call this tool; never guess or invent the key. The response includes an API key that the AI platform should save in its CortexPlus connector configuration.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The authentication key pasted by the user from their CortexPlus email."
},
"client": {
"type": "string",
"description": "The name of the AI platform you are running on, e.g. ChatGPT, Claude, Cursor."
}
},
"required": [
"key"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"apiKey": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"apiKey",
"email",
"name"
]
}Community
Evidence