使用说明
Markdown MCP服务器
Cursor AI IDE提供的Markdown文档管理模型上下文协议(MCP)服务器。
概述
该项目提供MCP服务器,使Cursor AI IDE能够有效地执行Markdown文档的CRUD操作。不仅支持创建、读取、修改、删除文档,还支持搜索、元数据管理等高级功能。
主要功能
基本CRUD操作
- 创建文档:创建新的Markdown文件
- 读取文档:读取现有Markdown文件内容
- 修改文档:修改或添加现有文件内容
- 删除文档:删除Markdown文件
高级功能
- 查询文档列表:查看目录中的Markdown文件列表
- 搜索内容:在文件内容中搜索关键字
- 元数据管理:YAML frontmatter管理(添加、修改、删除)
技术堆栈
- 语言:Python 3.9+
- 框架:MCP Python SDK
- 文档格式:Markdown(.md,.Markdown)
- 依赖性:
mcp,pyyaml,pathlib2,typing-extensions
设置
1.存储库克隆
git clone <repository-url>
cd markdown-mcp-server
2.安装依赖性
pip install -r requirements.txt
3.安装开发模式(可选)
pip install -e .
使用方法
Cursor AI IDE设置
在Cursor AI IDE的配置文件中添加MCP服务器:
{
"mcp": {
"servers": {
"markdown-manager": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/markdown-mcp-server"
}
}
}
}
环境变量
MARKDOWN_MCP_BASE_PATH:文件操作的默认目录(默认:当前目录)
API参考
1.read_markdown
读取Markdown文件并返回内容。
参数:
file_path(string):要读取的文件的路径encoding(optional,string):文件编码(默认值:“utf-8”)
반환값:
{
"success": true,
"content": "파일 내용",
"content_without_frontmatter": "frontmatter 제외한 내용",
"frontmatter": {"title": "제목", "author": "작성자"},
"file_info": {"name": "파일명", "size": 1024, ...},
"encoding": "utf-8"
}
2.创建_降价
创建新的Markdown文件。
参数:
file_path(string):要创建的文件的路径content(string):文件内容overwrite(optional,boolean):是否覆盖现有文件(默认值:false)
반환값:
{
"success": true,
"message": "File created successfully: file.md",
"file_path": "/full/path/to/file.md",
"file_info": {"name": "file.md", "size": 1024, ...}
}
3.更新_降价
修改现有Markdown文件的内容。
参数:
file_path(string):要修改的文件的路径content(string):新增内容append(optional,boolean):是否添加内容(默认值:false)
반환값:
{
"success": true,
"message": "File updated successfully: file.md",
"file_path": "/full/path/to/file.md",
"file_info": {"name": "file.md", "size": 1024, ...}
}
4.删除_降价
删除指定的Markdown文件。
参数:
file_path(string):要删除的文件的路径confirm(optional,boolean):确认删除(默认值:false)
반환값:
{
"success": true,
"message": "File deleted successfully: file.md"
}
5.列表标记文件
返回指定目录的Markdown文件列表。
参数:
directory(optional,string):要搜索的目录路径(默认值:“.”)recursive(optional,boolean):是否包含子目录(默认值:false)pattern(optional,string):文件模式(默认为“*.md”)
반환값:
{
"success": true,
"files": [
{
"name": "file1.md",
"size": 1024,
"modified": 1234567890,
"relative_path": "file1.md"
}
],
"count": 1,
"directory": "."
}
6.搜索_标记
在Markdown文件内容中搜索关键字。
参数:
directory(string):要搜索的目录query(string):搜索关键字case_sensitive(optional,boolean):区分大小写(默认值:false)
반환값:
{
"success": true,
"results": [
{
"file_path": "file1.md",
"matches": [
{"line_number": 5, "line_content": "This line contains the keyword"}
],
"match_count": 1
}
],
"total_files_searched": 10,
"files_with_matches": 1,
"query": "keyword",
"case_sensitive": false
}
7.管理事项
管理Markdown文件中的YAML frontmatter。
参数:
file_path(string):目标文件路径action(string):任务类型(“get”、“set”、“update”、“remove”)metadata(optional,object):元数据信息(需要set/update操作)
返回值(get操作):
{
"success": true,
"frontmatter": {"title": "제목", "author": "작성자"},
"has_frontmatter": true
}
返回值(其他操作):
{
"success": true,
"message": "Frontmatter set completed successfully",
"file_path": "/full/path/to/file.md",
"action": "set"
}
使用示例
在Cursor AI IDE中使用
-
创建新的项目文档
"새로운 프로젝트 문서를 생성해주세요. 파일명: project-overview.md" -
按关键字搜索文档
"'API 문서' 키워드가 포함된 모든 마크다운 파일을 찾아주세요" -
将内容添加到现有文档
"README.md 파일에 설치 가이드 섹션을 추가해주세요" -
元数据管理
"project.md 파일의 frontmatter에 버전 정보를 추가해주세요"
开发
项目结构
markdown-mcp-server/
├── src/
│ ├── __init__.py
│ ├── server.py # MCP 서버 메인 로직
│ ├── markdown_manager.py # Markdown 문서 관리 클래스
│ └── utils.py # 유틸리티 함수
├── tests/
│ ├── __init__.py
│ ├── test_server.py
│ └── test_markdown_manager.py
├── requirements.txt
├── setup.py
└── README.md
运行测试
# 단위 테스트 실행
python -m unittest tests.test_markdown_manager
# 통합 테스트 실행
python -m unittest tests.test_server
# 모든 테스트 실행
python -m unittest discover tests
运行服务器
# 직접 실행
python -m src.server
# 환경 변수와 함께 실행
MARKDOWN_MCP_BASE_PATH=/path/to/docs python -m src.server
安全注意事项
- 验证路径:验证所有文件路径以防止path traversal攻击。
- 验证权限:验证文件系统访问权限。
- 验证输入:验证所有用户输入。
- 安全的文件处理:处理文件大小限制和编码问题。
错误处理
所有API调用都返回一致的错误响应格式:
{
"error": "에러 메시지 설명"
}
常见错误情况:
- 如果文件不存在
- 如果您没有权限
- 文件路径无效
- 编码错误
- 目录不存在
记录
服务器提供结构化日志记录:
- INFO:常规任务日志
- WARNING:警告情况
- ERROR:错误情况
日志级别是环境变量 LOG_LEVEL可以设置为。
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
该项目在MIT许可下分发。有关详细信息,请访问 LICENSE 请参考文件。
支持
如果您遇到问题或有任何疑问,请通过GitHub Issues与我们联系。
变更历史记录
v0.1.0
- 初始版本版本
- 实现基本CRUD功能
- 添加搜索和元数据管理功能
- MCP服务器集成
- 编写测试代码
