Markdrop MCP Server
by james-julius
README.md
```
___ ___ _ _
| \/ | | | | |
| . . | __ _ _ __ __| |_ __ | | ___ _ __
| |\/| |/ _` | '__/ _` | '_ \| |/ _ \| '_ \
| | | | (_| | | | (_| | | | | | (_) | |_) |
\_| |_/\__,_|_| \__,_|_| |_|_|\___/| .__/
| |
__ __ ____ ____ |_|
| \/ |/ ___| _ \
| |\/| | | | |_) |
| | | | |___| __/
|_| |_|\____|_|
```
**Markdown Knowledge Workspace for Agents**
> Give Claude Code instant access to shared documentation. Auto-sync markdown files, AI-tag them intelligently, and retrieve them contextually during development.
---
## ๐ Table of Contents
- [๐ฏ What is This?](#-what-is-this)
- [๐ Installation](#-installation)
- [๐ ๏ธ Available Tools](#๏ธ-available-tools)
- [๐ฌ How to Use](#-how-to-use)
- [๐ The Workflow](#-the-workflow)
- [๐ง Troubleshooting](#-troubleshooting)
- [๐๏ธ Architecture](#๏ธ-architecture)
- [๐งช Development](#-development)
---
## ๐ฏ What is This?
This MCP server connects Claude Desktop to your Markdrop knowledge base. Combined with the Claude Code hook (which auto-captures markdown files), you get a complete RAG-powered development workflow:
- **๐ Hook**: Auto-captures markdown docs โ Markdrop (with AI tagging)
- **๐ MCP**: Claude retrieves relevant docs when needed โ Better context
- **๐ค Result**: Your own docs become searchable knowledge for Claude
## ๐ Installation
The MCP server is included in your Markdrop installation at `markdrop-mcp-server/`. Dependencies are already installed.
### 1. Find Your Markdrop Path
```bash
cd /path/to/your/markdrop
pwd # Copy this path
```
### 2. Get Your API Key
Create an API key in Markdrop: **Dashboard โ API**
### 3. Configure Claude Desktop
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"markdrop": {
"command": "node",
"args": ["/absolute/path/to/your/markdrop/markdrop-mcp-server/index.js"],
"env": {
"MARKDROP_API_URL": "http://localhost:3000",
"MARKDROP_API_KEY": "md_xxxxxxxxxxxx",
"MARKDROP_PROJECT_ID": "optional-project-id"
}
}
}
}
```
**๐ก Pro Tips:**
- Use the **absolute path** to your `index.js` file
- Set `MARKDROP_PROJECT_ID` to auto-filter searches to a specific project
- Run multiple MCP instances for multi-project workflows
### 4. Restart Claude Desktop
Fully quit and restart Claude Desktop. You'll see Markdrop tools appear! โจ
## ๐ ๏ธ Available Tools
### ๐ `search_pastes`
Search through your knowledge base by content, title, tags, or topics.
**Parameters:**
- `query` (required) - Search query to match against content and title
- `tags` (optional) - Array of tags to filter by (e.g., `["architecture", "api"]`)
- `category` (optional) - Filter by category
- `documentType` (optional) - Filter by type (e.g., `"architecture"`, `"decision-record"`)
- `limit` (optional) - Max results (default: 10)
**Try asking:**
> "Search my pastes for API architecture documentation"
---
### ๐ `get_paste`
Retrieve full content and metadata for a specific paste.
**Parameters:**
- `pasteId` (required) - The ID of the paste to retrieve
**Try asking:**
> "Get the full content of paste abc123"
---
### ๐ท๏ธ `list_tags`
List all available tags with counts. Great for discovering what's documented.
**Parameters:**
- `category` (optional) - Filter tags by category
- `minCount` (optional) - Minimum pastes per tag (default: 1)
**Try asking:**
> "What tags do I have in my documentation?"
---
### โฐ `get_recent_pastes`
Get recently created or modified pastes.
**Parameters:**
- `limit` (optional) - Max results (default: 10)
- `projectId` (optional) - Filter by project
- `documentType` (optional) - Filter by document type
**Try asking:**
> "Show me my recent documentation"
## ๐ฌ How to Use
Once configured, just ask Claude naturally:
- ๐ญ *"Search my pastes for authentication flow documentation"*
- ๐ *"What architecture docs do I have?"*
- ๐ *"Show me recent API documentation I've written"*
- ๐๏ธ *"Get the paste about database migrations"*
Claude will automatically use these tools to find relevant context from your knowledge base.
## ๐ The Workflow
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1. Create docs with Claude Code โ
โ โ (Hook auto-syncs with AI tagging) โ
โ 2. Stored in Markdrop โ
โ โ (Searchable, organized, tagged) โ
โ 3. Ask Claude questions โ
โ โ (MCP retrieves relevant docs) โ
โ 4. Claude responds with YOUR context โ
โ โ (Better answers, project-specific) โ
โ 5. Repeat โ Build knowledge base over time โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
This creates a **feedback loop** where your development docs become searchable context for future work. The more you document, the smarter Claude gets about your project!
## ๐ง Troubleshooting
### ๐ค MCP server not showing in Claude Desktop?
- โ
Check config file: `~/Library/Application Support/Claude/claude_desktop_config.json`
- โ
Verify absolute path to `index.js` is correct
- โ
Fully quit and restart Claude Desktop
### ๐ซ Authentication errors?
- โ
Verify `MARKDROP_API_KEY` is correct (Dashboard โ API)
- โ
Check Markdrop is running at the specified URL
- โ
Test manually:
```bash
curl -H "Authorization: Bearer md_xxxxxxxxxxxx" \
http://localhost:3000/api/pastes/search?query=test
```
### ๐ No results when searching?
- โ
Make sure you've created some pastes first
- โ
Verify they have tags (use Claude Code hook for auto-tagging)
- โ
Try a broader search query
- โ
Check your `MARKDROP_PROJECT_ID` isn't filtering everything out
### ๐ Need an API key?
Create one in Markdrop: **Dashboard โ API** โ Create New Key
---
## ๐๏ธ Architecture
```
โโโโโโโโโโโโโโโโโโโ
โ Claude Desktop โ
โโโโโโโโโโฌโโโโโโโโโ
โ stdio (MCP Protocol)
โ
โโโโโโโโโโโโโโโโโโโ
โ MCP Server โ (@modelcontextprotocol/sdk)
โโโโโโโโโโฌโโโโโโโโโ
โ HTTP/Bearer Auth
โ
โโโโโโโโโโโโโโโโโโโ
โ Markdrop API โ (REST API)
โโโโโโโโโโโโโโโโโโโ
```
**Tech Stack:**
- `@modelcontextprotocol/sdk` - Standard MCP protocol implementation
- Stdio Transport - Communicates with Claude via stdin/stdout
- Markdrop REST API - Searches and retrieves pastes
- Bearer Token Auth - Secure API authentication
---
## ๐งช Development
Test the server locally:
```bash
# Set environment variables
export MARKDROP_API_URL="http://localhost:3000"
export MARKDROP_API_KEY="md_xxxxxxxxxxxx"
# Run server (expects JSON input via stdin)
node index.js
# Or with inspector for debugging
node --inspect index.js
```
**Note:** The server logs to stderr, so debug output won't interfere with MCP communication.
---
## ๐ License
MIT
---
<div align="center">
**Made with โค๏ธ for the Claude Code community**
[Markdrop](https://github.com/yourusername/markdrop) ยท [Report Bug](https://github.com/yourusername/markdrop/issues) ยท [Request Feature](https://github.com/yourusername/markdrop/issues)
</div>
TDQS
A3.9/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a distinct purpose: searching, retrieving by ID, listing tags, and listing recent pastes. There is no overlap or ambiguity between them.
Naming Consistency5/5
All tool names follow a consistent snake_case verb_noun pattern (e.g., search_pastes, get_paste, list_tags, get_recent_pastes). The naming is predictable and coherent.
Tool Count5/5
With 4 tools, the server is well-scoped and focused on read/search operations. The count is within the ideal range and each tool contributes to the server's purpose.
Completeness2/5
The server only provides read and search operations; there are no create, update, or delete tools. This is a significant gap for a paste management service, as agents cannot write or manage pastes.
Maintenance
ActivityInactive
ResponsivenessNo issues