README
🚀 内容管理器MCP服务器
这是一个基于TypeScript的综合模型上下文协议(MCP)服务器,用于内容管理,支持Markdown处理、文档生成和智能笔记搜索等功能。
🚀 快速开始
本服务器通过标准输入输出运行,并实现了MCP协议。以下是不同使用方式的启动方法:
使用NPM包
# 若已全局安装
content-manager-mcp
# 使用npx(无需安装)
npx -y content-manager-mcp
使用源码构建
node dist/index.js
✨ 主要特性
📝 Markdown处理
- 将Markdown渲染为HTML,同时生成目录
- 提取标题,创建结构化导航
- 解析Markdown文件的前置元数据
- 对HTML进行清理,确保内容处理的安全性
🔍 智能搜索
- 使用Fuse.js进行模糊搜索,可在笔记中进行模糊查找
- 精确文本匹配,并高亮显示上下文
- 基于前置元数据标签进行过滤
- 支持日期范围查询,便于按时间查找内容
📊 内容分析
- 目录统计,显示文件数量、大小和类型
- 文件发现,可自定义文件扩展名进行过滤
- 内容预览,同时提取元数据
📦 安装指南
选项1:NPM包(推荐)
# 全局安装
npm install -g content-manager-mcp
# 或者直接使用npx
npx -y content-manager-mcp
选项2:从源码安装
前提条件
- Node.js >= 20.0.0
- pnpm >= 9.0.0
安装步骤
# 克隆仓库并安装依赖
git clone <repository-url>
cd content-manager-mcp
pnpm install
# 构建项目
pnpm build
# 在开发模式下运行
pnpm dev
💻 使用示例
MCP客户端配置
Claude Desktop
在Claude Desktop配置中添加以下内容:
{
"mcpServers": {
"content-manager": {
"command": "npx",
"args": ["-y", "content-manager-mcp"]
}
}
}
Cherry Studio
配置MCP服务器:
- 命令:
npx - 参数:
["-y", "content-manager-mcp"]
Codex
在Codex MCP服务器配置中添加以下内容:
{
"mcpServers": {
"content-manager": {
"command": "npx",
"args": ["-y", "content-manager-mcp"]
}
}
}
Claude Code
使用Claude Code CLI添加MCP服务器:
# 将content-manager-mcp服务器添加到Claude Code
claude mcp add content-manager -- npx -y content-manager-mcp
# 或者如果你更喜欢先全局安装
npm install -g content-manager-mcp
claude mcp add content-manager -- content-manager-mcp
VS Code
安装MCP扩展并配置:
- 从VS Code市场安装MCP扩展
- 在VS Code设置(
settings.json)中添加以下内容:
{
"mcp.servers": {
"content-manager": {
"command": "npx",
"args": ["-y", "content-manager-mcp"]
}
}
}
Cursor
在Cursor设置中配置MCP服务器:
- 打开Cursor设置
- 导航到MCP配置
- 添加新服务器:
- 名称:
content-manager - 命令:
npx - 参数:
["-y", "content-manager-mcp"]
- 名称:
或者在Cursor的settings.json中添加以下内容:
{
"mcp.servers": {
"content-manager": {
"command": "npx",
"args": ["-y", "content-manager-mcp"]
}
}
}
可用工具
render_markdown
将Markdown内容转换为HTML,支持可选功能:
{
content: string, // 要渲染的Markdown内容
generateToc?: boolean, // 生成目录(默认:true)
sanitizeHtml?: boolean, // 清理输出的HTML(默认:true)
enableCodeHighlight?: boolean // 启用语法高亮(默认:true)
}
search_notes
在内容文件中进行智能搜索:
{
query: string, // 搜索查询
directory?: string, // 搜索目录(默认:当前工作目录)
includeContent?: boolean, // 在结果中包含文件内容(默认:true)
maxResults?: number, // 返回的最大结果数(默认:10)
fuzzy?: boolean // 使用模糊搜索(默认:true)
}
search_by_tags
根据前置元数据标签查找文件:
{
tags: string[], // 要搜索的标签数组
directory?: string // 搜索目录(默认:当前工作目录)
}
search_by_date_range
根据修改日期查找文件:
{
startDate: string, // ISO日期字符串(YYYY-MM-DD)
endDate: string, // ISO日期字符串(YYYY-MM-DD)
directory?: string // 搜索目录(默认:当前工作目录)
}
generate_table_of_contents
提取并将标题格式化为目录:
{
content: string // 要分析的Markdown内容
}
extract_headings
获取结构化的标题信息:
{
content: string // 要分析的Markdown内容
}
extract_frontmatter
从Markdown中解析YAML前置元数据:
{
content: string // 包含前置元数据的Markdown内容
}
get_directory_stats
分析目录内容统计信息:
{
directory?: string // 要分析的目录(默认:当前工作目录)
}
find_content_files
查找具有特定扩展名的文件:
{
directory?: string, // 搜索目录(默认:当前工作目录)
extensions?: string[] // 文件扩展名(默认:['.md', '.markdown', '.txt', '.mdx'])
}
read_content_file
读取并解析单个内容文件:
{
filePath: string // 要读取的文件路径
}
🔧 技术细节
脚本
pnpm dev- 开启监听的开发模式pnpm build- 为生产环境构建项目pnpm start- 运行构建后的服务器pnpm lint- 检查代码风格pnpm lint:fix- 修复代码风格问题pnpm type-check- TypeScript类型检查pnpm clean- 清理构建产物
类型安全
本项目使用Zod进行运行时验证,并结合TypeScript实现编译时安全。所有工具参数都在运行时进行验证,确保健壮的错误处理和类型安全。
错误处理
- 全面的错误捕获和报告
- Zod验证错误提供详细的错误信息
- 文件系统错误处理
- 对格式错误的内容进行优雅降级处理
📝 示例用法
前置元数据格式
服务器识别Markdown文件中的YAML前置元数据:
---
title: My Document
tags: [typescript, mcp, documentation]
author: Your Name
date: 2024-01-15
---
# Document Content
Your markdown content here...
搜索示例
- 模糊搜索:
query: "typescript mcp"(查找相关内容) - 精确搜索:
query: "exact phrase", fuzzy: false - 标签搜索:
tags: ["typescript", "documentation"] - 日期搜索:
startDate: "2024-01-01", endDate: "2024-12-31"
📤 发布
本包已发布到NPM,名称为 @yugangcao/content-manager-mcp。要发布新版本,请执行以下操作:
# 构建项目
pnpm build
# 更新版本(补丁/小版本/大版本)
npm version patch
# 发布到NPM
npm publish
详细的发布说明请参阅 PUBLISH_TO_NPM.md。
🤝 贡献指南
- 分叉仓库
- 创建功能分支:
git checkout -b feature-name - 进行更改并添加测试
- 确保类型正确:
pnpm type-check - 提交拉取请求
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
本项目使用TypeScript、Zod和最新的现代工具精心打造,为您提供强大的内容管理功能。
微信扫一扫