CortexPlus

Personal memory layer: files, notes, messages, tasks and email, semantically indexed.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
85%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,473Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (1.15% of 128k context)

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-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools