remnote-mcp-server 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -1
- package/LICENSE +1 -1
- package/README.md +112 -429
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +21 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/http-server.d.ts +2 -1
- package/dist/http-server.js +5 -3
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas/remnote-schemas.js +2 -2
- package/dist/schemas/remnote-schemas.js.map +1 -1
- package/dist/tools/index.d.ts +85 -0
- package/dist/tools/index.js +71 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/websocket-server.d.ts +2 -1
- package/dist/websocket-server.js +5 -3
- package/dist/websocket-server.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -4,31 +4,35 @@
|
|
|
4
4
|

|
|
5
5
|
[](https://codecov.io/gh/robert7/remnote-mcp-server)
|
|
6
6
|
|
|
7
|
-
MCP server that bridges AI agents (e.g. Claude Code) to [RemNote](https://remnote.com/) via the [RemNote
|
|
8
|
-
|
|
7
|
+
MCP server that bridges AI agents (e.g. Claude Code) to [RemNote](https://remnote.com/) via the [RemNote Automation Bridge plugin](https://github.com/robert7/remnote-mcp-bridge).
|
|
8
|
+
|
|
9
|
+
> This is a working solution, but still experimental. If you run into any issues, please [report them here](https://github.com/robert7/remnote-mcp-server/issues).
|
|
10
|
+
|
|
11
|
+
## What is This?
|
|
12
|
+
|
|
13
|
+
The RemNote MCP Server enables AI assistants like Claude Code to interact directly with your RemNote knowledge base
|
|
14
|
+
through the Model Context Protocol (MCP). Create notes, search your knowledge base, update existing notes, and maintain
|
|
15
|
+
your daily journal—all through conversational commands.
|
|
16
|
+
|
|
17
|
+
For some agentic workflows or CLI-first automation, the companion app **[remnote-cli](https://github.com/robert7/remnote-cli)**
|
|
18
|
+
may be a better fit than running a full MCP server.
|
|
9
19
|
|
|
10
20
|
## Demo
|
|
11
21
|
|
|
12
|
-
See
|
|
22
|
+
See AI agent examples in action with RemNote: **[View Demo →](docs/demo.md)**
|
|
13
23
|
|
|
14
|
-
|
|
24
|
+
### Two-Component Architecture
|
|
15
25
|
|
|
16
26
|
This system consists of **two separate components** that work together:
|
|
17
27
|
|
|
18
|
-
1. **[RemNote
|
|
28
|
+
1. **[RemNote Automation Bridge](https://github.com/robert7/remnote-mcp-bridge)** - A RemNote plugin that runs in your browser
|
|
19
29
|
or RemNote desktop app and exposes RemNote API functionality via WebSocket
|
|
20
|
-
2. **RemNote MCP Server** (this
|
|
21
|
-
|
|
30
|
+
2. **RemNote MCP Server** (this project) - A standalone server that connects your AI assistant to the bridge using MCP
|
|
31
|
+
protocol
|
|
22
32
|
|
|
23
33
|
**Both components are required** for AI integration with RemNote.
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
The RemNote MCP Server enables AI assistants like Claude Code to interact directly with your RemNote knowledge base
|
|
28
|
-
through the Model Context Protocol (MCP). This allows you to create notes, search your knowledge base, update existing
|
|
29
|
-
notes, and maintain your daily journal—all through conversational commands.
|
|
30
|
-
|
|
31
|
-
**Architecture:**
|
|
35
|
+
### How It Works
|
|
32
36
|
|
|
33
37
|
```text
|
|
34
38
|
AI agents (HTTP) ↔ MCP HTTP Server :3001 ↔ WebSocket Server :3002 ↔ RemNote Plugin ↔ RemNote
|
|
@@ -36,29 +40,17 @@ AI agents (HTTP) ↔ MCP HTTP Server :3001 ↔ WebSocket Server :3002 ↔ RemNot
|
|
|
36
40
|
|
|
37
41
|
The server acts as a bridge:
|
|
38
42
|
|
|
39
|
-
- Communicates with AI agents via Streamable HTTP transport (MCP protocol)
|
|
43
|
+
- Communicates with AI agents via Streamable HTTP transport (MCP protocol) - supports both local and remote access
|
|
40
44
|
- HTTP server (port 3001) manages MCP sessions for multiple concurrent agents
|
|
41
45
|
- WebSocket server (port 3002) connects to the RemNote browser plugin
|
|
42
46
|
- Translates MCP tool calls into RemNote API actions
|
|
43
47
|
|
|
44
|
-
**
|
|
45
|
-
|
|
46
|
-
This MCP server uses [Streamable HTTP
|
|
47
|
-
transport](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#http-with-sse), a communication
|
|
48
|
-
mechanism for MCP that supports multiple concurrent clients.
|
|
49
|
-
|
|
50
|
-
**Key characteristics:**
|
|
48
|
+
**Multi-Agent Support:** Multiple AI agents can connect simultaneously to the same RemNote knowledge base. Each agent
|
|
49
|
+
gets its own MCP session while sharing the WebSocket bridge.
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
notifications.
|
|
56
|
-
- **Multi-client support**: Multiple AI agents can connect simultaneously, each with their own MCP session.
|
|
57
|
-
- **Session management**: Server tracks sessions via `mcp-session-id` headers and UUID-based request correlation.
|
|
58
|
-
|
|
59
|
-
This architecture enables multiple Claude Code windows to access RemNote concurrently while maintaining process
|
|
60
|
-
isolation and security boundaries. For technical details, see the [MCP
|
|
61
|
-
specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports).
|
|
51
|
+
**Remote Access:** By default, the server binds to localhost (127.0.0.1) for local AI agents. Cloud-based services like
|
|
52
|
+
Claude Cowork require remote access—use tunneling tools like ngrok to expose the HTTP endpoint securely. The WebSocket
|
|
53
|
+
connection always stays local for security. See [Remote Access Guide](docs/guides/remote-access.md) for setup.
|
|
62
54
|
|
|
63
55
|
## Features
|
|
64
56
|
|
|
@@ -69,499 +61,190 @@ specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/tr
|
|
|
69
61
|
- **Journal Entries** - Append timestamped entries to daily documents
|
|
70
62
|
- **Connection Status** - Check server and plugin connection health
|
|
71
63
|
|
|
72
|
-
##
|
|
73
|
-
|
|
74
|
-
**Multiple AI agents can now connect simultaneously!** The server uses Streamable HTTP transport, allowing multiple
|
|
75
|
-
Claude Code sessions (or other MCP clients) to access the same RemNote knowledge base concurrently.
|
|
76
|
-
|
|
77
|
-
### How It Works
|
|
78
|
-
|
|
79
|
-
- One long-running server process on ports 3001 (HTTP) and 3002 (WebSocket)
|
|
80
|
-
- Multiple AI agents connect via HTTP and get independent MCP sessions
|
|
81
|
-
- All sessions share the same WebSocket bridge to RemNote
|
|
82
|
-
- Concurrent requests are handled via UUID-based correlation
|
|
83
|
-
|
|
84
|
-
### Limitations
|
|
85
|
-
|
|
86
|
-
The WebSocket bridge still enforces a **single RemNote plugin connection**. This means:
|
|
64
|
+
## Quick Start
|
|
87
65
|
|
|
88
|
-
|
|
89
|
-
- But only one RemNote app instance can be connected at a time
|
|
90
|
-
- This is a RemNote plugin limitation, not an MCP server limitation
|
|
91
|
-
|
|
92
|
-
## Prerequisites
|
|
93
|
-
|
|
94
|
-
- **Node.js** >= 18.0.0
|
|
95
|
-
- **RemNote app** with [RemNote MCP Bridge plugin](https://github.com/robert7/remnote-mcp-bridge) installed
|
|
96
|
-
- **Claude Code CLI** installed and configured
|
|
97
|
-
|
|
98
|
-
## Installation
|
|
99
|
-
|
|
100
|
-
### 1. Install the MCP Server
|
|
101
|
-
|
|
102
|
-
**From npm (recommended for most users):**
|
|
103
|
-
|
|
104
|
-
See [MCP Server npm Package](https://www.npmjs.com/package/remnote-mcp-server).
|
|
66
|
+
### 1. Install the Server
|
|
105
67
|
|
|
106
68
|
```bash
|
|
107
|
-
# Install globally
|
|
108
69
|
npm install -g remnote-mcp-server
|
|
109
|
-
|
|
110
|
-
# Verify installation
|
|
111
|
-
which remnote-mcp-server
|
|
112
|
-
# Should output: /path/to/node/bin/remnote-mcp-server
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**Uninstalling:**
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Remove global installation
|
|
119
|
-
npm uninstall -g remnote-mcp-server
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
**From source (for development):**
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
git clone https://github.com/robert7/remnote-mcp-server.git
|
|
126
|
-
cd remnote-mcp-server
|
|
127
|
-
npm install
|
|
128
70
|
```
|
|
129
71
|
|
|
130
|
-
### 2. Install RemNote
|
|
72
|
+
### 2. Install the RemNote Plugin
|
|
131
73
|
|
|
132
|
-
Install the [RemNote
|
|
133
|
-
|
|
134
|
-
1
|
|
135
|
-
2. Navigate to plugin installation (see plugin repository for instructions)
|
|
74
|
+
Install the [RemNote Automation Bridge plugin](https://github.com/robert7/remnote-mcp-bridge) in your RemNote app. Currently
|
|
75
|
+
available from GitHub; registration in the RemNote marketplace is pending approval. Configure the plugin to connect
|
|
76
|
+
to `ws://127.0.0.1:3002`.
|
|
136
77
|
|
|
137
78
|
### 3. Start the Server
|
|
138
79
|
|
|
139
|
-
**IMPORTANT:** You must start the server before using it with Claude Code.
|
|
140
|
-
|
|
141
80
|
```bash
|
|
142
|
-
# Start with default settings
|
|
143
81
|
remnote-mcp-server
|
|
144
|
-
|
|
145
|
-
# With custom ports
|
|
146
|
-
remnote-mcp-server --ws-port 4002 --http-port 4001
|
|
147
|
-
|
|
148
|
-
# With verbose logging
|
|
149
|
-
remnote-mcp-server --verbose
|
|
150
|
-
|
|
151
|
-
# With file logging
|
|
152
|
-
remnote-mcp-server --log-file /tmp/remnote-mcp.log --log-level-file debug
|
|
153
|
-
|
|
154
|
-
# OR development mode (with hot reload)
|
|
155
|
-
npm run dev
|
|
156
|
-
# you can also pass CLI options after `--`, e.g.
|
|
157
|
-
npm run dev -- -h
|
|
158
82
|
```
|
|
159
83
|
|
|
160
|
-
**CLI Options:**
|
|
161
|
-
|
|
162
|
-
Server Configuration:
|
|
163
|
-
- `--ws-port <number>` - WebSocket port (default: 3002, env: REMNOTE_WS_PORT)
|
|
164
|
-
- `--http-port <number>` - HTTP MCP port (default: 3001, env: REMNOTE_HTTP_PORT)
|
|
165
|
-
|
|
166
|
-
Logging Configuration:
|
|
167
|
-
- `--log-level <level>` - Console log level: debug, info, warn, error (default: info)
|
|
168
|
-
- `--log-level-file <level>` - File log level (default: same as --log-level)
|
|
169
|
-
- `--verbose` - Shorthand for --log-level debug
|
|
170
|
-
- `--log-file <path>` - Log to file (default: console only)
|
|
171
|
-
- `--request-log <path>` - Log all WebSocket requests to file (JSON Lines)
|
|
172
|
-
- `--response-log <path>` - Log all WebSocket responses to file (JSON Lines)
|
|
173
|
-
|
|
174
|
-
Information:
|
|
175
|
-
- `-h, --help` - Display help message
|
|
176
|
-
- `-v, --version` - Display version number
|
|
177
|
-
|
|
178
84
|
Expected output:
|
|
179
|
-
```
|
|
180
|
-
RemNote MCP Server v0.2.1 listening { wsPort: 3002, httpPort: 3001 }
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
**Note on Logging:**
|
|
184
|
-
- Development environment (with `npm install`): Pretty-formatted colored logs
|
|
185
|
-
- Global installation (via `npm link`): JSON logs to stderr (pino-pretty not included)
|
|
186
|
-
- Both modes are fully functional - formatting is the only difference
|
|
187
|
-
|
|
188
|
-
Keep this terminal running. The server must be running for Claude Code to connect.
|
|
189
|
-
|
|
190
|
-
## Configuration of AI Agents
|
|
191
|
-
|
|
192
|
-
### Claude Code CLI
|
|
193
|
-
|
|
194
|
-
Use the `claude mcp` CLI commands to add, test, and remove the MCP server.
|
|
195
|
-
|
|
196
|
-
**Add the server:**
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
# goto your project directory
|
|
200
|
-
cd /Users/username/Projects/sample-project
|
|
201
|
-
claude mcp add remnote --transport http http://localhost:3001/mcp
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
Example output:
|
|
205
|
-
|
|
206
|
-
```text
|
|
207
|
-
Added HTTP MCP server remnote with URL: http://localhost:3001/mcp to local config
|
|
208
|
-
File modified: /Users/username/.claude.json [project: /Users/username/Projects/sample-project]
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**Verify connection:**
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
claude mcp list
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
Example output:
|
|
218
|
-
|
|
219
|
-
```text
|
|
220
|
-
remnote: http://localhost:3001/mcp (HTTP) - ✓ Connected
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
As alternative you can use `/mcp` command in any Claude Code session to check the connection health.
|
|
224
|
-
|
|
225
|
-
**Using the server:**
|
|
226
|
-
|
|
227
|
-
Once configured, Claude Code automatically loads RemNote tools in your sessions. See the [Example Usage](#example-usage)
|
|
228
|
-
section below for conversational commands.
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
# In any Claude Code session
|
|
232
|
-
claude
|
|
233
|
-
|
|
234
|
-
prompt:
|
|
235
|
-
show remnote note titles related do AI assisted coding
|
|
236
|
-
...
|
|
237
|
-
remnote - remnote_search (MCP)(query: "AI assisted coding", limit: 20, includeContent: false)
|
|
238
|
-
...
|
|
239
|
-
Found 20 notes related to "AI assisted coding". The main results include:
|
|
240
|
-
|
|
241
|
-
Primary note:
|
|
242
|
-
- AI assisted coding (remId: qtVwh5XBQbJM2HfSp)
|
|
243
|
-
|
|
244
|
-
Related tools/platforms:
|
|
245
|
-
- Claude Code
|
|
246
|
-
- Gemini CLI
|
|
247
|
-
...
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
**Remove the server:**
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
claude mcp remove remnote
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
Example output:
|
|
257
85
|
|
|
258
86
|
```text
|
|
259
|
-
|
|
260
|
-
Config: /Users/username/.claude.json
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Claude Code CLI (manual configuration)
|
|
264
|
-
|
|
265
|
-
If you prefer to manually configure the MCP server in Claude Code CLI instead of using `claude mcp add`, you can
|
|
266
|
-
directly edit your `~/.claude.json` file.
|
|
267
|
-
|
|
268
|
-
MCP servers are configured in `~/.claude.json` under the `mcpServers` key within project-specific sections.
|
|
269
|
-
|
|
270
|
-
**Add to your `~/.claude.json`:**
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"projects": {
|
|
275
|
-
"/Users/username": {
|
|
276
|
-
...
|
|
277
|
-
"mcpServers": {
|
|
278
|
-
"remnote": {
|
|
279
|
-
"type": "http",
|
|
280
|
-
"url": "http://localhost:3001/mcp"
|
|
281
|
-
}
|
|
282
|
-
...
|
|
283
|
-
}
|
|
87
|
+
RemNote MCP Server v0.2.1 listening { wsPort: 3002, httpPort: 3001 }
|
|
284
88
|
```
|
|
285
89
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
## Verification
|
|
289
|
-
|
|
290
|
-
### Check Server is Running
|
|
291
|
-
|
|
292
|
-
Verify both ports are listening:
|
|
293
|
-
|
|
294
|
-
```bash
|
|
295
|
-
# Check HTTP port (MCP)
|
|
296
|
-
lsof -i :3001
|
|
90
|
+
Keep this terminal running.
|
|
297
91
|
|
|
298
|
-
|
|
299
|
-
lsof -i :3002
|
|
300
|
-
```
|
|
92
|
+
### 4. Configure Your AI Client
|
|
301
93
|
|
|
302
|
-
|
|
94
|
+
- [Configuration Guide](docs/guides/configuration.md) - Overview and generic setup
|
|
95
|
+
- [ChatGPT](docs/guides/configuration-chatgpt.md) - ChatGPT Apps configuration
|
|
96
|
+
- [Claude Cowork](docs/guides/configuration-claude-cowork.md) - Cloud-based (requires remote access setup)
|
|
97
|
+
- [Claude Code CLI](docs/guides/configuration-claude-code-CLI.md) - Detailed Claude Code CLI configuration
|
|
98
|
+
- [Accomplish](docs/guides/configuration-accomplish.md) - Accomplish (Openwork) configuration
|
|
303
99
|
|
|
304
|
-
|
|
100
|
+
## Documentation
|
|
305
101
|
|
|
306
|
-
|
|
102
|
+
### Getting Started
|
|
307
103
|
|
|
308
|
-
- **
|
|
309
|
-
- **
|
|
310
|
-
-
|
|
104
|
+
- **[Installation Guide](docs/guides/installation.md)** - Complete installation instructions
|
|
105
|
+
- **[Configuration Guide](docs/guides/configuration.md)** - Configure Claude Code CLI, Accomplish, and other clients
|
|
106
|
+
- **[ChatGPT Configuration Guide](docs/guides/configuration-chatgpt.md)** - Set up ChatGPT Apps with your MCP server
|
|
107
|
+
- **[Demo & Screenshots](docs/demo.md)** - See the server in action with different AI clients
|
|
311
108
|
|
|
312
|
-
###
|
|
109
|
+
### Usage
|
|
313
110
|
|
|
314
|
-
|
|
111
|
+
- **[CLI Options Reference](docs/guides/cli-options.md)** - Command-line options and environment variables
|
|
112
|
+
- **[MCP Tools Reference](docs/guides/tools-reference.md)** - Detailed reference for all 6 RemNote tools
|
|
113
|
+
- **[Remote Access Setup](docs/guides/remote-access.md)** - Expose server for Claude Cowork (ngrok, etc.)
|
|
315
114
|
|
|
316
|
-
|
|
317
|
-
Use remnote_status to check the connection
|
|
318
|
-
```
|
|
115
|
+
### Help & Advanced
|
|
319
116
|
|
|
320
|
-
|
|
117
|
+
- **[Troubleshooting](docs/guides/troubleshooting.md)** - Common issues and solutions
|
|
118
|
+
- **[Architecture](docs/architecture.md)** - Design rationale and technical architecture
|
|
321
119
|
|
|
322
|
-
|
|
323
|
-
⏺ remnote - remnote_status (MCP)
|
|
324
|
-
⎿ {
|
|
325
|
-
"connected": true,
|
|
326
|
-
"pluginVersion": "0.3.2"
|
|
327
|
-
}
|
|
328
|
-
```
|
|
120
|
+
### Development
|
|
329
121
|
|
|
330
|
-
|
|
122
|
+
- **[Development Setup](docs/guides/development-setup.md)** - Contributing guide for developers
|
|
123
|
+
- **[Integration Testing](docs/guides/integration-testing.md)** - End-to-end validation against a live RemNote instance
|
|
124
|
+
- **[Publishing Guide](docs/npm-publishing.md)** - npm publishing process (maintainers only)
|
|
331
125
|
|
|
332
|
-
|
|
126
|
+
## Available MCP Tools
|
|
333
127
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
128
|
+
| Tool | Description |
|
|
129
|
+
|---------------------------|------------------------------------------------|
|
|
130
|
+
| `remnote_create_note` | Create new notes with optional parent and tags |
|
|
131
|
+
| `remnote_search` | Search knowledge base with full-text search |
|
|
132
|
+
| `remnote_read_note` | Read note by ID with configurable depth |
|
|
133
|
+
| `remnote_update_note` | Update title, append content, or modify tags |
|
|
134
|
+
| `remnote_append_journal` | Append to today's daily document |
|
|
135
|
+
| `remnote_status` | Check connection status and statistics |
|
|
337
136
|
|
|
338
|
-
|
|
137
|
+
See the [Tools Reference](docs/guides/tools-reference.md) for detailed usage and examples.
|
|
339
138
|
|
|
340
|
-
##
|
|
139
|
+
## Supported AI Clients
|
|
341
140
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
| `remnote_update_note` | Update title, append content, or modify tags | `remId`, `title`, `appendContent`, `addTags`, `removeTags` |
|
|
348
|
-
| `remnote_append_journal` | Append to today's daily document | `content`, `timestamp` |
|
|
349
|
-
| `remnote_status` | Check connection status and statistics | _(no parameters)_ |
|
|
141
|
+
- **[Claude Code CLI](https://claude.com/claude-code)** - Local terminal-based agent
|
|
142
|
+
- **[Claude Cowork](https://claude.com/blog/cowork-research-preview)** - Cloud-based workspace (requires [remote
|
|
143
|
+
access](docs/guides/remote-access.md))
|
|
144
|
+
- **[Accomplish](https://github.com/accomplish-ai/accomplish)** - Task-based MCP client (formerly Openwork)
|
|
145
|
+
- **Any MCP client** supporting Streamable HTTP transport
|
|
350
146
|
|
|
351
147
|
## Example Usage
|
|
352
148
|
|
|
353
|
-
### Conversational Commands
|
|
354
|
-
|
|
355
|
-
Claude Code will automatically select the appropriate tool based on your natural language commands:
|
|
356
|
-
|
|
357
149
|
**Create notes:**
|
|
358
|
-
|
|
150
|
+
|
|
151
|
+
```text
|
|
359
152
|
Create a note about "Project Ideas" with content:
|
|
360
153
|
- AI-powered note taking
|
|
361
154
|
- Personal knowledge management
|
|
362
155
|
```
|
|
363
156
|
|
|
364
157
|
**Search:**
|
|
365
|
-
```
|
|
366
|
-
Search my RemNote for notes about "machine learning"
|
|
367
|
-
```
|
|
368
158
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
Read the note with ID abc123
|
|
159
|
+
```text
|
|
160
|
+
Search my RemNote for notes about "machine learning"
|
|
372
161
|
```
|
|
373
162
|
|
|
374
163
|
**Update notes:**
|
|
375
|
-
|
|
164
|
+
|
|
165
|
+
```text
|
|
376
166
|
Add a tag "important" to note abc123
|
|
377
167
|
```
|
|
378
168
|
|
|
379
169
|
**Journal entries:**
|
|
380
|
-
```
|
|
381
|
-
Add to my journal: "Completed the RemNote MCP integration"
|
|
382
|
-
```
|
|
383
170
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
Check if RemNote is connected
|
|
171
|
+
```text
|
|
172
|
+
Add to my journal: "Completed the RemNote MCP integration"
|
|
387
173
|
```
|
|
388
174
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
### Optional Development Dependencies
|
|
392
|
-
|
|
393
|
-
- **pino-pretty** - Provides formatted console output in development
|
|
394
|
-
- Automatically used when stdout is a TTY (interactive terminal)
|
|
395
|
-
- Gracefully falls back to JSON logging if unavailable (e.g., global installations)
|
|
396
|
-
- To enable in development: `npm install` (installs devDependencies)
|
|
175
|
+
See the [Tools Reference](docs/guides/tools-reference.md) for more examples.
|
|
397
176
|
|
|
398
177
|
## Configuration
|
|
399
178
|
|
|
400
179
|
### Environment Variables
|
|
401
180
|
|
|
402
181
|
- `REMNOTE_HTTP_PORT` - HTTP MCP server port (default: 3001)
|
|
182
|
+
- `REMNOTE_HTTP_HOST` - HTTP server bind address (default: 127.0.0.1)
|
|
403
183
|
- `REMNOTE_WS_PORT` - WebSocket server port (default: 3002)
|
|
404
184
|
|
|
405
|
-
|
|
185
|
+
### Custom Ports
|
|
406
186
|
|
|
407
187
|
```bash
|
|
408
|
-
|
|
409
|
-
export REMNOTE_HTTP_PORT=3003
|
|
410
|
-
export REMNOTE_WS_PORT=3004
|
|
411
|
-
npm start
|
|
412
|
-
# you can pass CLI options after `--`, e.g.
|
|
413
|
-
npm start -- -h
|
|
188
|
+
remnote-mcp-server --http-port 3003 --ws-port 3004
|
|
414
189
|
```
|
|
415
190
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
**Note:** If you change the WebSocket port, you must also update the WebSocket URL in the RemNote MCP Bridge plugin
|
|
419
|
-
settings.
|
|
191
|
+
After changing ports, update your MCP client configuration and RemNote plugin settings.
|
|
420
192
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
Configure in the plugin control panel:
|
|
424
|
-
|
|
425
|
-
- **WebSocket URL:** `ws://127.0.0.1:3002` (or your custom port)
|
|
426
|
-
- **Auto-reconnect:** Enabled (recommended)
|
|
193
|
+
See [CLI Options Reference](docs/guides/cli-options.md) for all options.
|
|
427
194
|
|
|
428
195
|
## Troubleshooting
|
|
429
196
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
1. **Verify the server is running:**
|
|
433
|
-
```bash
|
|
434
|
-
lsof -i :3001
|
|
435
|
-
lsof -i :3002
|
|
436
|
-
```
|
|
437
|
-
Both ports should show active listeners.
|
|
438
|
-
|
|
439
|
-
2. **Check server output:**
|
|
440
|
-
- You should see: `[HTTP Server] Listening on port 3001`
|
|
441
|
-
- And: `[WebSocket Server] Listening on port 3002`
|
|
442
|
-
3. **If server fails to start:**
|
|
443
|
-
- Check if ports are already in use (see "Port Already in Use" below)
|
|
444
|
-
- Verify installation: `which remnote-mcp-server`
|
|
445
|
-
- Check server logs for errors
|
|
446
|
-
|
|
447
|
-
### Port Already in Use
|
|
197
|
+
**Server won't start:**
|
|
448
198
|
|
|
449
|
-
|
|
199
|
+
- Check ports aren't in use: `lsof -i :3001` and `lsof -i :3002`
|
|
200
|
+
- Verify installation: `which remnote-mcp-server`
|
|
450
201
|
|
|
451
|
-
|
|
452
|
-
# Find what's using the ports
|
|
453
|
-
lsof -i :3001
|
|
454
|
-
lsof -i :3002
|
|
455
|
-
|
|
456
|
-
# Kill the process if needed
|
|
457
|
-
kill -9 <PID>
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
Alternatively, configure different ports using environment variables (see Configuration section).
|
|
461
|
-
|
|
462
|
-
### Plugin Won't Connect
|
|
202
|
+
**Plugin won't connect:**
|
|
463
203
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
- Auto-reconnect: Enabled
|
|
467
|
-
2. **Check plugin console (RemNote Developer Tools):**
|
|
468
|
-
```
|
|
469
|
-
Cmd+Option+I (macOS)
|
|
470
|
-
Ctrl+Shift+I (Windows/Linux)
|
|
471
|
-
```
|
|
204
|
+
- Verify plugin settings: WebSocket URL `ws://127.0.0.1:3002`
|
|
205
|
+
- Check server is running: `lsof -i :3002`
|
|
472
206
|
|
|
473
|
-
|
|
474
|
-
4. **Check server logs** for connection messages
|
|
207
|
+
**Tools not appearing:**
|
|
475
208
|
|
|
476
|
-
|
|
209
|
+
- Verify configuration: `claude mcp list`
|
|
210
|
+
- Restart Claude Code completely
|
|
477
211
|
|
|
478
|
-
|
|
479
|
-
```bash
|
|
480
|
-
cat ~/.claude.json | grep -A 10 mcpServers
|
|
481
|
-
```
|
|
212
|
+
See the [Troubleshooting Guide](docs/guides/troubleshooting.md) for detailed solutions.
|
|
482
213
|
|
|
483
|
-
|
|
484
|
-
3. **Restart Claude Code completely** (not just reload)
|
|
485
|
-
4. **Check MCP logs:**
|
|
486
|
-
```bash
|
|
487
|
-
tail -f ~/.claude/debug/mcp-*.log
|
|
488
|
-
```
|
|
214
|
+
## Contributing & Development
|
|
489
215
|
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
**Common issues:**
|
|
493
|
-
|
|
494
|
-
❌ **Wrong transport type:**
|
|
495
|
-
```json
|
|
496
|
-
"type": "stdio" // OLD - doesn't work anymore
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
✅ **Correct transport type:**
|
|
500
|
-
```json
|
|
501
|
-
"type": "http" // NEW - required
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
❌ **Using command instead of URL:**
|
|
505
|
-
```json
|
|
506
|
-
{
|
|
507
|
-
"type": "stdio",
|
|
508
|
-
"command": "remnote-mcp-server" // OLD
|
|
509
|
-
}
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
✅ **Correct configuration:**
|
|
513
|
-
```json
|
|
514
|
-
{
|
|
515
|
-
"type": "http",
|
|
516
|
-
"url": "http://127.0.0.1:3001/mcp" // NEW
|
|
517
|
-
}
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
## Development
|
|
521
|
-
|
|
522
|
-
### Setup
|
|
216
|
+
**Development setup:**
|
|
523
217
|
|
|
524
218
|
```bash
|
|
219
|
+
git clone https://github.com/robert7/remnote-mcp-server.git
|
|
220
|
+
cd remnote-mcp-server
|
|
525
221
|
npm install
|
|
526
222
|
npm run build
|
|
527
|
-
npm link
|
|
223
|
+
npm link
|
|
528
224
|
```
|
|
529
225
|
|
|
530
|
-
|
|
226
|
+
**Development workflow:**
|
|
531
227
|
|
|
532
228
|
```bash
|
|
533
229
|
npm run dev # Watch mode with hot reload
|
|
534
|
-
npm
|
|
535
|
-
|
|
230
|
+
npm test # Run test suite
|
|
231
|
+
./code-quality.sh # Run all quality checks
|
|
536
232
|
```
|
|
537
233
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
```bash
|
|
541
|
-
npm test # Run all tests
|
|
542
|
-
npm run test:watch # Watch mode
|
|
543
|
-
npm run test:coverage # With coverage report
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
### Code Quality
|
|
547
|
-
|
|
548
|
-
```bash
|
|
549
|
-
./code-quality.sh # Run all checks
|
|
550
|
-
npm run lint # ESLint only
|
|
551
|
-
npm run format # Format code
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
### Development Documentation
|
|
555
|
-
|
|
556
|
-
- **[docs/architecture.md](./docs/architecture.md)** - Architecture and design rationale
|
|
557
|
-
- **[AGENTS.md](./AGENTS.md)** - AI agent and developer guidance
|
|
558
|
-
- **[CHANGELOG.md](./CHANGELOG.md)** - Version history
|
|
234
|
+
See the [Development Setup Guide](docs/guides/development-setup.md) for complete instructions.
|
|
559
235
|
|
|
560
236
|
## Related Projects
|
|
561
237
|
|
|
562
|
-
- [RemNote
|
|
238
|
+
- [RemNote Automation Bridge](https://github.com/robert7/remnote-mcp-bridge) - Browser plugin for RemNote integration
|
|
563
239
|
- [Model Context Protocol](https://modelcontextprotocol.io/) - Open protocol for AI-application integration
|
|
564
240
|
|
|
565
241
|
## License
|
|
566
242
|
|
|
567
243
|
MIT
|
|
244
|
+
|
|
245
|
+
## Links
|
|
246
|
+
|
|
247
|
+
- [Documentation](docs/guides/) - Complete documentation
|
|
248
|
+
- [GitHub Issues](https://github.com/robert7/remnote-mcp-server/issues) - Bug reports and feature requests
|
|
249
|
+
- [npm Package](https://www.npmjs.com/package/remnote-mcp-server) - Official npm package
|
|
250
|
+
- [CHANGELOG](CHANGELOG.md) - Version history and roadmap
|