RemNote MCP Server
The RemNote MCP Server bridges AI agents to your RemNote knowledge base, enabling conversational interaction through MCP tools:
Create Notes - Generate new notes with titles, content (as child bullets), parent hierarchy, and tags
Search Knowledge Base - Perform full-text searches with configurable result limits (1-100) and optional content inclusion
Read Notes - Retrieve specific notes by Rem ID with adjustable child depth (0-10 levels)
Update Notes - Modify existing notes by changing titles, appending content, or adding/removing tags
Journal Entries - Append timestamped entries to today's daily document
Connection Status - Monitor server and plugin connection health and statistics
Multi-Agent Support - Allow multiple AI agents to connect simultaneously through independent MCP sessions
Remote Access - Support cloud-based AI services through secure HTTP transport with tunneling
Compatible with Claude Code CLI, Claude Cowork, Accomplish, and any MCP client supporting Streamable HTTP transport.
Provides integration for GitHub Copilot CLI to access RemNote functionality through MCP tools, allowing AI coding assistants to create, search, and update notes programmatically.
Supports remote access configuration using ngrok tunneling to expose the MCP server for cloud-based AI clients like Claude Desktop and Claude Cowork while keeping WebSocket connections local.
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., "@RemNote MCP Serversearch for my notes on the system architecture"
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.
RemNote MCP Server
MCP server and CLI package that bridges AI agents, local scripts, and coding harnesses to RemNote via the RemNote Automation Bridge plugin.
Connection issue? Check the RemNote bridge plugin and server versions first. Use the official MCP/OpenClaw Automation Bridge by Robert Spiegel in RemNote, and run a compatible
remnote-mcp-serveron the same0.xminor line. Wrong plugin flavors or mismatched versions can disconnect with a1008compatibility message. If Marketplace and npm releases are temporarily out of sync, pin the matching server package or run matching bridge/server checkouts from source. Start with the version compatibility guide, plugin install guide, local plugin guide, and server installation guide. After setup, see the agent validation prompts to verify that your chosen AI agent can use the installed RemNote MCP tools end to end. If the guides do not resolve your problem, open an issue with the relevant versions, setup path, observed behavior, and exact error/status message.
What is This?
The RemNote MCP Server enables AI assistants like Claude Code to interact directly with your RemNote knowledge base
through the Model Context Protocol (MCP). The same npm package also provides remnote-cli, a command-line MCP client
for local scripts and coding harnesses, and remnote-mcp-stdio, a stdio MCP proxy for clients that cannot consume
Streamable HTTP directly. Create notes, hierarchical markdown trees, and RemNote-native flashcards; search and read
your knowledge base; update existing notes; and maintain your daily journal through MCP tools or shell commands.
See AI agent examples in action with
RemNote: Demo and Screenshots · Advanced Use Cases
Two-Component Architecture
This system consists of two separate runtime components that work together:
RemNote Automation Bridge - A RemNote plugin that runs in your browser or RemNote desktop app and exposes RemNote API functionality via WebSocket
RemNote MCP Server (this project) - A standalone server package that provides
remnote-mcp-serverfor MCP HTTP clients,remnote-mcp-stdiofor stdio MCP clients, andremnote-clifor command-line workflows
The remnote-cli and remnote-mcp-stdio commands are not second RemNote-facing servers. They call the MCP endpoint
exposed by remnote-mcp-server.
For OpenClaw/Hermes AI agents and other command-driven local automation, remnote-cli is the direct path: point the
agent at the bundled RemNote CLI skill and keep the MCP server running locally.
For the detailed bridge connection lifecycle, retry phases, and wake-up triggers, use the bridge repo as the source of truth: Connection Lifecycle Guide.
How It Works
AI agents (HTTP) -> MCP HTTP Server :3001 -> WebSocket Server :3002 -> RemNote Plugin -> RemNote
AI agents (stdio) -> remnote-mcp-stdio -> MCP HTTP Server :3001 -> WebSocket Server :3002 -> RemNote Plugin -> RemNote
CLI commands -> remnote-cli -> MCP HTTP Server :3001 -> WebSocket Server :3002 -> RemNote Plugin -> RemNoteThe server acts as a bridge:
Communicates with AI agents via Streamable HTTP transport (MCP protocol) - supports both local and remote access
Provides
remnote-mcp-stdioas a local stdio MCP proxy for clients that need stdio transportProvides
remnote-clias a bundled command-line MCP client for local automationHTTP server (port 3001) manages MCP sessions for multiple concurrent agents
WebSocket server (port 3002) connects to the RemNote browser plugin
Translates MCP tool calls into RemNote API actions
Multi-Agent Support: Multiple AI agents can connect simultaneously to the same RemNote knowledge base. Each agent gets its own MCP session while sharing the WebSocket bridge.
Remote Access: By default, the server binds to localhost (127.0.0.1) for local AI agents. Claude Desktop and Claude Cowork can use the bundled local MCPB extension when desktop extensions are enabled. Cloud-based clients, web/mobile surfaces, and managed Claude deployments without local MCPB require remote access—use tunneling tools like ngrok to expose the HTTP endpoint securely. The WebSocket connection always stays local for security. See Remote Access Guide for setup.
Related MCP server: ai-brain
Features
Create Notes & Flashcards - Create simple notes, hierarchical markdown trees, or RemNote-native flashcards
Search Knowledge Base - Run full-text searches or exact tag Rem ID searches with ancestor context
Read Notes - Retrieve note content in markdown or structured form with configurable traversal depth
Update Notes - Modify titles, insert or replace hierarchical content, and manage tags by exact Rem ID
Journal Entries - Append timestamped daily entries with hierarchical markdown content and optional exact tag Rem IDs
Agent Playbook - Return built-in navigation and safety guidance for MCP clients
Connection Status - Check server and plugin connection health
Quick Start
1. Install the Server
Version compatibility (
0.xsemver): install aremnote-mcp-serverversion compatible with your installed RemNote Automation Bridge plugin version. See the Bridge / Consumer Version Compatibility Guide.
npm install -g remnote-mcp-serverThe package installs these commands:
remnote-mcp-server --version
remnote-cli --version
remnote-mcp-stdio --version2. Install the RemNote Plugin
Install the official MCP/OpenClaw Automation Bridge plugin in your
RemNote app. If installing from the RemNote Marketplace, verify the plugin name and author; similarly named
MCP Bridge variants may be incompatible with this server and cause connection loops or 1008 disconnects. Configure
the plugin to connect to ws://127.0.0.1:3002.
3. Start the Server
remnote-mcp-serverExpected output:
RemNote MCP Server v<version> listening { wsPort: 3002, httpPort: 3001 }Keep this terminal running.
For a background server that survives terminal close and writes to a stable log file:
remnote-mcp-server daemon start
remnote-mcp-server daemon status
remnote-mcp-server daemon logs
remnote-mcp-server daemon stopDaemon state and logs default to ~/.remnote-mcp-server/. On macOS, install a login LaunchAgent for restart/login
persistence:
remnote-mcp-server daemon install-launchdAfter installing the LaunchAgent, remnote-mcp-server daemon status|start|stop|restart controls the launchd service.
4. Configure Your AI Client
Configuration Guide - Overview and generic setup
Codex TUI / Codex.app - HTTP MCP, stdio proxy, and
remnote-cliskill setupClaude Desktop / Cowork Local MCPB - Preferred local desktop setup, no public HTTPS required
Claude Desktop / Cowork Remote Connector - Remote connector setup when local MCPB is not applicable
Claude Code CLI - Claude Code local MCP setup
ChatGPT - ChatGPT Apps configuration
Accomplish - Accomplish (Openwork) configuration
Generic stdio MCP clients - Use
remnote-mcp-stdio
Documentation
Getting Started
Installation Guide - Complete installation instructions
Bridge / Consumer Version Compatibility Guide - Match server version to installed bridge plugin version (
0.xsemver)Bridge Connection Lifecycle - Canonical bridge connect/retry behavior
Configuration Guide - Configure Claude Code CLI, Accomplish, and other clients
Codex Configuration Guide - Set up Codex TUI and Codex.app with RemNote
ChatGPT Configuration Guide - Set up ChatGPT Apps with your MCP server
Demo and Screenshots · Advanced Use Cases - See simple demos and longer workflows
Usage
remnote-mcp-server Command Reference - Server executable, daemon, and launchd options
remnote-cli Command Reference - Shell command reference for the bundled CLI
MCP Tools Reference - Detailed reference for all 9 RemNote tools
Remote Access Setup - Expose server for cloud clients or remote connector flows (ngrok, etc.)
Help & Advanced
Troubleshooting - Common issues and solutions
Architecture - Design rationale and technical architecture
Development
Development Setup - Contributing guide for developers
Testing Strategy - Three-level testing model: local quality checks, maintainer live integration, and end-user agent validation
Integration Testing - Canonical shared workflow for updating and running MCP server + CLI integration coverage against live RemNote
Publishing Guide - npm publishing process (maintainers only)
Available MCP Tools
Tool | Description |
| Create notes, markdown trees, or flashcards with real aliases, optional exact tag Rem IDs, and root document status |
| Search knowledge base with full-text search, parent context, and optional tag IDs/names |
| Search by exact tag Rem ID with ancestor-context resolution |
| Read note by ID with metadata, optional tag IDs/names, and markdown or structured content |
| Retrieve one validated RemNote-managed image as MCP-native image content |
| Update title and add/remove real aliases |
| Preview or set document status while preserving concept/card status |
| Insert child Rems at deterministic positions |
| Replace direct content children while preserving parent metadata |
| Add or remove tags by exact tag Rem ID |
| Append hierarchical content to today's daily document with optional tag Rem IDs |
| Read Advanced Table columns, rows, and typed property metadata |
| Get recommended MCP usage/navigation playbook |
| Check connection status and statistics |
Tools that declare an outputSchema return MCP structuredContent plus a JSON content text block for compatibility.
See the MCP tools specification for the
protocol contract.
The server uses @modelcontextprotocol/sdk and supports current MCP protocol negotiation, including 2025-11-25.
Do not confuse MCP protocol versions with remnote-mcp-server or bridge plugin package versions; package versions use
0.x semver and should usually match by minor line.
See the Tools Reference for detailed usage and examples.
Supported AI Clients
Claude Code CLI - Local terminal-based agent
Codex TUI / Codex.app - Local OpenAI coding agent clients
Claude Desktop / Cowork - Local MCPB clients when desktop extensions are enabled, or remote connector clients when local MCPB is not applicable
Accomplish - Task-based MCP client (formerly Openwork)
Any MCP client supporting Streamable HTTP transport
Any local MCP client supporting stdio transport through
remnote-mcp-stdioAny local command runner that can call
remnote-cli
Example Usage
Create notes:
Create a note about "Project Ideas" with content:
- AI-powered note taking
- Personal knowledge managementSearch:
Search my RemNote for notes about "machine learning"Update notes:
Add a tag "important" to note abc123Journal entries:
Add to my journal: "Completed the RemNote MCP integration"See the Tools Reference for more examples.
Configuration
Environment Variables
REMNOTE_HTTP_PORT- HTTP MCP server port (default: 3001)REMNOTE_HTTP_HOST- HTTP server bind address (default: 127.0.0.1)REMNOTE_WS_PORT- WebSocket server port (default: 3002)REMNOTE_MEDIA_ROOTS- Allowed RemNote media roots, separated by the platform path delimiter; defaults to discovered~/remnote/remnote-*/filesdirectories. Equivalent repeatable CLI flag:--media-root.
Custom Ports
remnote-mcp-server --http-port 3003 --ws-port 3004After changing ports, update your MCP client configuration and RemNote plugin settings.
Background Daemon
remnote-mcp-server daemon startDefault log:
~/.remnote-mcp-server/remnote-mcp-server.logDuplicate starts are treated as already running when the daemon PID is alive.
If the configured HTTP or WebSocket port is already occupied, startup fails before spawning a second server.
Use
remnote-mcp-server daemon stopfor graceful shutdown.Use
remnote-mcp-server daemon install-launchdon macOS to keep the server running across login and unexpected exits.When launchd is installed, the same
daemon status/start/stop/restartcommands control the launchd service.
See remnote-mcp-server Command Reference for all options.
Troubleshooting
Server won't start:
Check ports aren't in use:
lsof -i :3001andlsof -i :3002Verify installation:
which remnote-mcp-server
Plugin won't connect:
Verify plugin settings: WebSocket URL
ws://127.0.0.1:3002Check server is running:
lsof -i :3002
Tools not appearing:
Verify configuration:
claude mcp listRestart Claude Code completely
If this started after upgrades, verify bridge/server version compatibility (
0.xminor versions may break); see the Bridge / Consumer Version Compatibility Guide
See the Troubleshooting Guide for detailed solutions.
Contributing & Development
Development setup:
Version compatibility tip: when testing against a local or marketplace-installed bridge plugin, use a server checkout/tag compatible with that bridge plugin version (see the Bridge / Consumer Version Compatibility Guide).
git clone https://github.com/robert7/remnote-mcp-server.git
cd remnote-mcp-server
./link-cli.sh
# Later, remove the local links for package executables:
./unlink-cli.shDevelopment workflow:
npm run dev # Watch mode with hot reload
npm test # Run test suite
./code-quality.sh # Run all quality checksSee the Development Setup Guide for complete instructions.
Pull requests that affect bridge-consumer behavior should follow the shared PR rules in the bridge repo: Pull Request Guide. In particular, keep bridge and server-package behavior aligned for shared functionality changes.
For the three-level testing model and links to each verification path, see the Testing Strategy.
Related Projects
RemNote Automation Bridge - Browser plugin for RemNote integration
Model Context Protocol - Open protocol for AI-application integration
License
MIT
Links
Documentation - Complete documentation
GitHub Issues - Bug reports and feature requests
npm Package - Official npm package
CHANGELOG - Version history and roadmap
Available Tools
6 toolsremnote_append_journalC
Append content to today's daily document in RemNote
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Content to append to today's daily document | |
| timestamp | No | Include timestamp (default: true) |
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 action ('Append content') but doesn't disclose important behavioral traits like whether this requires authentication, what happens if today's daily document doesn't exist (does it create one?), whether the append is atomic, or what the response looks like. The description is minimal and lacks operational context.
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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information. Every word earns its place in this concise formulation.
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 this is a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens when invoked (success/failure responses), doesn't mention authentication requirements, and doesn't clarify edge cases like missing daily documents. For a tool that modifies data, more operational context is needed.
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 100%, so the schema already fully documents both parameters ('content' and 'timestamp'). The description doesn't add any parameter semantics beyond what's in the schema - it mentions 'content' but provides no additional context about format, length, or special handling. The baseline score of 3 is appropriate when the schema does the heavy lifting.
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 action ('Append content') and target resource ('today's daily document in RemNote'), making the purpose immediately understandable. It doesn't explicitly distinguish from siblings like 'remnote_update_note' which might also modify documents, but the specific focus on 'today's daily document' provides some differentiation.
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 this tool is appropriate versus 'remnote_update_note' for modifying documents, 'remnote_create_note' for creating new documents, or 'remnote_read_note' for reading documents. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remnote_create_noteC
Create a new note in RemNote with optional content, parent, and tags
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | The title of the note | |
| content | No | Content as child bullets (newline-separated) | |
| parentId | No | Parent Rem ID | |
| tags | No | Tags to apply |
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 states the tool creates a note but doesn't disclose permissions needed, whether it's idempotent, error conditions, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is inadequate.
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 a single, efficient sentence that front-loads the core action and lists optional parameters without unnecessary detail. Every word earns its place, making it easy to parse quickly.
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 creation tool with no annotations and no output schema, the description is incomplete. It doesn't address what the tool returns (e.g., note ID, success confirmation), error handling, or behavioral nuances like whether duplicate titles are allowed. Given the complexity of a 4-parameter mutation, more context is needed.
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 100%, so parameters are fully documented in the schema. The description adds marginal value by listing optional parameters (content, parent, tags) but doesn't explain semantics beyond what the schema provides, such as how parentId relates to RemNote structure or tag formatting.
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 action ('Create a new note') and resource ('in RemNote'), making the purpose immediately understandable. It distinguishes from siblings like 'remnote_update_note' by specifying creation rather than modification, though it doesn't explicitly contrast with all alternatives like 'remnote_append_journal'.
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 'remnote_update_note' for modifying existing notes or 'remnote_append_journal' for journal-specific operations. It mentions optional parameters but gives no context about prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remnote_read_noteC
Read a specific note from RemNote by its Rem ID
| Name | Required | Description | Default |
|---|---|---|---|
| remId | Yes | The Rem ID to read | |
| depth | No | Depth of children to include (0-10, default: 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool reads a note, implying a read-only operation, but doesn't clarify if it requires authentication, has rate limits, or what the output format looks like (e.g., structured data or raw text). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
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 a single, clear sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the key action and resource, making it easy to parse. Every part of the sentence earns its place by specifying the tool's function and key input, resulting in zero waste.
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 of reading a note (which could involve permissions, data formats, or errors) and the lack of annotations and output schema, the description is incomplete. It doesn't address what the tool returns (e.g., note content, metadata, or error messages), authentication needs, or potential limitations. For a tool with no structured support, more context is needed to ensure reliable use.
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 100%, so the input schema fully documents both parameters ('remId' and 'depth') with descriptions. The description adds no additional parameter semantics beyond what's in the schema, such as explaining what a 'Rem ID' is or providing examples. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 action ('Read') and resource ('a specific note from RemNote'), making the purpose immediately understandable. It specifies the key identifier ('by its Rem ID'), which distinguishes it from other read operations that might use different identifiers. However, it doesn't explicitly differentiate from sibling tools like 'remnote_search' or 'remnote_status', which could also involve reading data.
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 'remnote_search' for finding notes, or how it relates to 'remnote_status' for system information. There's no context about prerequisites, such as needing an existing Rem ID, or exclusions for when other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remnote_searchC
Search the RemNote knowledge base for notes matching a query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query text | |
| limit | No | Maximum results (1-100, default: 20) | |
| includeContent | No | Include child content (default: false) |
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 basic function but lacks critical details: no mention of search algorithm (full-text, fuzzy, etc.), performance characteristics, rate limits, authentication requirements, or what happens with empty/no results. For a search tool with zero annotation coverage, this is inadequate.
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 a single, clear sentence with zero waste. It's appropriately sized for a search tool and front-loads the essential information without unnecessary elaboration.
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 search tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the search returns (note metadata, full content, relevance scores), how results are ordered, or any limitations. The agent would need to guess about the output format and search behavior.
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 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Search') and resource ('RemNote knowledge base for notes'), making the purpose immediately understandable. However, it doesn't differentiate from potential sibling search tools (none are listed as siblings, but this could be relevant if there were multiple search variants).
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 'remnote_read_note' or 'remnote_update_note'. It doesn't mention prerequisites, limitations, or typical use cases for searching versus direct note access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remnote_statusA
Check the connection status and statistics of the RemNote MCP bridge
| 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 tool checks status and statistics but does not describe what specific statistics are returned, whether it performs network calls, or any error conditions. This leaves significant gaps in understanding the tool's behavior.
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 a single, efficient sentence that front-loads the purpose without any wasted words. It is appropriately sized for a no-parameter tool and communicates the essential information clearly.
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), the description is adequate but incomplete. It lacks details on what statistics are returned and behavioral context, which would be helpful for an agent to understand the tool's output and usage fully. It meets the minimum viable standard but has clear gaps.
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 tool has 0 parameters, and the schema description coverage is 100%, so there is no need for parameter documentation. The description appropriately does not discuss parameters, earning a baseline score of 4 for not adding unnecessary information.
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 specific action ('Check') and the target ('connection status and statistics of the RemNote MCP bridge'), distinguishing it from sibling tools that perform CRUD operations on notes. It precisely communicates what the tool does without being vague or tautological.
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 prerequisites, context, or exclusions, leaving the agent to infer usage based on the purpose alone. This lack of explicit guidance reduces its effectiveness in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remnote_update_noteC
Update an existing note in RemNote (change title, append content, or modify tags)
| Name | Required | Description | Default |
|---|---|---|---|
| remId | Yes | The Rem ID to update | |
| title | No | New title | |
| appendContent | No | Content to append as children | |
| addTags | No | Tags to add | |
| removeTags | No | Tags to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool updates an existing note but doesn't disclose behavioral traits such as whether it requires specific permissions, if changes are reversible, potential rate limits, or what happens to unspecified fields (e.g., does it overwrite or merge?). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
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 a single, efficient sentence that front-loads the core action ('Update an existing note in RemNote') and specifies key operations. There's no wasted text, and it's appropriately sized for the tool's complexity. However, it could be slightly more structured by separating usage hints or behavioral details.
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 complexity (mutation with 5 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions or side effects, doesn't explain return values (since no output schema), and provides minimal parameter guidance beyond the schema. For a tool that modifies data, this leaves significant gaps for an AI 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?
Schema description coverage is 100%, so the schema already documents all 5 parameters (remId, title, appendContent, addTags, removeTags) with descriptions. The description adds minimal value beyond the schema by listing actions ('change title, append content, or modify tags'), which loosely maps to parameters but doesn't provide additional syntax, format details, or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('update') and resource ('existing note in RemNote') with specific actions ('change title, append content, or modify tags'). It distinguishes from siblings like 'remnote_create_note' (create vs. update) and 'remnote_read_note' (read vs. update), though it doesn't explicitly mention all siblings. The purpose is specific but could be more differentiated.
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 prerequisites (e.g., needing an existing note ID), exclusions (e.g., not for creating new notes), or comparisons to siblings like 'remnote_append_journal' (which might be for journal-specific updates). Usage is implied by the verb 'update' but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: append_journal targets daily documents, create/read/update_note handle note lifecycle operations, search finds notes, and status checks connectivity. There is no overlap in functionality, making tool selection unambiguous for an agent.
All tools follow a consistent 'remnote_verb_noun' pattern with snake_case throughout (e.g., remnote_append_journal, remnote_create_note). The naming is predictable and adheres to a uniform convention without any deviations.
With 6 tools, the server is well-scoped for managing a knowledge base like RemNote. It covers core operations (create, read, update, search) plus specialized functions (append_journal, status), avoiding bloat while ensuring each tool earns its place.
The toolset provides strong CRUD coverage for notes and search, with additional utilities for journaling and status checks. A minor gap exists in note deletion functionality, but agents can work around this by updating notes or using other methods, and the core workflows are well-supported.
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
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Search, read, create and edit your Memol notes from Claude. Team note-taking with AI search.
Related MCP Servers
- AlicenseAqualityDmaintenanceImplements the Zettelkasten knowledge management methodology, allowing you to create, link, explore and synthesize atomic notes through Claude and other MCP-compatible clients.146MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants like Claude and Codex to read, write, search, and traverse Markdown notes stored in a self-hosted knowledge base.4MIT
- AlicenseNot gradedqualityDmaintenanceBridges RemNote knowledge base with AI assistants via MCP, allowing AI to read, create, search, and update notes in your personal knowledge management system.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to create, link, explore, and synthesize atomic notes using the Zettelkasten method through MCP-compatible clients like Claude.MIT
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/robert7/remnote-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server