Integration details
Description
Memocore gives ChatGPT persistent memory that carries across every conversation. Save facts, preferences, projects, and notes once — private to you or shared with a team — and Memocore recalls them automatically whenever they're relevant, so you never repeat context again.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Personal AI Memory & Second Brain
- Secondary Subcategories
- None listed
- Brand
- Memocore
- Access
- Account required
- First tracked
- 2026-09-02
- Tool count
- 25
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Personal AI Memory & Second Brain
View Category25 tools agents can invoke
Step 2 of attaching a file: call this AFTER POSTing the bytes to the upload.url from request-file-upload. It verifies the object actually landed in storage and records it on the memo (file_id, name, type, size), returning the recorded file. Use the same memo_id and file_id you got from request-file-upload. Anyone with access to the memo can later download the file via a short-lived get-file-url link — there is no public/permanent link. Requires write access to the memo.
confirm-file-upload
Save a PRIVATE memory to memocore ("mc") — visible only to you, never shared. Use for personal facts, preferences or notes. Keep ONE coherent topic per memo; split unrelated topics (e.g. overview, tech stack, pricing) into separate memos. Before saving, run search-memo: if a memo on this topic already exists, merge the new facts into it with update-private-memo instead of creating a duplicate — save a new memo only when none fits. Always fill `meta` with retrieval cues and `preview` with a short public summary. To tag, first run search-tag (create-tag only if none fits) and pass its id — private memos may use only your private tags. For a shared project, use create-project-memo instead. The response includes a `share_url` field; for a private memo it explains there is no link (private memos cannot be shared) — never build one from `id`. The response may carry a `recommendation` with `similar` (near-duplicate memos in this scope — if any is truly the same, consolidate: merge into one, delete the extras with delete-memo) and `suggested_tags` (fitting tags for this memo — add the relevant ones, especially if it has none yet).
create-private-memo
Create a project — a shared space whose memories are visible to all members (you become its owner). First run search-projects and reuse a matching one — create only when none fits, to avoid duplicates. Give a clear `description` of what belongs in it: search-projects shows it and uses it to route future memories here. To create it INSIDE a company (corporate, shared with the whole team, not just you), pass `company_id` from search-companies; omit it for a personal project. Returns the new project, including its id.
create-project
Save a memory into a SHARED memocore project — visible to, and editable by, every member. Keep ONE coherent topic per memo; split unrelated topics (e.g. overview, tech stack, pricing) into separate memos. Before saving, run search-memo scoped to the project: if this topic already exists, merge the new facts into it with update-project-memo instead of creating a duplicate — save a new memo only when none fits. Always fill `meta` with retrieval cues and `preview` with a short summary. NOTE: `preview` is PUBLIC — it is shown in search results and may be exposed via public share links (even outside the project), so it must never contain sensitive data. To tag, first run search-tag (create-tag only if none fits); a project memo may use only this project's tags. Before calling you MUST: (1) Scan `content` for personal or sensitive data (private contacts, secrets, credentials, health/financial info). If any is present, proceed only on the user's explicit confirmation to store it in a shared project. (2) Be certain which project this belongs to: match the memory against each project's description from search-projects, and if not 100% sure, ask the user — never guess. Set `privacy_reviewed` and `target_confident` to true only once both checks genuinely pass. For private/personal notes use create-private-memo instead. The response includes a `share_url` field — for a just-created memo it is a hint, not a link (a memo has no public link until you call set-memo-sharing). If the user wants a link, follow that hint; never build one from `id`. The response may carry a `recommendation` with `similar` (near-duplicate memos in this project — if any is truly the same, consolidate: merge into one, delete the extras with delete-memo, staying within this project) and `suggested_tags` (fitting project tags for this memo — add the relevant ones, especially if it has none yet).
create-project-memo
Create a tag for labelling memories. First run search-tag and reuse a fitting tag — create only when none fits, to avoid duplicates. Omit `project_id` for a PRIVATE tag (only yours); pass it for a SHARED tag of that project. Returns the tag, including its id.
create-tag
Remove a file attached to a memo — deletes it from storage and detaches it from the memo. Use the memo_id and the attachment's file_id. Requires write access to the memo (its private owner, or a member of its project).
delete-file
Delete a memory the user can access — their own private memo, or any memo in a project they belong to. Two-step by design, so a delete stays recoverable for 45 days. Default call (no `permanent`): ARCHIVES the memo — it instantly disappears from every search and list, and is scheduled for permanent erasure 45 days later. Pass a short `reason` for why you are removing it; it is written to the memo's change history and shown in the project activity feed. Within those 45 days it can be brought back with restore-memo. Calling delete-memo again on an already-archived memo WITHOUT `permanent` returns an error — set `permanent: true` to erase it forever now (irreversible; no history written). `permanent: true` on an active memo skips the archive and erases it immediately. Use the default (archive) flow whenever the user asks to delete or forget something; reserve `permanent` for an explicit "delete forever / permanently".
delete-memo
Delete a tag the authenticated user can access — their own private tag, or a tag of a project they belong to. The tag is also detached from every memo that used it.
delete-tag
Get a short-lived download URL for a file attached to a memo (expires in ~15 min). Returns { url, expires_in }. Files have no standing link, so call this whenever the user needs the bytes (e.g. to render an image). Find the file_id in the memo's `files` (from get-memos). Requires access to the memo (its private owner, or a member of its project).
get-file-url
Read the change history of ONE memo by id — a timeline (newest first) of every edit: who changed it, when, and a short `changes` note of what changed and why. Use this to show or review how a memo evolved. Not loaded by get-memos/search-memo (which return only the current memo), so fetch it here when the history itself is what you need.
get-memo-history
Fetch the FULL content of specific memos by their ids — including each memo's `files` attachment list (file_id, name, type, size). search-memo only flags `has_files`, so come here for the actual list. Files carry no standing `url` — call get-file-url with the memo_id + file_id to mint a short-lived download link when the user needs the bytes (render an inline image for image/* types, otherwise a markdown link). Use after search-memo to read the memos you picked from the preview list (search-memo returns only the short public `preview` summary, not the full `content` or the `meta` cues). Takes memo IDS ONLY — to open a memo from a `memocore.ai/m/…` share link, use open-memo-link instead, not this tool. Each returned memo carries a `share_url`: the public /m/ link when it is ALREADY shared, otherwise a short hint. When the user wants a link to a memo, use `share_url` — if it is a hint (not a URL), follow it (call set-memo-sharing); NEVER build a link from `id`. Returns { items, recommendation }; only memos you can access are returned — ids that do not exist or that you cannot access are omitted and reported in `recommendation`.
get-memos
Read a cross-memo change FEED (newest first) — recent edits across many memos, each entry carrying the memo title, who changed it, when, and the agent's `changes` note. With no scope it returns YOUR private memos' history; pass `project_id` for one shared project, or `company_id` for a whole company (the projects you can see in it). Use this for a "what changed recently" activity view; for the full timeline of a single memo use get-memo-history.
list-memo-history
Open a memocore memo from its share link. Use this WHENEVER the user gives you a `memocore.ai/m/…` link — even on its own, and even if they say "look at this page/site/link". Do NOT fetch it as a web page. Always returns the memo's title + preview; the content is added when the link lets you read it (a MEMBER of the memo's project, or public → anyone, company → members of the owning company), and its files only for a project member — VIEW only, never edit. Returns { memo } with whatever the link grants, or { memo: null, recommendation } when the link is unknown or revoked.
open-memo-link
Step 1 of attaching a file to a memo. Returns a short-lived upload ticket ({ file_id, upload: { url, token }, max_size, expires_in }). The file BYTES are uploaded over plain HTTP straight to storage — they must NOT pass through this tool or the model context (never base64 the file into a tool argument). Flow: (1) call this with the target memo_id and the file's content_type; (2) HTTP POST to upload.url as multipart/form-data with exactly two fields — `token` set to upload.token, and `file` containing the bytes (read the file FROM DISK, e.g. `curl -F "token=<token>" -F "file=@/path/to/file" <url>`; size between 1 and max_size); (3) call confirm-file-upload with the same memo_id and file_id to record the file on the memo. Only text, media, PDF and office documents are accepted (text/*, image/*, audio/*, video/*, application/pdf, Word/Excel/PowerPoint, OpenDocument), up to max_size bytes (the per-file cap of the memo owner's plan). The ticket expires in ~15 min. If the byte upload fails because the network sandbox blocks it, the host shown in upload.url must be on the client's network allowlist — surface that exact host to the user to allow (in Claude Code it is also offered for one-click approval on first use); if it cannot be allowlisted (e.g. plain chat clients), hand the user the ready-to-run curl command so they upload it themselves from an unsandboxed terminal. Requires write access to the memo (its private owner, or a member of its project).
request-file-upload
Restore a memo that was deleted (archived) with delete-memo, while it is still within the 45-day window before permanent erasure. Clears the archive flag so the memo is active, searchable and listed again. Find restorable memos with search-memo using archived: true. After 45 days the memo is erased for good and can no longer be restored.
restore-memo
List the companies (teams / organisations) the authenticated user belongs to. Returns { items, recommendation } where each item is { id, name, role ("owner" | "member"), active }. Use it to resolve a company name to its id before creating a corporate project (pass the id as create-project's `company_id`) or listing a company's projects (pass it as search-projects' `company_id`). `active` is whether the team subscription still grants access — a company project can only be created or used while it is true. With a `query`, filters by name; without, lists every company you belong to.
search-companies
Search or recall memories from memocore (the user's persistent memory, also called "mc") — their own private memos and every project they belong to. Every search is HYBRID: `query` (a natural-language description of what you seek) drives meaning-based vector recall, `keywords` (the distinctive terms) drives keyword matching against the heavily-weighted `meta` cues, then title, preview and content; the two rankings are fused. Both are required — write them as two views of the SAME need, not two different questions. Results are LIGHTWEIGHT: each item shows only `title`, the short public `preview` summary, a `has_files` boolean, and where it lives — `project` and `company` as { id, name } and `tags` as [{ id, name }], so you can name the source and reuse the ids without a second lookup — but NOT the full `content`, the `meta` search cues, or the file list. Fetch the full content, meta and attachment list for the ids you need with get-memos. Returns `items` in relevance order plus a `recommendation` — READ THE RECOMMENDATION before trusting anything: it states how solid the results actually are, because a search ALWAYS returns a full page of nearest memos even when the memory holds nothing on the subject. It tells you which items (if any) both sides agreed on and are genuinely on topic, which merely share a word, and when the honest answer is that nothing was found and you should answer from scratch. Narrow with `scope` (private / a specific project), `tags` (only memos carrying ALL given tags) and `exclude_tags` (drop memos carrying ANY of them). With no `scope`/`company` the search spans EVERYTHING you can access (your private memos + every project you belong to, personal and company) and is billed to you; when you are confident which project or company holds the answer, pass its `scope` or `company` to focus there instead (more precise, and billed to that owner). Use to recall what the user or their projects previously stored.
search-memo
Search or list the projects the authenticated user belongs to. Returns { items, recommendation } where each item is { id, name, description, company_id } (company_id is set for a corporate/company project, absent for a personal one); read `recommendation` to decide which project to act on. With a `query`, filters by name/description; without, returns all your projects. Pass `company_id` (from search-companies) to list only that company's projects. Use to resolve a project name to its id, and match a memory against each project's description to decide which project it belongs to, before saving or searching memories in a project.
search-projects
Search or list tags the authenticated user can access — their private tags and the tags of every project they belong to. Returns { items, recommendation }; read `recommendation` to decide whether to reuse a match or create a new tag. With a `query`, ranks tags by relevance (matched against name and context). Without a `query`, returns a paginated list. Use to find an existing tag (by name or by what it is for) before creating a new one, or to resolve a tag id for tagging or filtering memos.
search-tag
Turn public sharing on/off for a PROJECT memo and set its visibility. `access` controls WHO may open the link: "project" (default — only project members), "company" (any member of the owning company; company-project memos only), or "public" (anyone with the link, no sign-in). At EVERY level the link exposes only the memo's title + preview — never its full content. Returns a ready public `url` (/m/<token>) plus a `recommendation`. Hand the user that `url` as-is; never build a link yourself. Built for forwarding: the title/preview unfurl as a card (Telegram etc.). PRIVATE memos cannot be shared. Requires the Max plan or a team plan (else 402). Revoke by calling again with shared=false (or by deleting the memo). Because title + preview become visible to the chosen audience, make sure they carry no sensitive data first. Requires write access to the memo (a member of its project).
set-memo-sharing
Update one of YOUR PRIVATE memos (visible only to you). Use this to actualize or merge into an existing memo instead of creating a near-duplicate. Only the provided fields change, and each REPLACES the old value wholesale — so to merge, fetch the current memo first (get-memos) and send the combined `content`, not just the new fact. Passing `tags` replaces the memo's tags (your private tags only). For a memo that lives in a shared project, use update-project-memo instead. The response includes a `share_url` field; for a private memo it explains there is no link (private memos cannot be shared) — never build one from `id`. The response may carry a `recommendation` with `similar` (near-duplicate memos in this scope — if any is truly the same, consolidate: merge into one, delete the extras with delete-memo) and `suggested_tags` (fitting tags for this memo — add the relevant ones, especially if it has none yet).
update-private-memo
Update a project you belong to — rename it or change its description. Only the provided fields change. Keep the `description` accurate: search-projects shows it and uses it to route future memories to the right project. Requires write access: owners and editors may update it, a viewer cannot. Membership and roles do not change here — manage members from the app. Returns the updated project.
update-project
Update a memo that lives in a SHARED project (visible to, and editable by, every member). Use this to actualize or merge into an existing memo instead of creating a near-duplicate. Only the provided fields change, and each REPLACES the old value wholesale — so to merge, fetch the current memo first (get-memos) and send the combined `content`, not just the new fact. Passing `tags` replaces the memo's tags (this project's tags only). Editing a shared memo can leak data into the project just like creating one, so before calling you MUST scan whatever you are writing (`content` / `title` / `meta`) for personal or sensitive data (private contacts, secrets, credentials, health/financial info). If any is present, proceed only on the user's explicit confirmation. `preview` is PUBLIC (shown in search results and exposable via public share links even outside the project), so it must never contain sensitive data. Set `privacy_reviewed` to true only once that check genuinely passes. For your own private memos use update-private-memo instead. The response includes a `share_url` field: the public /m/ link if the memo is already shared, otherwise a hint. If the user wants a link, use that field (or follow the hint via set-memo-sharing); never build one from `id`. The response may carry a `recommendation` with `similar` (near-duplicate memos in this project — if any is truly the same, consolidate: merge into one, delete the extras with delete-memo, staying within this project) and `suggested_tags` (fitting project tags for this memo — add the relevant ones, especially if it has none yet).
update-project-memo
Update a tag the authenticated user can access — their own private tag, or a tag of a project they belong to. Only the provided fields are changed.
update-tag
Return the profile of the memocore account this MCP connection is authenticated as (id, name, email, status). Use to confirm which user the AI client is acting on behalf of.
whoami
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Memocore alternatives on ChatGPT?
As of 2026-09-02, Memocore competes with AI Passport, AI Whisper Voice Note Taker, AI Wisebase, Arkon Vault, Auto, Basic Memory Cloud, ButlerBrain, Chat2Doc, ChatData Sync, Coconut, Contextick, Contextli, CopyCharm, Cortex — Semantic Memory, Create State, Cribly, Dijin Memory, DotSpark, Empirical, Engram, Fieldy, Fluent, Genesys, Guides, Hjarni Notes, Jade Note, Jotter, Kepler, KinicMemory, Komplyt Zero, LIAM, Lians Memory, Linko, Memoket, Miyo, Mygentic, NeoSapien, NewTwos, Oi, omi, Omphalis, Open Context, Orbismo, Rhythm AI Personality Tuner, Symbol, TwinMind, UseMyContext.ai, VaultSage, Vocci, Voicenotes, Weave, Werify, XMemo, こころぐ, 티에이치스터디 in ChatGPT Personal AI Memory & Second Brain, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.