# MemoStem

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/girapphe/memostem-plugins  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/memostem

## Description
Capture selected AI ideas as private drafts and reuse confirmed knowledge with review-first MCP.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "memostem": {
    "command": "npx",
    "args": ["-y","memostem"]
  }
}
```

## Documentation & README

<p align="center">
  <img src="https://raw.githubusercontent.com/girapphe/memostem-plugins/HEAD/assets/logo-mark.svg" alt="MemoStem logo" width="88" height="88">
</p>

# MemoStem across AI conversations

**Your reviewed knowledge, across AI conversations.**

Let a connected AI reuse your private, confirmed knowledge or notice knowledge
worth keeping as the conversation unfolds. New material becomes a private draft
only after you confirm—without uploading the whole conversation or publishing
anything automatically.

[Use MemoStem](https://www.memostem.com/plugins) ·
[Connection guide](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md) ·
[Privacy](https://www.memostem.com/privacy) ·
[Terms](https://www.memostem.com/terms) ·
[Support](https://www.memostem.com/support) ·
[Security](https://github.com/girapphe/memostem-plugins/blob/HEAD/SECURITY.md)

This public repository is the official distribution source for MemoStem's
chat-host skills, plugin packages, and hosted remote MCP connection metadata.
ChatGPT, Claude, Kimi, Gemini and Grok are the primary channels; Codex and
Claude Code are compatible secondary channels.
The MemoStem application and server implementation remain private.
Distributable manifests, skills, examples, and documentation have no mirrored
authoring copy in that private repository.

## Save here, reuse in another AI conversation

Select an explanation in ChatGPT and keep it in a private guest shelf. Connect
your account to move it into private pending review, then review and approve it
in MemoStem. Then ask Claude or another connected host to find
that knowledge. Sign in to the same MemoStem account in each host; no host gets
access to another host's conversation history.

| Intent | English | 한국어 |
| --- | --- | --- |
| Save | Save this explanation of EUV lithography as one atomic memo draft. | 방금 설명한 EUV 노광 원리를 메모 초안 하나로 저장해 줘. |
| Retrieve | Find my approved MemoStem knowledge about EUV. | MemoStem에서 내가 승인한 EUV 지식을 찾아줘. |
| Select | Show candidates from the concepts we just discussed. | 방금 이야기한 개념 중 저장할 후보를 보여줘. |

## Why MemoStem

- **Get a timely suggestion.** In supported plugin clients, the assistant can
  name a reusable result and ask whether to keep it, so you do not need to
  remember a MemoStem or card command.
- **Confirm, don't scrape.** Nothing is transferred when the AI notices an idea.
  Only the specific suggestion you confirm is sent, never a transcript or hidden
  history. If you invoke MemoStem without naming material and the current chat has
  no eligible candidate, the same flow may use recent conversation context the
  host explicitly provides; it cannot browse unavailable conversation history.
- **Start without an account.** Keep up to ten selected cards in a private
  guest shelf for 90 days. The shelf is read-only in MemoStem; connecting moves
  its cards to your private pending Candidate Inbox for review.
- **Keep knowledge teachable.** Create an atomic memo for one concept or a
  question-and-answer draft for one retrieval question.
- **Reuse only your knowledge.** A read-authorized connection can retrieve the
  signed-in owner's confirmed knowledge and, only when explicitly requested,
  inspect its lifecycle state.

## Everyday workflows

Use ordinary requests in the host where MemoStem is installed. The skill routes
by your intent; opening MemoStem alone does not save anything.

| What you want | Try saying | What should happen |
| --- | --- | --- |
| Choose what to keep | “방금 설명한 개념 중 저장할 후보를 보여줘.” | Preview candidates, then save only your selection. |
| Save a named idea | “삼투압 원리를 메모 초안 하나로 저장해 줘.” | Save the selected idea once; no repeated consent question. |
| Reuse reviewed knowledge | “내가 승인한 EUV 지식으로 이번 질문에 답해 줘.” | Search your active confirmed knowledge and identify the sources used. |
| Practice in this chat | “내가 승인한 EUV 지식으로 한 문제씩 퀴즈를 내 줘.” | Retrieve the selected knowledge, ask one question at a time, and keep the exercise in chat. |
| Propose an improvement | “기존 삼투압 메모에 이 설명을 보완하는 초안을 만들어 줘.” | Prepare a complete pending proposal for your review. |
| Check a previous save | “방금 만든 초안이 아직 검토 대기인지 확인해 줘.” | Check the known batch when status permission is available. |

An in-chat quiz does not enroll knowledge in MemoStem practice or record a
practice result. A proposed improvement takes effect only after you review it
in MemoStem. On a failed or uncertain save, the skill preserves the original
request identity so retrying does not intentionally create another copy.

The packaged skill includes focused guides for
[capture and selection](https://github.com/girapphe/memostem-plugins/blob/HEAD/plugins/memostem/skills/memostem/references/capture-workflows.md),
[retrieval and study](https://github.com/girapphe/memostem-plugins/blob/HEAD/plugins/memostem/skills/memostem/references/retrieval-workflows.md),
and [recovery and status](https://github.com/girapphe/memostem-plugins/blob/HEAD/plugins/memostem/skills/memostem/references/recovery-workflows.md).
They are loaded when the request needs them. Both direct-MCP and ChatGPT web
packages ship the same guides.

### Session reminders in supported runtimes

The direct-MCP package includes a static `SessionStart` hook at
[`hooks/hooks.json`](https://github.com/girapphe/memostem-plugins/blob/HEAD/plugins/memostem/hooks/hooks.json). In a compatible,
trusted Codex or Claude Code runtime, it reminds the assistant to use the
request-specific skill at startup, resume, clear, or compaction. It prints a
fixed context message using the runtime shell's `printf`; it reads no input
or files, calls no service, and saves no knowledge. It does not launch a tool
call or force a save offer.

Codex requires hook trust review before execution. The hook requires a shell
with `printf`; hosts without that command can use the skill without the hook.
The ChatGPT web package uses the skill guides and has no executable hook.
A plugin import or successful local command is not proof that a host loaded
or executed the hook. Proactive offers remain dependent on the host and the
current conversation.

See the official [OpenAI plugin package guide](https://developers.openai.com/plugins/build/plugins),
[Codex hook reference](https://learn.chatgpt.com/docs/hooks), and
[Claude Code hook reference](https://code.claude.com/docs/en/hooks).

## Ask for useful cards

- Concept: “Save how rain forms as one concise concept card, with a definition
  and an example.”
- Retrieval question: “Make one question-and-answer card about why cooling air
  forms water droplets, using what we just discussed.”
- Selection first: “Show me candidates for the weather concepts we discussed
  so I can choose which to keep.”

In an MCP Apps-capable host with a connected account, check candidates and click
Add. That click creates only the selected private pending drafts; no second chat
confirmation is needed. If the host shows a text list instead, reply with the
candidates to keep. Then open Candidate Inbox to read, edit, and approve them.
Previewing or adding drafts does not approve knowledge or enroll it in practice.
The picker UI is served by the hosted MCP server; see the
[MCP Apps contract and host requirements](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md#interactive-candidate-picker-mcp-apps).

See [card examples and review steps](https://www.memostem.com/plugins#card-guide).

## Connect from an AI app

The production Streamable HTTP MCP endpoint is:

```text
https://www.memostem.com/api/mcp
```

### ChatGPT

For ChatGPT web, install **MemoStem for ChatGPT** (`memostem-chatgpt`) from this
marketplace. It references the registered MemoStem App and deliberately has no
`mcp.json` or `.mcp.json`, so it is not classified as Desktop only. The existing
`memostem` package remains the direct-MCP package for Codex, Claude Code, and
other compatible hosts. The public
[MemoStem connection page](https://www.memostem.com/plugins) explains the
privacy boundary and points signed-in users to the in-product setup guide.
MemoStem uses mixed, lazy authentication. Guest capture needs no account;
claiming the shelf or using protected tools starts OAuth. New ChatGPT
connections request `openid`, `knowledge:drafts:create`,
`knowledge:context:read`, and `knowledge:drafts:status`. Existing grants are not
upgraded automatically; disconnect and reconnect, or consent again, to add
read access. `openid` is used only for identity; the defaults exclude
`profile`, `email`, metadata scopes, and `offline_access`. GitHub publication
alone does not list or activate a ChatGPT plugin.

### Claude

Add the same endpoint as a custom connector in Claude and complete MemoStem
OAuth. Claude can also load the Git marketplace below for Claude Code and
compatible plugin surfaces.

### Kimi

Import this repository with Kimi Work's Plugin Builder, install from Personal,
and complete OAuth. Review the converted skill and MCP settings before use.
See the [Kimi guide](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md#kimi). Marketplace approval is separate.

### Gemini

Use Gemini Apps → Connected Apps → Custom apps with the same MCP endpoint.
Current access conditions include US location, age 18+, a personal account,
English and Keep Activity enabled. See the [Gemini guide](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md#gemini).

### Grok

Use Grok's Connectors → New Connector → Custom and complete authentication.
See the [Grok guide](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md#grok); this is the general-chat connector.

A custom MCP connection exposes server tools and instructions; it does not
install this repository's SKILL.md. Plugin loading and proactive suggestions
depend on the host. Channel availability requires actual account verification.

See [the MCP connection guide](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md) for provider-specific setup and
server-side OpenAI API usage.

## Consent-first proactive capture

MCP clients receive guidance to make one brief save offer at a
natural stopping point when the current conversation produces independently
teachable general knowledge: a concept, mechanism, general procedure,
comparison, evidence-backed claim, knowledge question, historical event, or
language expression. The installable plugin also includes an implicitly discoverable
`memostem` skill with the same behavior.

The offer sends nothing and is not consent. The client may call a creation tool
only after a clear affirmative reply to that specific proposal or a direct
request identifying the current-conversation material. Before account
connection, that selection goes to the private guest shelf; after OAuth it
becomes an owner-scoped private pending draft. It must not repeat a
declined topic or propose sensitive, secret, credential, or do-not-retain
material. AI hosts decide whether and when to surface MCP instructions, so a
connection cannot guarantee an offer in every client.

Personal or company decisions, product policies, preferences, plans, tasks,
meeting outcomes, and autobiographical facts are outside this capture contract.
A direct request to save named eligible material already provides consent;
the assistant should verify the connection and create the requested drafts.
When MemoStem is explicitly invoked without named material and the current
conversation has no eligible candidate, the installed skill may apply the same
candidate, consent and draft flow to recent conversation context actually
provided by the host. If that context is unavailable, it reports the limitation
instead of fabricating a candidate. It never transfers the source transcript.

## Secondary channels: install the Git plugin

### Codex

```bash
codex plugin marketplace add girapphe/memostem-plugins --ref main
codex plugin add memostem@memostem
codex plugin list
codex mcp login memostem --scopes knowledge:drafts:create
```

Complete sign-in and consent in the OAuth page, then start a new Codex task so
the installed snapshot loads. In that task, ask:

> Check my MemoStem connection, then save the general knowledge I selected in this conversation as concise atomic memo and question-and-answer drafts.

The plugin calls `check_memostem_connection` first and verifies the draft
permission, then calls `create_knowledge_bundle_drafts`. A successful login or
tool listing alone does not prove that any draft was created. The assistant
must report the server's actual pending count and review link. Browser forms
are not a substitute for this plugin path.

### ChatGPT marketplace update

Install the web-specific package as `memostem-chatgpt@memostem`. Select
**MemoStem for ChatGPT** in a new conversation, then complete the MemoStem OAuth
connection. It is separate from the direct-MCP `memostem` package, which
ChatGPT correctly marks Desktop only. Installing a marketplace revision and
completing OAuth are separate steps; a development App remains in development
until its provider review and publishing process finishes.

### Claude Code

```bash
claude plugin marketplace add girapphe/memostem-plugins
claude plugin install memostem@memostem
claude plugin list
```

Run `/reload-plugins`, then `/mcp` to inspect the connection and complete OAuth
when prompted.

### Update or remove

```bash
# Codex
codex plugin marketplace upgrade memostem
codex plugin add memostem@memostem
codex plugin remove memostem@memostem

# Claude Code
claude plugin marketplace update memostem
claude plugin update memostem@memostem
claude plugin uninstall memostem@memostem
claude plugin marketplace remove memostem
```

## What the MCP exposes

Without an account, `save_guest_knowledge_bundles` keeps only specifically
selected current-conversation general knowledge in a private shelf of at most
ten cards for 90 days. Its opaque `workspace_token` is a private continuation
credential: clients reuse it as a tool argument and never display or log it.
The separate short-lived `review_url` opens a read-only view. At capacity,
`claim_guest_knowledge_workspace` starts OAuth and moves the same cards into
private pending review after consent. `validate_knowledge_bundle` and
`preview_knowledge_bundle` check one selected bundle without saving it.
`start_memostem` displays localized onboarding or owner topic labels;
`connect_memostem` starts read-scope OAuth when required. Neither creates a card.

- `check_memostem_connection`: verify authentication and report granted scopes
  without reading or writing knowledge.
- `get_topic_context`: with `knowledge:context:read`, retrieve only the
  authenticated owner's knowledge. It defaults to active confirmed items;
  callers may explicitly request `active`, `pending`, `archived`, `superseded`,
  or recoverable `trashed` lifecycle states.
- `list_knowledge_catalog`: page through the owner's stable topic and tag IDs,
  canonical names, aliases, and active item counts without returning card bodies.
- `search_knowledge`: search active approved, non-superseded owner knowledge;
  exact matches rank before registered aliases and keyword matches.
- `get_knowledge_context`: retrieve canonical content, taxonomy, version, and
  selector-only provenance for exactly the selected item IDs across topics.
- `create_knowledge_bundle_drafts`: create structured private drafts from a
  specific suggestion the user confirmed, or material they directly asked to
  save from the current conversation. Each bundle must use
  `knowledge_scope: "general_knowledge"`.
- `review_knowledge_bundle_candidates`: present a bounded candidate selection
  before creation; an MCP Apps Add action or an explicit text selection passes
  only the chosen candidates to draft creation.
- `create_card_drafts`: compatible concept-card draft creation.
- `get_draft_batch_status`: with `knowledge:drafts:status`, read whether each
  submitted draft is still pending or was approved, merged, updated, or ignored
  by the owner. The tool cannot execute those actions.

Context packs use schema version 2 and label each item with its lifecycle and
verification status. Pending items remain unconfirmed candidates; non-pending
items are user-confirmed but not independently fact-checked. Explicit item
selection fails as one non-leaky request if any ID belongs to another owner,
is outside the requested lifecycle states, has expired from trash recovery, or
was permanently deleted. No context response contains raw conversation history.

An optional `resolution_proposal` contains a complete proposed final card,
target version, source item IDs, change summary, and reason. It is never a
partial patch or a completed merge. Draft creation cannot approve knowledge, publish to the public graph, or retain
a conversation transcript. Question-and-answer cards use answered `question`
bundles; they do not automatically enroll in practice. See the
[working payload example](https://github.com/girapphe/memostem-plugins/blob/HEAD/plugins/memostem/skills/memostem/references/atomic-memo-flashcard.json)
and [the complete connection and capture guide](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/mcp.md).

## Included skills

The plugin includes only `memostem`, which guides getting started and account
connection, explicit saves, consent-first suggestions, owner-scoped retrieval and
study, draft status, and save recovery through the available MemoStem tools.
Developer maintenance skills belong in the private application repository and
are excluded from every public plugin package.

## Directory publication

- The remote server metadata is published from `server.json` to the official
  MCP Registry when a GitHub Release is published.
- Paste-ready OpenAI, Anthropic and Kimi listing copy, prompts, review cases, and
  activation gates live in [docs/directory-submissions.md](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/directory-submissions.md).
- Five-channel evidence, account prerequisites and follow-up Issues are in
  [the readiness record](https://github.com/girapphe/memostem-plugins/blob/HEAD/docs/channel-status.md).
- Provider review and approval are external states. A public GitHub repository
  or a successful MCP Registry workflow does not prove an OpenAI or Anthropic
  directory listing is live.

## Portable package

`plugins/memostem` is also an [Agent Plugins 1.0](https://agent-plugins.org/specification)
package: root `plugin.json`, root `mcp.json`, and the same `skills/` tree.
The portable MCP config uses `streamable-http`; existing Codex/Claude adapters
keep `.mcp.json` with `http`. OAuth discovery and credential storage belong to
the client. No token or OAuth credential is packaged.

Portable format validation does not establish support in any particular host.
Kimi's documented import route converts a source package; Gemini and Grok use
custom MCP connections. Existing Codex and Claude install names are unchanged.
`plugins/memostem-chatgpt` is the ChatGPT web counterpart: it has root
`plugin.json`, `.app.json`, and the same skill tree, but intentionally no
direct MCP declaration.
Edit skills only under `plugins/memostem/skills`, then run
`npm run sync:skills` to copy them into the ChatGPT web package; `npm run check`
fails when the two skill trees differ.

## Validate locally

```bash
npm run check
python3 /path/to/plugin-creator/scripts/validate_plugin.py plugins/memostem
claude plugin validate .
claude plugin validate plugins/memostem
```

The dependency-free repository check validates both marketplaces, cross-platform
metadata, the complete skill trees, MCP Registry metadata, public/private
boundaries, symlinks, common secret patterns, and the versioned
[`contracts/mcp-compatibility.json`](https://github.com/girapphe/memostem-plugins/blob/HEAD/contracts/mcp-compatibility.json) contract.
That contract names mixed authentication, guest shelf limits, the endpoint,
OAuth scopes, required tools, MCP Apps
resource and action bindings, text fallback, and public fixtures that the private
application validates semantically against its real MCP schemas. It deliberately replaces byte-for-byte cross-repository copies.

Before releasing a public branch that changes the contract or its fixtures, a
MemoStem maintainer runs the private `Public plugin compatibility` workflow
with this branch name as `public_plugin_ref`. The workflow checks out this
repository temporarily; it does not copy plugin sources into the private Git
history.

For local Codex iteration, the plugin-creator cachebuster helper can append
`+codex.<timestamp>` to the Codex manifest version before reinstalling from a
local marketplace. Validation permits that Codex-only build suffix while
requiring the underlying release version to match the Claude and Registry
manifests. Start a fresh task after reinstalling so its tools and instructions
come from the new snapshot.

## Publication boundary

Only this repository is the public installation source. It contains manifests,
instructions, static skills, and connection metadata—not the MemoStem web or
mobile source, MCP implementation, authentication code, database schema,
migrations, credentials, environment files, user data, or provider secrets.

