使用说明
Markdown Notes MCP服务器
MCP(模型上下文协议)服务器,创建markdown文件并将其发送到Discord,支持本地文件保存和任务管理。
特性
- 发送Markdown注释:创建markdown文件并将其作为文件附件发送到Discord
- 任务管理:将任务添加到每周待办事项列表(本地文件或Discord)
- 本地文件保存:除了Discord之外,还可以选择在本地保存文件
- MCP协议:通过HTTP完全支持MCP协议
- Docker支持:使用Docker轻松部署
需求
- Node.js 18+(用于原生FormData和Blob支持)
- Docker(可选,用于容器化部署)
设置
1.安装依赖项
npm install
2.创建Discord Webhook
- 转到您的Discord服务器
- 导航到要接收笔记的频道
- 点击频道设置(齿轮图标)
- 转到“集成”→ “Webhooks”
- 点击“新建Webhook”或“创建Webhook
- 给它起个名字(例如“AI Notes”)
- 复制webhook URL
3.配置环境变量
创建一个 .env 项目根目录中的文件(您可以从以下位置复制 .env.example):
cp .env.example .env
然后编辑 .env 并配置您的设置:
# Required: Discord webhook URL
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your_webhook_id/your_webhook_token
# Optional: Local file path to save markdown files
# If set, files will be saved to this directory in addition to being sent to Discord
LOCAL_FILE_PATH=/Users/yourname/Documents/notes
# Optional: Path to tasks.md file for weekly todo list
# If set, tasks will be appended to this file when running locally
# If not set, tasks will be sent to Discord with a timestamped filename
TASKS_FILE_PATH=/Users/yourname/Documents/tasks.md
或者将它们导出到您的shell中:
export DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your_webhook_id/your_webhook_token
export LOCAL_FILE_PATH=/Users/yourname/Documents/notes
export TASKS_FILE_PATH=/Users/yourname/Documents/tasks.md
4.建设项目
npm run build
用法
运行MCP服务器
服务器在HTTP(默认端口3000)上运行,并公开MCP协议端点。
npm start
发展:
npm run dev
服务器将于启动 http://localhost:3000 (或指定的端口 PORT 环境变量)。
连接MCP客户端
使用MCP端点连接到服务器:
- MCP检查员:
npx @modelcontextprotocol/inspector并连接到http://localhost:3000/mcp - 光标:使用URL添加MCP服务器
http://localhost:3000/mcp - ChatGPT:打开开发模式,并使用URL创建新连接器
http://localhost:3000/mcp - 克劳德桌面:使用URL在设置中配置
http://localhost:3000/mcp - VS Code:添加MCP服务器配置
API终点
GET /
API信息终结点。
GET /health
健康检查端点。
答复:
{
"status": "ok"
}
POST /mcp
MCP协议端点。这是MCP客户端的主要端点。
MCP工具
服务器公开了两个工具:
1. send_markdown_to_discord
创建一个标记注释/文档,并将其作为文件附件发送给Discord。
何时使用: 一般注释、文档、摘要或任何应另存为markdown文件的内容。
参数:
prompt(必填):要转换为降价注释的内容title(可选):标记注释的标题webhookUrl(可选):Discord webhook URL。如果未提供,则使用DISCORD_WEBHOOK_URL从环境
行为:
- 使用内容创建一个markdown文件
- 作为文件附件发送到Discord
- 如果
LOCAL_FILE_PATH已设置,也将文件保存在本地
MCP客户端中的示例用法:
"Create a markdown note about today's meeting: We discussed the new feature..."
"Save this summary as a markdown file: [content]"
2. add_tasks
将任务或待办事项添加到每周待办事项列表中。
何时使用: 当你想添加任务、待办事项、行动项或清单项时。
参数:
items(必填):任务项数组。以空格或破折号开头的项目将被视为子任务并缩进。
行为:
-
如果
TASKS_FILE_PATH已设置(本地模式):- 读取现有
tasks.md文件 - 将新任务附加到底部
- 将任务格式化为标记复选框(
- [ ] task) - 子任务缩进2个空格
- 读取现有
-
如果
TASKS_FILE_PATH未设置(远程模式):- 将任务作为文件附件发送到Discord
- 文件名格式:
tasks_to_add_YYYYMMDD_HHMMSS.md(UTC-8时间戳)
MCP客户端中的示例用法:
"Add these tasks to my todo list: Review the PR, Write documentation, Test the feature"
"Add these items to my checklist: [list items]"
运作原理
Markdown注释(send_markdown_to_discord)
- 接收内容和可选标题
- 格式为markdown(添加标题为
# Title如果提供) - 在内存中创建markdown文件
- 作为文件附件发送到Discord
- 如果满足以下条件,则可选择在本地保存
LOCAL_FILE_PATH已配置
任务管理(add_tasks)
- 接收一系列任务项
- 格式化为标记复选框(
- [ ] task) - 检测子任务(带有前导空格/制表符的项目)并缩进它们
- 本地模式 (如果
TASKS_FILE_PATH已设置):- 从文件中读取现有任务
- 添加新任务
- 写回文件
- 远程模式 (如果
TASKS_FILE_PATH未设置):- 生成带时间戳的文件名(UTC-8)
- 作为文件附件发送到Discord
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
DISCORD_WEBHOOK_URL |
是 | 取消发送文件的webhook URL |
PORT |
无 | 服务器端口(默认值:3000) |
LOCAL_FILE_PATH |
否 | 本地保存markdown文件的目录路径 |
TASKS_FILE_PATH |
否 | 用于本地任务管理的tasks.md文件的完整路径 |
Docker部署
使用Docker Compose(推荐)
-
创建一个
.env配置文件(见上文) -
使用Docker Compose构建和运行:
docker-compose up -d
- 查看日志:
docker-compose logs -f
- 停止容器:
docker-compose down
直接使用Docker
- 构建Docker镜像:
docker build -t discord-markdown-notes-mcp .
- 运行容器:
docker run -it --rm \
-e DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your_webhook_id/your_webhook_token \
-e LOCAL_FILE_PATH=/app/notes \
-e TASKS_FILE_PATH=/app/tasks.md \
-p 3000:3000 \
discord-markdown-notes-mcp
或者使用 .env 文件:
docker run -it --rm \
--env-file .env \
-p 3000:3000 \
discord-markdown-notes-mcp
Docker笔记
- HTTP服务器在容器内的端口3000上运行
- 端口3000已暴露并映射到您的主机
- 环境变量可以通过以下方式传递
-e旗帜,--env-file,或在docker-compose.yml - 容器从以下位置运行构建的TypeScript代码
dist目录 - 您可以访问服务器
http://localhost:3000使用Docker运行时
示例用法
使用MCP客户端(推荐)
当通过Cursor或Claude Desktop等MCP客户端连接时,您可以使用自然语言:
关于降价备注:
- “创建关于今天会议的标记注释”
- “将此摘要另存为markdown文件”
- “将此文档发送到Discord”
对于任务:
- “将这些任务添加到我的待办事项列表中:[list tasks]”
- “将这些项目添加到我的清单中:[列出项目]”
- “添加这些操作项:[列表项]”
使用curl(用于测试)
# Send a markdown note
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "send_markdown_to_discord",
"arguments": {
"prompt": "This is a test note with **markdown** formatting.",
"title": "Test Note"
}
},
"id": 1
}'
# Add tasks
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "add_tasks",
"arguments": {
"items": ["Review PR", "Write docs", "Test feature"]
}
},
"id": 2
}'
发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
许可证
ISC