geekmonks-mcp-bookmarks
by SRVivek1
README.md
# geekmonks-mcp-bookmarks
Companion lab for the GeekMonks MCP series: a local **bookmarks** MCP server over **stdio** (TypeScript).
- Series hub: [MCP Without the Hype](https://blog.geekmonks.com/posts/ai-ml/mcp-without-the-hype/)
- Checkpoint tags: `part-3` (tools only), `part-4` (tools + resource `bookmarks://list` + prompt `summarize-bookmarks`)
**Host note:** tools show up most reliably in Cursor. Verify **resources** and **prompts** with MCP Inspector even when the host UI is limited.
## Requirements
- Node.js 20+
## Setup
```bash
git clone https://github.com/SRVivek1/geekmonks-mcp-bookmarks.git
cd geekmonks-mcp-bookmarks
git checkout part-3 # or part-4
npm install
npm run build
```
Optional: set `BOOKMARKS_PATH` to a JSON file path. Default store: `./data/bookmarks.json` (created on first use; gitignored).
## MCP Inspector (prove tools without Cursor)
From the repo root after `npm run build`:
```bash
npx @modelcontextprotocol/inspector node dist/index.js
```
Connect, open **Tools**, try `list_bookmarks` / `add_bookmark` / `search_bookmarks`.
On tag `part-4`, also check **Resources** (`bookmarks://list`) and **Prompts** (`summarize-bookmarks`).
## Cursor (`mcp.json`)
Project config example (adjust the absolute path):
```json
{
"mcpServers": {
"bookmarks": {
"type": "stdio",
"command": "node",
"args": ["/ABS/PATH/TO/geekmonks-mcp-bookmarks/dist/index.js"]
}
}
}
```
Reload MCP / start a new Agent chat. Approve tool calls when prompted.
## Logging rule
Never write protocol noise to **stdout**. This server logs only with `console.error` (stderr).
## License
MIT
TDQS
A3.8/5.0
Scored across 3 tools
Disambiguation5/5
Each tool has a distinct purpose: listing, adding, and searching bookmarks. There is no overlap or ambiguity between them.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern: list_bookmarks, add_bookmark, search_bookmarks. The pattern is clear and predictable.
Tool Count3/5
With only 3 tools, the server is minimal but covers the basic operations for a bookmark store. It feels slightly thin but is reasonable for a simple local JSON store.
Completeness3/5
The server provides list, add, and search, but lacks update and delete operations, which are common for bookmark management. This is a notable gap but agents can work around it by not needing those operations.
Maintenance
ActivityMaintained
ResponsivenessNo issues