npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

content-manager-mcp

v1.0.2

Published

A TypeScript MCP Server for content management, including markdown processing, document generation, and note searching

Downloads

11

Readme

Content Manager MCP Server

A comprehensive TypeScript-based Model Context Protocol (MCP) server for content management, including Markdown processing, document generation, and intelligent note searching.

🚀 Features

📝 Markdown Processing

  • Render Markdown to HTML with table of contents generation
  • Extract headings and create structured navigation
  • Parse frontmatter from Markdown files
  • HTML sanitization for safe content processing

🔍 Intelligent Search

  • Fuzzy search through notes using Fuse.js
  • Exact text matching with context highlighting
  • Tag-based filtering using frontmatter metadata
  • Date range queries for time-based content discovery

📊 Content Analysis

  • Directory statistics showing file counts, sizes, and types
  • File discovery with customizable extension filtering
  • Content preview with metadata extraction

🛠 Tech Stack

  • TypeScript - Type-safe development with latest ES2023 features
  • Zod - Runtime schema validation and type inference
  • tsup - Fast TypeScript bundler with ESM support
  • pnpm - Efficient package management
  • Fuse.js - Fuzzy search functionality
  • marked - Markdown parsing and rendering

📦 Installation

Option 1: NPM Package (Recommended)

# Install globally
npm install -g content-manager-mcp

# Or use directly with npx
npx -y content-manager-mcp

Option 2: From Source

Prerequisites

  • Node.js >= 20.0.0
  • pnpm >= 9.0.0

Setup

# Clone and install dependencies
git clone <repository-url>
cd content-manager-mcp
pnpm install

# Build the project
pnpm build

# Run in development mode
pnpm dev

🔧 Usage

As MCP Server

The server runs via stdio and implements the MCP protocol:

Using NPM Package

# If installed globally
content-manager-mcp

# Using npx (no installation required)
npx -y content-manager-mcp

Using Source Build

node dist/index.js

MCP Client Configuration

Claude Desktop

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "content-manager": {
      "command": "npx",
      "args": ["-y", "content-manager-mcp"]
    }
  }
}

Cherry Studio

Configure MCP server:

  • Command: npx
  • Arguments: ["-y", "content-manager-mcp"]

Codex

Add to your Codex MCP servers configuration:

{
  "mcpServers": {
    "content-manager": {
      "command": "npx",
      "args": ["-y", "content-manager-mcp"]
    }
  }
}

Claude Code

Add MCP server using Claude Code CLI:

# Add content-manager-mcp server to Claude Code
claude mcp add content-manager -- npx -y content-manager-mcp

# Or if you prefer to install globally first
npm install -g content-manager-mcp
claude mcp add content-manager -- content-manager-mcp

VS Code

Install the MCP extension and configure:

  1. Install the MCP extension from VS Code marketplace
  2. Add to your VS Code settings (settings.json):
{
  "mcp.servers": {
    "content-manager": {
      "command": "npx",
      "args": ["-y", "content-manager-mcp"]
    }
  }
}

Cursor

Configure MCP server in Cursor settings:

  1. Open Cursor settings
  2. Navigate to MCP configuration
  3. Add new server:
    • Name: content-manager
    • Command: npx
    • Arguments: ["-y", "content-manager-mcp"]

Or add to Cursor's settings.json:

{
  "mcp.servers": {
    "content-manager": {
      "command": "npx",
      "args": ["-y", "content-manager-mcp"]
    }
  }
}

Available Tools

render_markdown

Converts Markdown content to HTML with optional features:

{
  content: string,           // Markdown content to render
  generateToc?: boolean,     // Generate table of contents (default: true)
  sanitizeHtml?: boolean,    // Sanitize output HTML (default: true)
  enableCodeHighlight?: boolean // Enable syntax highlighting (default: true)
}

search_notes

Intelligent search through content files:

{
  query: string,             // Search query
  directory?: string,        // Directory to search (default: cwd)
  includeContent?: boolean,  // Include file content in results (default: true)
  maxResults?: number,       // Maximum results to return (default: 10)
  fuzzy?: boolean           // Use fuzzy search (default: true)
}

search_by_tags

Find files by frontmatter tags:

{
  tags: string[],           // Array of tags to search for
  directory?: string        // Directory to search (default: cwd)
}

search_by_date_range

Find files by modification date:

{
  startDate: string,        // ISO date string (YYYY-MM-DD)
  endDate: string,          // ISO date string (YYYY-MM-DD)
  directory?: string        // Directory to search (default: cwd)
}

generate_table_of_contents

Extract and format headings as a table of contents:

{
  content: string           // Markdown content to analyze
}

extract_headings

Get structured heading information:

{
  content: string           // Markdown content to analyze
}

extract_frontmatter

Parse YAML frontmatter from Markdown:

{
  content: string           // Markdown content with frontmatter
}

get_directory_stats

Analyze directory content statistics:

{
  directory?: string        // Directory to analyze (default: cwd)
}

find_content_files

Discover files with specific extensions:

{
  directory?: string,           // Directory to search (default: cwd)
  extensions?: string[]         // File extensions (default: ['.md', '.markdown', '.txt', '.mdx'])
}

read_content_file

Read and parse a single content file:

{
  filePath: string             // Path to file to read
}

🧪 Development

Scripts

  • pnpm dev - Development mode with watch
  • pnpm build - Build for production
  • pnpm start - Run built server
  • pnpm lint - Check code style
  • pnpm lint:fix - Fix code style issues
  • pnpm type-check - TypeScript type checking
  • pnpm clean - Clean build artifacts

Type Safety

This project leverages Zod for runtime validation combined with TypeScript for compile-time safety. All tool arguments are validated at runtime, ensuring robust error handling and type safety.

Error Handling

  • Comprehensive error catching and reporting
  • Zod validation errors with descriptive messages
  • File system error handling
  • Graceful degradation for malformed content

📝 Example Usage

Frontmatter Format

The server recognizes YAML frontmatter in Markdown files:

---
title: My Document
tags: [typescript, mcp, documentation]
author: Your Name
date: 2024-01-15
---

# Document Content

Your markdown content here...

Search Examples

  • Fuzzy search: query: "typescript mcp" (finds related content)
  • Exact search: query: "exact phrase", fuzzy: false
  • Tag search: tags: ["typescript", "documentation"]
  • Date search: startDate: "2024-01-01", endDate: "2024-12-31"

📤 Publishing

This package is published to NPM as @yugangcao/content-manager-mcp. To publish a new version:

# Build the project
pnpm build

# Update version (patch/minor/major)
npm version patch

# Publish to NPM
npm publish

For detailed publishing instructions, see PUBLISH_TO_NPM.md.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make changes and add tests
  4. Ensure types are correct: pnpm type-check
  5. Submit a pull request

📄 License

MIT License - see LICENSE file for details.


Built with ❤️ using TypeScript, Zod, and the latest modern tooling for robust content management.