Skip to main content
Glama
james-julius

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