Bear Notes MCP Server
Mentioned as a platform where Bear App is available, though the MCP server focuses on accessing notes via the macOS database.
Provides specialized search functionality to find Kubernetes manifests and configurations stored in Bear notes.
Integrates with the Bear App on macOS to access the app's note database, allowing for searching and retrieving notes across the Bear ecosystem.
Accesses Bear's SQLite database directly to retrieve notes and their metadata for searching and analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bear Notes MCP Serverfind my notes about Python APIs from the last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bear App MCP Server
A Model Context Protocol (MCP) server that provides Claude with access to your Bear App notes. Search, retrieve, and analyze your Bear notes directly from Claude Desktop or any MCP-compatible client.
Features
🔍 Search & Discovery
Full-text search across all your notes
Tag-based filtering for organized content
Title-based search with exact or partial matching
Recent notes filtering by modification date
💻 Code & Technical Content
Kubernetes manifest finder - Locate deployment examples, service configs, etc.
Code example search - Find code snippets by programming language
Code block extraction - Automatically parse and categorize code blocks
Technical documentation discovery
📊 Content Analysis
Word count and content statistics
Code language detection from fenced code blocks
Content previews for quick scanning
Metadata extraction (creation/modification dates)
Related MCP server: Bear MCP Server
Installation
Prerequisites
macOS (Bear App is macOS/iOS only)
Bear App installed and with some notes
Python 3.8 or higher
Claude Desktop (for desktop integration)
Setup Steps
Clone or download the server script
git clone github.com/netologist/mcp-bear-notesCreate a virtual environment
uv install source .venv/bin/activateTest the server
uv run python main.py
Claude Desktop Integration
Configuration File Location
Edit your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.jsonAdd MCP Server Configuration
{
"mcpServers": {
"bear-notes": {
"command": "/full/path/to/mcp-bear-notes/.venv/bin/python",
"args": ["/full/path/to/mcp-bear-notes/main.py"],
"env": {
"PYTHONPATH": "/full/path/to/mcp-bear-notes/.venv/lib/python3.13/site-packages"
}
}
}
}Important: Replace /full/path/to/ with your actual file paths.
Restart Claude Desktop
Close and reopen Claude Desktop to load the MCP server.
Usage Examples
Once integrated with Claude Desktop, you can use natural language to interact with your Bear notes:
Basic Search
"Search my Bear notes for Docker examples"
"Find notes about Python APIs"
"Show me my recent notes from this week"Technical Content
"Find my Kubernetes deployment manifests"
"Look for JavaScript code examples in my notes"
"Show me notes with YAML configurations"Specific Retrieval
"Get the note titled 'Development Setup'"
"Find notes tagged with 'work'"
"Show me all my available tags"Available Tools
search_bear_notes(query, tag, limit)
Search notes by content and tags.
query: Text to search fortag: Filter by specific tag (without #)limit: Max results (default: 20)
get_bear_note(note_id)
Retrieve a specific note by its unique ID.
note_id: Bear note's unique identifier
find_kubernetes_examples(resource_type)
Find Kubernetes-related content.
resource_type: K8s resource (deployment, service, etc.)
find_code_examples(language, topic, limit)
Search for code examples.
language: Programming languagetopic: Code topic/domainlimit: Max results (default: 15)
find_notes_by_title(title_query, exact_match)
Search notes by title.
title_query: Title text to searchexact_match: Exact or partial matching
get_recent_notes(days, limit)
Get recently modified notes.
days: How many days to look back (default: 7)limit: Max results (default: 20)
list_bear_tags()
List all tags found in your notes.
Bear Database Information
The server reads from Bear's SQLite database located at:
~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqliteDatabase Access Notes
Read-only access - The server never modifies your notes
No authentication required - Uses direct SQLite access
Performance - Database queries are optimized for speed
Safety - Only accesses non-trashed notes
Troubleshooting
Common Issues
Server won't start
Check Python path in configuration
Verify virtual environment activation
Ensure fastmcp is installed
No notes found
Verify Bear database path exists
Check that Bear App has been opened at least once
Confirm notes aren't in trash
Claude Desktop integration fails
Validate JSON syntax in config file
Check file paths are absolute, not relative
Restart Claude Desktop after configuration changes
Permission denied errors
Ensure script has execute permissions:
chmod +x main.pyCheck Bear database file permissions
Debug Mode
Run the server directly to see debug output:
python main.pyLog Files
Check Claude Desktop logs for MCP server errors:
~/Library/Logs/Claude/Security & Privacy
Local-only: All data stays on your machine
Read-only: Server never modifies your notes
No network: No external connections required
Open source: Full transparency of operations
Contributing
Contributions welcome! Areas for improvement:
Additional search filters
Export functionality
Note creation capabilities
iOS Shortcuts integration
Performance optimizations
License
MIT License - See LICENSE file for details.
Changelog
v1.0.0
Initial release
Basic search and retrieval functions
Kubernetes and code example finders
Claude Desktop integration
Tag listing and filtering
Support
For issues and questions:
Check the troubleshooting section
Review Claude Desktop MCP documentation
Open an issue on GitHub
Check Bear App forums for database-related questions
Note: This is an unofficial tool and is not affiliated with Bear App or Anthropic. Use at your own discretion.
Available Tools
7 toolsfind_code_examplesC
Find code examples in Bear notes
Args: language: Programming language (python, javascript, go, etc.) topic: Topic to search for (docker, api, database, etc.) limit: Maximum number of results
Returns: Notes containing code examples with extracted code blocks
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| topic | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but lacks important behavioral details: no information about permissions needed, rate limits, whether it searches all notes or specific ones, how results are sorted, or what happens when parameters are omitted. The return description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with clear sections (purpose, args, returns). Each sentence serves a purpose, though the 'Args' and 'Returns' sections could be integrated more smoothly. No wasted words, but could be slightly more polished in structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter search tool with no annotations and no output schema, the description provides basic purpose and parameter information but lacks important context. It doesn't explain the search scope, result format, error conditions, or how it differs from sibling tools. The return description is minimal ('Notes containing code examples with extracted code blocks').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides basic semantic meaning for all three parameters (language, topic, limit) with examples for language and topic, which adds value beyond the bare schema. However, it doesn't explain parameter interactions, validation rules, or what happens with empty/default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find code examples in Bear notes' with specific parameters for language, topic, and limit. It distinguishes from siblings like 'find_notes_by_title' or 'search_bear_notes' by focusing on code examples, but doesn't explicitly differentiate from 'find_kubernetes_examples' which appears to be a specialized version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'find_kubernetes_examples' (which seems related), 'search_bear_notes', or 'get_recent_notes'. It mentions parameters but gives no context about when this tool is appropriate versus other search methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_kubernetes_examplesC
Find Kubernetes manifest examples in Bear notes
Args: resource_type: Kubernetes resource type to search for (deployment, service, configmap, etc.)
Returns: Notes containing Kubernetes examples
| Name | Required | Description | Default |
|---|---|---|---|
| resource_type | No | deployment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it 'finds' examples (implies read-only) and returns notes, but lacks behavioral details: search scope (all notes/tagged notes?), match criteria (exact/partial?), return format (note titles/content?), or limitations (pagination/rate limits?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose, args, and returns sections in 4 sentences. The purpose sentence is front-loaded, but the 'Args:' and 'Returns:' labels add minor verbosity without enhancing clarity for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Incomplete for a search tool with no annotations or output schema. The description lacks details on search behavior (e.g., fuzzy matching), result format (e.g., note IDs vs content), and constraints (e.g., max results). Given 1 parameter with 0% schema coverage, it should explain parameter usage more thoroughly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining 'resource_type' as 'Kubernetes resource type to search for (deployment, service, configmap, etc.)', providing examples beyond the schema's generic 'Resource Type' title. However, it doesn't clarify if 'etc.' includes custom resources or if the search is case-sensitive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find Kubernetes manifest examples in Bear notes' (verb+resource+scope). It distinguishes from siblings like 'find_code_examples' by specifying Kubernetes manifests, but doesn't explicitly differentiate from 'search_bear_notes' which might also find notes with Kubernetes content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It doesn't mention when to prefer 'find_code_examples' (for general code) or 'search_bear_notes' (for broader searches), nor does it specify prerequisites like needing Bear notes with Kubernetes examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_notes_by_titleC
Find notes by title
Args: title_query: Title text to search for exact_match: Whether to match title exactly or use partial matching
Returns: Notes matching the title criteria
| Name | Required | Description | Default |
|---|---|---|---|
| title_query | Yes | ||
| exact_match | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool finds notes by title and describes parameters, but lacks critical behavioral details such as whether this is a read-only operation, how results are returned (e.g., pagination, format), error handling, or any rate limits. The description is minimal and doesn't adequately cover behavioral traits beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value, with no redundant information. However, the 'Returns' section is somewhat vague ('Notes matching the title criteria'), which slightly reduces efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters, no annotations, no output schema), the description is incomplete. It covers basic purpose and parameters but lacks details on behavioral traits, output format, error handling, and differentiation from sibling tools. For a search tool with no structured support, this leaves significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for both parameters: 'title_query' is explained as 'Title text to search for' and 'exact_match' as 'Whether to match title exactly or use partial matching'. With 0% schema description coverage, this compensates well by clarifying the purpose and behavior of each parameter, though it doesn't specify syntax or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Find notes by title' which clearly indicates the verb (find) and resource (notes), but it's vague about scope and doesn't differentiate from sibling tools like 'search_bear_notes' or 'get_recent_notes'. It specifies the search criteria (title) but lacks detail about what 'notes' refers to in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'search_bear_notes' or 'get_recent_notes'. The description only states what the tool does without indicating context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bear_noteB
Get a specific Bear note by ID
Args: note_id: Bear note's unique identifier
Returns: Complete note content with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| note_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves a note by ID and returns content with metadata, but lacks details on error handling (e.g., what happens if the ID is invalid), permissions, or rate limits. This is a significant gap for a retrieval tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured, using clear sections for 'Args' and 'Returns' in just three sentences. Every sentence adds value without redundancy, making it easy to parse and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic operation and parameter meaning but lacks details on behavioral aspects like errors or output structure, leaving gaps that could hinder effective use by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'note_id' by specifying it as 'Bear note's unique identifier,' which clarifies its purpose beyond the schema's basic title. With 0% schema description coverage and only one parameter, this compensates well, though it doesn't detail format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('Bear note by ID'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'get_recent_notes' or 'search_bear_notes' beyond the ID-based retrieval, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over sibling tools like 'get_recent_notes' or 'search_bear_notes', nor does it specify prerequisites such as needing a valid note ID, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_notesC
Get recently modified notes
Args: days: Number of days to look back limit: Maximum number of results
Returns: Recently modified notes
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves notes but doesn't describe what 'recently modified' means operationally (e.g., modification timestamp vs creation), whether results are sorted, pagination behavior, error conditions, or authentication needs. For a read operation with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first line. The Args/Returns sections add necessary structure without redundancy. However, the 'Returns' section ('Recently modified notes') is somewhat tautological with the first line and could be more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage and no output schema, the description provides basic parameter semantics but lacks behavioral context (sorting, errors, etc.). For a simple read tool, it's minimally adequate but has clear gaps. The absence of annotations increases the burden that the description doesn't fully meet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds basic meaning for both parameters ('days: Number of days to look back', 'limit: Maximum number of results'), which goes beyond the schema's bare titles. However, it doesn't provide format details, constraints, or examples (e.g., valid ranges for days/limit). The description partially compensates but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with 'Get recently modified notes' - a specific verb ('Get') and resource ('notes') with a temporal qualifier ('recently modified'). It distinguishes from siblings like 'find_notes_by_title' or 'search_bear_notes' by focusing on recency rather than content-based search. However, it doesn't explicitly contrast with all siblings (e.g., 'get_bear_note' might fetch a single note).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'search_bear_notes' or 'find_notes_by_title', nor does it specify prerequisites or exclusions. The context is implied through the name and description but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bear_tagsB
List all tags from Bear App notes
Returns: Sorted list of all tags found in notes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List all tags') and return type ('Sorted list'), but lacks details on permissions, rate limits, or any side effects. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and includes a brief return statement, making it efficient. However, the structure could be slightly improved by integrating the return information more seamlessly, and it lacks any extra context that might be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and return, but for a tool with no annotations, it should ideally include more behavioral context, such as how tags are sourced or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter details, which is appropriate, but it could have mentioned optional behaviors like sorting criteria. Baseline is 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all tags from Bear App notes'), making the purpose unambiguous. However, it does not explicitly differentiate from sibling tools like 'search_bear_notes' or 'find_notes_by_title', which might also involve tags, so it lacks sibling distinction for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios like retrieving all tags versus searching for specific tags or notes, nor does it reference sibling tools, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_bear_notesB
Search Bear App notes
Args: query: Text to search for (searches in title and content) tag: Tag to filter by (without # symbol) limit: Maximum number of results
Returns: List of matching notes with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| tag | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions searching 'in title and content' and returning 'List of matching notes with metadata', but doesn't disclose critical traits like whether this is a read-only operation, how results are sorted, if there's pagination, or what 'metadata' includes. For a search tool with 3 parameters, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear header and bullet-point-like sections for Args and Returns. It's front-loaded with the core purpose. However, the 'Args' and 'Returns' labels add minor redundancy, and it could be more concise by integrating parameter details into a single sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage and no output schema, the description does an adequate job explaining inputs and the return type. However, it lacks details on output structure (what metadata?), error conditions, or performance limits. For a search tool with siblings, more context on differentiation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate—and it does by explaining all 3 parameters: 'query' searches title/content, 'tag' filters without # symbol, and 'limit' sets max results. This adds meaningful context beyond the bare schema, though it doesn't detail query syntax (e.g., wildcards) or tag behavior (e.g., multiple tags).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('Bear App notes'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'find_notes_by_title' or 'get_recent_notes' by specifying it searches both title and content. However, it doesn't explicitly contrast with 'find_code_examples' or 'find_kubernetes_examples', which might be more specialized search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'find_notes_by_title' (which might search only titles) or 'list_bear_tags' (which might help with tag discovery). There's no context about prerequisites, such as whether Bear App needs to be running or authenticated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
- First observed
find_code_examples - First observed
find_kubernetes_examples - First observed
find_notes_by_title - First observed
get_bear_note - First observed
get_recent_notes - First observed
list_bear_tags - First observed
search_bear_notes
TDQS
Most tools have distinct purposes, but there is some overlap between find_notes_by_title and search_bear_notes, as both search for notes based on text criteria. However, the descriptions clarify that find_notes_by_title focuses on title matching while search_bear_notes searches both title and content, reducing confusion.
All tool names follow a consistent verb_noun pattern with snake_case, such as find_code_examples, get_bear_note, and list_bear_tags. This uniformity makes the tool set predictable and easy to understand.
With 7 tools, the server is well-scoped for managing Bear notes, covering key operations like searching, retrieving, and listing without being overwhelming. Each tool serves a clear purpose, making the count appropriate for the domain.
The tool set provides strong coverage for reading and searching notes, including specific use cases like code and Kubernetes examples. However, it lacks write operations (e.g., create, update, or delete notes), which could limit full lifecycle management, though this may be intentional for the server's design.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables semantic search and RAG over your Apple Notes, allowing AI assistants like Claude to search and reference your notes during conversations.43310MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows AI assistants like Claude to read notes from the Bear note-taking app in a safe, read-only mode.3215MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that integrates with Bear App, enabling AI assistants to create, search, modify, and organize notes and tags through X-callback-URL scheme.16321ISC
- AlicenseAqualityDmaintenanceA Python-based MCP server that provides read and write access to Bear Notes on macOS using SQLite for data retrieval and x-callback-url for modifications. It enables users to search, create, archive, and manage notes and tags directly through a Model Context Protocol interface.161ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/netologist/mcp-bear-notes'
If you have feedback or need assistance with the MCP directory API, please join our Discord server