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., "@Knowledge Base MCP Serversearch my notes for 'marketing strategy'"
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.
🧠 Knowledge Base MCP Server
A zero-dependency Model Context Protocol (MCP) server that gives Claude a persistent personal knowledge base — built entirely with Node.js built-ins.
What is MCP?
The Model Context Protocol is an open standard (by Anthropic) that lets AI assistants talk to external tools and data sources in a structured, secure way. Think of it as a universal plugin system for LLMs.
┌─────────────────┐ JSON-RPC 2.0 ┌──────────────────────┐
│ Claude Desktop │ ◄────── stdio ──────────► │ knowledge-mcp │
│ (MCP host) │ │ (this server) │
└─────────────────┘ └──────────────────────┘
│ │
│ calls tools like kb_search(query="python") │
│ reads resources like kb://notes │
└────────────────────────────────────────────────┘Every message is a JSON-RPC 2.0 object sent over stdin/stdout.
Architecture
server.js
├── Persistence layer loadDB / saveDB (JSON file in ~/)
├── Business logic noteAdd / noteSearch / noteList / noteDelete / noteStats
├── MCP dispatch table dispatch(method, params, db) → result | error
└── stdio transport readline loop → JSON-RPC framingThe MCP Handshake
client → server: initialize { protocolVersion, clientInfo }
server → client: result { protocolVersion, capabilities, serverInfo }
client → server: notifications/initialized (no response expected)After this, the client can call any method at any time.
Tools
Tool | Description |
| Store a note with title, content, and optional tags |
| Full-text + tag search (AND logic for multiple tags) |
| List all notes, optionally filtered by tag |
| Delete a note by ID |
| Summary stats: note count, tag index, newest/oldest |
Resources
URI | Description |
| Complete JSON dump of all notes |
| Tag → note-list index |
Installation
Prerequisites
Node.js 18+ (no npm packages required)
Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"knowledge-base": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/knowledge-mcp/server.js"]
}
}
}Restart Claude Desktop. You'll see a 🔌 icon confirming the server connected.
Add to Claude Code (CLI)
claude mcp add knowledge-base node /absolute/path/to/server.jsRunning Manually
# Start the server (stays alive, reads from stdin)
node server.js
# Run unit tests
node server.js --test
# Run integration tests (spawns a real server subprocess)
node integration-test.jsTry it interactively
node server.jsThen paste (hit Enter after each line):
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}
{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"kb_add","arguments":{"title":"Hello","content":"My first note","tags":["demo"]}}}
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"kb_search","arguments":{"query":"first"}}}Key Design Decisions
Zero dependencies — Ships as a single file. Works wherever Node ≥ 18 exists.
File persistence — Notes survive restarts. DB lives at
~/.knowledge-mcp-db.json.Strict JSON-RPC — Correct error codes (-32601 method-not-found, -32603 internal, -32700 parse-error) so MCP hosts can handle errors gracefully.
Notifications handled —
notifications/initializedis a one-way message; the server silently ignores it rather than sending a bogus response.isError flag — Tool errors use
{ isError: true }per spec, not JSON-RPC errors, so Claude sees the error text rather than a protocol failure.
Data Format
{
"id": "1",
"title": "MCP Guide",
"content": "Model Context Protocol connects AI to tools.",
"tags": ["mcp", "ai"],
"createdAt": "2026-03-09T05:00:00.000Z",
"updatedAt": "2026-03-09T05:00:00.000Z"
}Extending This Server
To add a new tool:
Add its logic as a plain function (e.g.
noteUpdate)Add a descriptor object to the
TOOLSarrayAdd a
case 'kb_update':to thetools/callswitch block
That's it — no framework, no codegen, no magic.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.