目录 / Cobrain
Cobrain
Every AI keeps its own memory, locked inside its chats. Switch model, open a new chat or hand work to a colleague, and the context is gone. Cobrain is one memory that all your AIs connect to: plain Markdown notes, organized in folders, that Claude, ChatGPT, Claude Code, Codex and any MCP client can read and write. What one AI saves, the next one finds. - Search, read and load whole folders of context before a task - Write, append, move and organize notes from any AI - Share a folder or a single note with a colleague: their AI reads it too - Version history shows which AI or person wrote what - Your AI can never do more than you: it acts with your own permissions - Export everything as Markdown whenever you want Sign in with OAuth, no API keys. Free plan: 1,000 notes, unlimited AIs, 3 read-only shares. Data hosted in the EU.
接入信息
- 传输形态
- http
- 鉴权方式
- 鉴权未知
- 端点
https://cobrain--cobrain.run.tools
{
"mcpServers": {
"Cobrain": {
"url": "https://cobrain--cobrain.run.tools"
}
}
}
能力清单
| 工具 | 说明 |
|---|---|
| list_workspaces | Your brain plus brains shared with you (id, name, access). The first line says which account you are connected as. |
| list_files | List the notes (.md) and the attachments (with size) under a folder. Omit path for the whole brain. If the folder does not exist you get similar folder names. |
| find_notes | Find notes, folders and attachments by NAME (part of the file name or path), like `find` on a filesystem. Use this to locate a unit's folder or a note you know by title, or to resolve a [[wikilink]] to a path. |
| recent_changes | The most recently changed notes (who and when). Use it to catch up on what happened lately. |
| move_file | Rename or move a note or a whole folder (needs write access on both ends). Into another brain the attachments under it travel too. To move it into ANOTHER brain pass to_workspace (id, «mine», or the owner's name/email). |
| delete_file | Delete a note, an attachment, or a folder with everything in it (notes and attachments). Previous versions of notes are kept; attachments are gone for good. |
| read_file | Read a note. On an attachment path (see list_files) you get the file instead: small images inline, text files as text, anything else as a signed download URL valid one hour. |
| write_file | Create a note, or REPLACE its whole content (needs write access). Adding a line to a note that already exists? Use append_file — write_file with a short text erases everything else. Replacing an existing note: pass `base` = the version read_file printed at the end of that note, so you never overwrite what someone else (a person, another AI) changed since you read it — if it changed, you are told to re-read and merge. The brain is found from the path: omit `workspace` and pass it only when the tool asks for it (a new branch, or one present in several brains), with the brain the user chose. |
| append_file | Add text to the end of a note (creates it if missing). Prefer this over write_file whenever you are adding to a note instead of rewriting it: an append is atomic in the database and never conflicts, even with two writers at the same second. The brain is found from the path: omit `workspace` unless the tool asks for it. |
| attach_file | Attach a real file (image, PDF, audio, anything) to the brain, next to a note: it lands in the `allegati/` folder of the note's branch and a Markdown reference is appended to the note (link=false to skip, then place the returned Markdown yourself). Give the file in ONE of three ways: `data` (base64, files up to ~3 MB), `url` (a public URL, fetched server-side, up to 25 MB), or neither: you get a signed PUT URL to upload the bytes yourself (e.g. with curl), then call attach_file again with the returned name and confirm=true. Returns the brain path and the Markdown that references it. |
| search | Find notes by words in their text, across your brain and the brains shared with you. Returns note paths with the matching LINES as excerpts (marked with …). A hit from a shared brain is tagged `[<owner>'s brain · workspace=<id>]`: pass that workspace to read_file/load_context/start_session for it. Excerpts are not the note: before answering from one, call read_file on its path; for the surrounding context, load_context on the note's folder. Each hit carries the note's date (from its frontmatter or file name, else when it was written). Hits under a `Maybe related` line match only SOME of the words: prefer the ones above it. Use 2-4 keywords, not a sentence. `path` narrows the search to one branch (a client, a project): use it whenever you already know where you are working. |
| fetch | Open a note by the `id` a search result carried, and get its whole text as JSON. If you are not ChatGPT, prefer read_file: same note, plus attachments and the version you need to rewrite it. |
| list_tags | Tags with counts. |
| files_by_tag | Notes carrying a tag. |
| load_context | Everything under a folder (or with a tag) in one blob, INSTRUCTIONS FIRST: brain-wide rules (_ai.md at the root), the unit's _about.md and _ai.md, its context folders and the latest decisions are always included in full, then the notes of the branch (closed sub-units left out). Call this first when starting work on a unit. The header lists, by name, the notes that did NOT fit: open the ones you need with read_file instead of assuming the blob is the whole branch. |
| start_session | The one-minute briefing on a unit (a folder with _about.md: a client, a student, a patient, a project… whatever the user tracks): brain-wide rules, its _about.md, _ai.md, context folders, latest decisions — in full — then its open sub-units and the last 15 changes. Call this FIRST when the user names a unit; then load_context on the sub-folder you need. `unit` is a path or a name. |
| list_units | The units in the brain (folders with _about.md: clients, students, patients, projects… any type): path, type, state, notes, last change, open sub-units. Closed ones only with all=true. |
| create_unit | Create a unit at `path` from the brain's template for `type`. `type` is free (studente, paziente, classe, cliente, progetto…): the template is `_templates/<type>/` in the brain; if missing it is seeded the first time from the preset of that name (cliente, progetto) or, for any other type, from the generic template (_about.md, _ai.md, decisions.md) — then shape `_templates/<type>/` with the user so the next units of that type are born complete (see start_project). On an existing folder it only adds the missing files (never overwrites) — use it to mark an imported folder as a unit. Then start_session and fill the sections following the `for the AI` comments in each section. On a shared brain where you cannot write at the root, the unit is still created from the default template. |
| start_project | Guided brainstorming to set up a new unit in the brain — a client, a student, a patient, a project, whatever the user wants to track: returns the step-by-step script to follow with the user (what to track and what to call it, a few questions, structure proposal, create_unit, filling). Use it when the user says 'nuovo cliente', 'nuovo progetto', 'nuovo studente', 'start project' or wants to add someone/something to the brain. |
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。