accueil / serveurs / Productivité / io.github.mreider/better-bear
io.github.mreider/better-bear
serveur MCP (Model Context Protocol)
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.mreider/better-bear est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.mreider/better-bear » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Versions auditées & empreintes
Vérifiez la version que vous utilisez : son empreinte doit correspondre à celle listée ici — sinon vous n'utilisez pas la version auditée.
⚠ La dernière version publiée (0.4.26) n'a pas encore été auditée. Un nouveau pentest est programmé ; les verdicts ci-dessous portent sur les versions listées.
Vous utilisez ce serveur ? Suivez-le (créez un compte) pour être alerté dès qu'une nouvelle version paraît ou que le verdict change.
Les 34 outils
- bear_list_notes≈ 206 tokens
List Bear notes with optional tag filtering. Returns an array of notes with IDs, titles, tags, pin status, and modification dates. Notes with 'locked: true' are private/encrypted in Bear and their body content is not searchable — if a search returns no results, check whether the relevant note is locked. Use bear_get_note to read the full content of a specific note.
Paramètres, retour & exemple (4)
Paramètrestag· string · optionnel
Filter notes by tag (partial match)limit· number · optionnel
Maximum number of notes to return (default 30)include_trashed· boolean · optionnel
Include trashed notes in resultsinclude_archived· boolean · optionnel
Include archived notes in results
Exemple d'appel{"name": "bear_list_notes", "arguments": {"tag": "texte", "limit": 1, "include_trashed": true, "include_archived": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_get_note≈ 133 tokens
Get a single Bear note's full content and metadata by ID. Returns the note title, tags, full markdown text, and dates. If the note is locked/private, 'locked: true' will be included in the response. Use the 'raw' option to get just the markdown without metadata.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Note ID (uniqueIdentifier)raw· boolean · optionnel
Return only the raw markdown content
Exemple d'appel{"name": "bear_get_note", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_search≈ 235 tokens
Full-text search across Bear note titles, tags, and body content. Returns matching notes ranked by relevance (title matches first, then tag, then body). Body matches include a text snippet with surrounding context. Locked/private notes will match by title but may not match body searches — results include 'locked: true' for these notes. If you can't find content you expect, try listing notes to check if the relevant note is locked.
Paramètres, retour & exemple (4)
Paramètreslimit· number · optionnel
Maximum number of results (default 20)query· string · requis
Search query textsince· string · optionnel
Only notes modified after this date (YYYY-MM-DD, or: today, yesterday, last-week, last-month)before· string · optionnel
Only notes modified before this date (YYYY-MM-DD)
Exemple d'appel{"name": "bear_search", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_get_tags≈ 60 tokens
Get the full tag hierarchy from Bear. Returns all tags with their note counts and pin status. Useful for understanding how notes are organized.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_get_tags", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_create_note≈ 181 tokens
Create a new Bear note with a title, optional body text, tags, and YAML front matter. Front matter is stored as a collapsed metadata block at the top of the note. Returns the new note's ID.
Paramètres, retour & exemple (4)
Paramètresbody· string · optionnel
Note body text (markdown)tags· array · optionnel
Tags to assign to the notetitle· string · requis
Note titlefrontmatter· object · optionnel
YAML front matter fields as key-value pairs (e.g. {status: 'draft', project: 'alpha'})
Exemple d'appel{"name": "bear_create_note", "arguments": {"title": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_edit_note≈ 318 tokens
Edit an existing Bear note. Provide 'append_text' to add text, 'body' to replace content, or 'set_frontmatter'/'remove_frontmatter' to edit YAML front matter fields. Front matter edits can be combined with each other but not with body/append.
Paramètres, retour & exemple (8)
Paramètresid· string · requis
Note ID (uniqueIdentifier)body· string · optionnel
New content to replace the entire note bodyafter· string · optionnel
Insert appended text after the line containing this text (use with append_text)append_text· string · optionnel
Text to append to the end of the notereplace_section· string · optionnel
Replace content under this heading (replaces until next heading of same or higher level)section_content· string · optionnel
New content for the section (use with replace_section)set_frontmatter· object · optionnel
Front matter fields to set or update (key-value pairs)remove_frontmatter· array · optionnel
Front matter field keys to remove
Exemple d'appel{"name": "bear_edit_note", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_trash_note≈ 80 tokens
Move a Bear note to the trash. This is a soft delete — the note can be recovered from Bear's trash. The note is identified by its ID.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Note ID (uniqueIdentifier)
Exemple d'appel{"name": "bear_trash_note", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_sync≈ 101 tokens
Trigger a sync of Bear notes from iCloud. Normally an incremental sync fetching only changes. Use 'full' to force a complete re-sync. Most read operations auto-sync when the cache is stale, so manual sync is rarely needed.
Paramètres, retour & exemple (1)
Paramètresfull· boolean · optionnel
Force a full re-sync instead of incremental
Exemple d'appel{"name": "bear_sync", "arguments": {"full": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_list_todos≈ 87 tokens
List Bear notes that have incomplete TODO items (markdown checkboxes like '- [ ]'). Returns each note's title, tags, and counts of complete/incomplete items.
Paramètres, retour & exemple (1)
Paramètreslimit· number · optionnel
Maximum number of notes to return (default 30)
Exemple d'appel{"name": "bear_list_todos", "arguments": {"limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_get_todos≈ 87 tokens
Get all TODO items from a specific Bear note. Returns each item's text, completion status, and index number (use the index with bear_toggle_todo to toggle items).
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Note ID (uniqueIdentifier)
Exemple d'appel{"name": "bear_get_todos", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_toggle_todo≈ 115 tokens
Toggle a specific TODO item in a Bear note between complete and incomplete. The item_index is 1-based — use bear_get_todos first to see the list with index numbers.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Note ID (uniqueIdentifier)item_index· number · requis
1-based index of the TODO item to toggle
Exemple d'appel{"name": "bear_toggle_todo", "arguments": {"id": "texte", "item_index": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_attach_file≈ 236 tokens
Attach a file or image to an existing Bear note. The file is uploaded to iCloud and embedded in the note's markdown. Supports common image formats (jpg, png, gif, webp, heic) and other file types (pdf, zip, etc.). By default the attachment is appended to the end. Use 'after' or 'before' to place it relative to text in the note, or 'prepend' to put it right after the title.
Paramètres, retour & exemple (5)
Paramètresid· string · requis
Note ID (uniqueIdentifier)after· string · optionnel
Insert after the line containing this textbefore· string · optionnel
Insert before the line containing this textprepend· boolean · optionnel
Insert after the title line instead of at the endfile_path· string · requis
Absolute path to the file to attach
Exemple d'appel{"name": "bear_attach_file", "arguments": {"id": "texte", "file_path": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_archive_note≈ 96 tokens
Archive a Bear note. Archived notes are hidden from the main list but not deleted. Use 'undo' to unarchive.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Note ID (uniqueIdentifier)undo· boolean · optionnel
Unarchive the note instead of archiving
Exemple d'appel{"name": "bear_archive_note", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_add_tag≈ 85 tokens
Add a tag to an existing Bear note. The tag is inserted into the note's markdown.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Note ID (uniqueIdentifier)tag· string · requis
Tag to add (without #)
Exemple d'appel{"name": "bear_add_tag", "arguments": {"id": "texte", "tag": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_remove_tag≈ 76 tokens
Remove a tag from a specific Bear note.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Note ID (uniqueIdentifier)tag· string · requis
Tag to remove (without #)
Exemple d'appel{"name": "bear_remove_tag", "arguments": {"id": "texte", "tag": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_rename_tag≈ 94 tokens
Rename a tag across all Bear notes. Every note containing the old tag will be updated.
Paramètres, retour & exemple (2)
Paramètresnew_name· string · requis
New tag name (without #)old_name· string · requis
Current tag name (without #)
Exemple d'appel{"name": "bear_rename_tag", "arguments": {"new_name": "texte", "old_name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_delete_tag≈ 68 tokens
Delete a tag from all Bear notes. The tag text is removed but notes are preserved.
Paramètres, retour & exemple (1)
Paramètrestag· string · requis
Tag to delete (without #)
Exemple d'appel{"name": "bear_delete_tag", "arguments": {"tag": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_find_untagged≈ 59 tokens
List Bear notes that have no tags assigned.
Paramètres, retour & exemple (1)
Paramètreslimit· number · optionnel
Maximum number of notes to return (default 30)
Exemple d'appel{"name": "bear_find_untagged", "arguments": {"limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_note_stats≈ 66 tokens
Get statistics about the Bear notes library: total notes, words, tags, pinned, archived, trashed, notes with TODOs, oldest/newest dates, and top 10 tags by note count.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_note_stats", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_find_duplicates≈ 70 tokens
Find notes with duplicate titles. Returns groups of notes sharing the same title with their IDs and modification dates. Useful for cleaning up after imports or sync conflicts.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_find_duplicates", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_health_check≈ 86 tokens
Run a health check on the Bear notes library. Reports duplicate titles, empty notes, notes stuck in trash, sync conflicts, orphaned tags, untagged notes, and oversized notes. Use this to identify cleanup opportunities or diagnose sync issues.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_health_check", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_setup≈ 195 tokens
Initialize a context library — a curated, synced folder of Bear notes optimized for LLM consumption. Creates the directory structure and config. After setup, tag Bear notes with #context (or a custom prefix) and use bear_context_sync to pull them in. One-time operation.
Paramètres, retour & exemple (3)
Paramètresdir· string · optionnel
Output directory for the context library (default: ~/.bear-context)tag_prefix· string · optionnel
Tag prefix for qualifying notes (default: context). Notes tagged #context or #context/subtag will be included.use_frontmatter· boolean · optionnel
Also include notes with context: true in YAML front matter (default: true)
Exemple d'appel{"name": "bear_context_setup", "arguments": {"dir": "texte", "tag_prefix": "texte", "use_frontmatter": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_sync≈ 130 tokens
Sync qualifying Bear notes to the local context library. Adds new notes, updates changed notes, and removes notes that no longer qualify (tag removed, trashed, etc.). Regenerates the index. Only touches the bear/ directory — external/ and inbox/ are untouched. Call this when the user asks to sync, refresh, or update their context.
Paramètres, retour & exemple (1)
Paramètresforce· boolean · optionnel
Force full re-sync (re-download all notes)
Exemple d'appel{"name": "bear_context_sync", "arguments": {"force": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_index≈ 95 tokens
Get the context library index — a structured table of contents of all files (Bear notes, external files, inbox). Read this FIRST before answering questions from context. Use it to identify which files to fetch, rather than loading everything. Includes cache freshness metadata.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_context_index", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_fetch≈ 122 tokens
Load the full content of specific files from the context library. Pass relative paths like 'bear/arch-overview.md' or 'external/jira-ticket.md'. Use after reading the index to load only relevant files — never load everything.
Paramètres, retour & exemple (1)
Paramètrespaths· array · requis
File paths relative to context directory (e.g., 'bear/my-note.md')
Exemple d'appel{"name": "bear_context_fetch", "arguments": {"paths": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_search≈ 126 tokens
Full-text search across the entire context library (Bear notes + external files + inbox). Returns matching snippets with filenames and origin labels. Use when the index alone isn't enough to find the right file.
Paramètres, retour & exemple (2)
Paramètreslimit· number · optionnel
Maximum results (default: 5)query· string · requis
Search query (case-insensitive substring match)
Exemple d'appel{"name": "bear_context_search", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_add≈ 119 tokens
Add a Bear note to the context library by tagging it with #context. Optionally specify a subtag for grouping (e.g., subtag 'jira' → #context/jira). Triggers a sync after tagging.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Note ID (uniqueIdentifier)subtag· string · optionnel
Optional sub-tag for grouping (e.g., 'architecture', 'jira')
Exemple d'appel{"name": "bear_context_add", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_remove≈ 77 tokens
Remove a Bear note from the context library by removing its #context tag. Triggers a sync to delete the local file.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Note ID (uniqueIdentifier)
Exemple d'appel{"name": "bear_context_remove", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_status≈ 81 tokens
Get context library health and stats: Bear note count, external file count, inbox count, total tokens, last sync time, group breakdown, and warnings (stale cache, expired externals, oversized files, untriaged inbox items).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_context_status", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_import≈ 226 tokens
Import external content into the context library. Content is written to the external/ directory with YAML front matter (source, group, summary, date). Use this to add non-Bear content like Jira tickets, Slack threads, API docs, or any markdown. The content is passed via stdin and a filename must be provided.
Paramètres, retour & exemple (5)
Paramètresgroup· string · optionnel
Group label for organizing (e.g., 'jira', 'slack', 'docs')source· string · optionnel
Source description (e.g., URL, tool name)content· string · requis
Markdown content to importsummary· string · optionnel
Short summary of the contentfilename· string · requis
Target filename in external/ (e.g., 'jira-ticket-123.md')
Exemple d'appel{"name": "bear_context_import", "arguments": {"content": "texte", "filename": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_ingest≈ 84 tokens
Scan the inbox/ directory and list all untriaged files. Returns filename, size, content preview (first 500 chars), and any detected YAML front matter for each file. Does NOT modify anything — use bear_context_triage to act on files.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "bear_context_ingest", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_triage≈ 245 tokens
Triage a file in the inbox. Three actions: 'keep' moves it to external/ with optional group/summary metadata. 'push_to_bear' creates a Bear note tagged #context (+ optional subtag) and deletes the inbox file. 'discard' deletes the file. All actions regenerate the index.
Paramètres, retour & exemple (5)
Paramètresgroup· string · optionnel
Group label (used with 'keep' action)action· string · requis · keep | push_to_bear | discard
Triage action: keep (move to external/), push_to_bear (create Bear note), or discard (delete)subtag· string · optionnel
Sub-tag for Bear note (used with 'push_to_bear' action, e.g., 'jira' → #context/jira)summary· string · optionnel
Short summary (used with 'keep' action)filename· string · requis
Filename in inbox/ to triage
Exemple d'appel{"name": "bear_context_triage", "arguments": {"action": "keep", "filename": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_push_to_bear≈ 168 tokens
Push an external file to Bear as a new note. Creates a Bear note from the file content, tags it with #context (+ optional subtag), and removes the original external file. Use when external content has matured enough to become a permanent Bear note.
Paramètres, retour & exemple (3)
Paramètrestitle· string · optionnel
Override note title (defaults to title extracted from content)subtag· string · optionnel
Sub-tag (e.g., 'architecture' → #context/architecture)filename· string · requis
Filename in external/ to push
Exemple d'appel{"name": "bear_context_push_to_bear", "arguments": {"filename": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - bear_context_remove_external≈ 94 tokens
Remove a file from the external/ directory in the context library. Deletes the file and regenerates the index. Use when external content is no longer needed.
Paramètres, retour & exemple (1)
Paramètresfilename· string · requis
Filename in external/ to remove
Exemple d'appel{"name": "bear_context_remove_external", "arguments": {"filename": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».
Source
better-bear@0.4.21