Skip to main content
Glama

Server Details

Cobrain is a hosted Markdown brain your AIs share. Connect Claude, ChatGPT, Claude Code, Codex or any MCP client once (remote MCP with OAuth, no API keys to paste) and they all read and write the same notes. Share one folder with a teammate, read-only or read-write, and their AI reads it too. Permissions are enforced in the database, the same for the web app and for AIs; writes are version-checked so two AIs can't silently overwrite each other. Plain .md, exportable, EU-hosted. Free plan available.

Ownership verified
Status
Healthy
OAuth
Not checked
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

Score is being calculated.

Available Tools

28 tools
append_fileInspect

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. To change text that is already in the note, use patch_file. The brain is found from the path: omit workspace unless the tool asks for it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
app_note
Read-only
Inspect

Used by the Cobrain app: one note, rendered, with where it lives and who changed it last.

ParametersJSON Schema
NameRequiredDescriptionDefault
wsYes
pathYes
attach_fileInspect

Attach a real file (image, PDF, audio, anything) to the brain, next to a note: it lands in the attachments/ 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic http(s) URL to fetch
dataNoBase64 content (a data: URL prefix is fine)
linkNoAppend the reference to the note (default true when path is a note)
nameYesFile name with extension (accents and spaces are normalized)
pathYesThe note (…/nota.md) the file belongs to, or a folder
confirmNoSecond step of the direct upload: the bytes are on R2, register them
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
brain_panelBrain notes
Read-only
Inspect

Opens the Cobrain app in a tab beside the conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

create_unitInspect

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 with frontmatter status/context, _ai.md, decisions.md; placeholder {{name}}) — then shape _templates/<type>/ with the user so the next units of that type are born complete (see start_project). These names and keys are English in every brain, Italian ones included. 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. In a Cobrain brain where you can write only a branch (shared with you by its owner) and not the root, the unit is still created from the default template.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
typeYes
fieldsNo
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
delete_file
Destructive
Inspect

Move a note, an attachment or a folder (with everything in it) to the brain's trash: the brain's owner can restore it from the Trash page of Cobrain for 30 days, then it is deleted for good. Previous versions come back with the note. Trashed notes still count toward the plan's note limit. Everything stays inside Cobrain. No tool can see or restore the trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
dream_tidy_up
Read-only
Inspect

The Dream: tidy up the brain's memory. Among the notes changed in the last N days (or all the notes of one folder) finds notes that say almost the same thing as another one, decision logs grown too long, [[links]] that lead nowhere, empty notes — and returns them with the step-by-step script: read, fix the safe things, tell the user what you found and ask once before anything that could lose content (merging different notes, deleting, superseding decisions). Use it when the user says 'dream', 'sogna', 'fai il sogno', 'tidy up', 'riordina', or pastes the sentence from Cobrain's Dream email or Dream page (that one names a saved pre-dream: pass saved=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days back to look (1-15): only the notes changed in that period are checked, plus the older notes they are close to. «yesterday» = 1, «this week» = 7. Default 7. Ignored when path is given.
pathNoA folder: dream on every note inside it, whatever its age (up to 300 notes).
savedNotrue = use the pre-dream Cobrain already saved (the list in the email and on the Dream page) instead of checking again. Pass it when the user's sentence mentions «the pre-dream of <date>» / «il pre-sogno del <date>».
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
fetch
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataNo
files_by_tag
Read-only
Inspect

Notes carrying a tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
find_notes
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
list_files
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
list_tags
Read-only
Inspect

Tags with counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
list_units
Read-only
Inspect

The units in the brain (folders with _about.md: clients, students, patients, projects… any type): path, type, status (status: in _about.md: active, closed or free text), notes, last change, open sub-units. Closed ones only with all=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo
typeNo
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
list_workspaces
Read-only
Inspect

Your brain plus brains shared with you (id, name, access). The first line says which account you are connected as.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

load_context
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
pathNo
max_charsNo
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
move_file
Destructive
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
fromYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
to_workspaceNoThe destination brain, only when it differs from the source one.
open_brainCobrain
Read-only
Inspect

Opens the Cobrain app full screen from ChatGPT's sidebar: the user browses and searches their brain and attaches notes to the chat.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

patch_file
Destructive
Inspect

Change one part of a note without rewriting it: replaces old_text with new_text. old_text must be copied exactly from read_file (spaces and line breaks included) and appear once in the note; add a few surrounding words if it appears more than once, or pass replace_all: true to change every occurrence. An empty new_text deletes old_text. Only changes a note that exists. The brain is found from the path: omit workspace unless the tool asks for it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
new_textYes
old_textYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
replace_allNo
read_file
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
recent_changes
Read-only
Inspect

The most recently changed notes (who and when). Use it to catch up on what happened lately.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
search_mentions
Read-only
Inspect

Used by ChatGPT's composer to let the user @-mention a note (typeahead by name). Other clients: use find_notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
settings_read
Read-only
Inspect

Used by ChatGPT's plugin settings page: the settings, their current values and layout.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
layoutNo
schemaYes
valuesYes
settings_updateInspect

Used by ChatGPT's plugin settings page to save the settings the user changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
setYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
valuesYes
start_project
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

start_session
Read-only
Inspect

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. Special file names and frontmatter keys are English in every brain: facts about the unit go in _about.md (frontmatter status: active|closed, context: folders always loaded), decisions in decisions.md (append_file), templates in _templates/.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitYes
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.
write_file
Destructive
Inspect

Create a note, or REPLACE its whole content (needs write access). Adding a line to a note that already exists? Use append_file. Changing one part of it? Use patch_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNoThe note's version as printed at the end of read_file (an ISO timestamp). Pass it when replacing an existing note.
pathYes
contentYes
overwriteNo
workspaceNoBrain to act on: its id, «mio» (yours), or the owner's name/email as shown by search. Usually OMIT it: a path that already lives in one brain is found there, for reads and writes alike. Pass it only when the tool tells you to (a NEW branch, or one that exists in several brains) — with the brain the user named; when they were not explicit ASK THEM. A brain where the branch does not exist is refused even if you name it.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 28 tool updates
    • First observedapp_note
    • First observedapp_search
    • First observedappend_file
    • First observedattach_file
    • First observedbrain_panel
    • First observedcreate_unit
    • First observeddelete_file
    • First observeddream_tidy_up
    • First observedfetch
    • First observedfiles_by_tag
    • First observedfind_notes
    • First observedlist_files
    • First observedlist_tags
    • First observedlist_units
    • First observedlist_workspaces
    • First observedload_context
    • First observedmove_file
    • First observedopen_brain
    • First observedpatch_file
    • First observedread_file
    • First observedrecent_changes
    • First observedsearch
    • First observedsearch_mentions
    • First observedsettings_read
    • First observedsettings_update
    • First observedstart_project
    • First observedstart_session
    • First observedwrite_file

Publisher details

Operator
OverPress Media SRL
Operator website
https://cobrain.space
Vendor relationship
First-party · Publisher source
Restrictions
Free plan available (1,000 notes). Sign-in with a Cobrain account required (OAuth, no API key). In claude.ai, custom connectors require a paid Claude plan.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude, ChatGPT, and other AI apps to share one MCP-accessible hub of Markdown-based memories and skills, with per-app adapters, versioned writes, git history, saving policies, Google OAuth, and a web UI.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local-first, file-based memory layer for AI agents — one shared Markdown vault across Claude, Codex, Gemini, Cursor and any MCP client. Provides read/write memory tools with an audit trail, per-agent trust levels, and Git sync; no cloud and no lock-in.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients like Claude, ChatGPT, and Cursor to search, read, and write back to one cross-model Markdown library of saved articles, videos, PDFs, notes, and conversations. Hosted remote server with OAuth 2.1 or Agent-key auth and read_only, edit, or full permission tiers.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources