MCP备注
](https://github.com/Go-555/note-post-mcp)
通用MCP服务器向note.com公开了自动发布和草稿保存的工具。它读取包含标题、正文和标签的Markdown文件,然后使用Playwright自动化将其发布到您的note.com帐户。
安装
先决条件
- Node.js 18+
- note.com帐户
note-state.json身份验证状态文件(通过以下方式获得npm run login)- 集
NOTE_POST_MCP_STATE_PATH在您的环境中(可选,默认为~/.note-state.json)
从GitHub安装
git clone https://github.com/Go-555/note-post-mcp.git
cd note-post-mcp
npm install
npm run build安装Playwright浏览器
npm run install-browser这将安装自动化所需的Chromium浏览器。
获取身份验证状态文件
运行登录脚本以通过note.com进行身份验证:
npm run login浏览器窗口将打开。登录note.com,然后在终端中按Enter键。这创建了一个 ~/.note-state.json 包含您的身份验证状态的文件。安全地存储此文件,并通过以下方式引用它 NOTE_POST_MCP_STATE_PATH 或者将其作为参数传递。
或者从npm安装(如果已发布)
npm install -g note-post-mcp设置:克劳德代码(CLI)
使用这一行(替换为实际值):
claude mcp add Note Post MCP -s user -e NOTE_POST_MCP_STATE_PATH="/path/to/note-state.json" -- npx @gonuts555/note-post-mcp@latest要删除:
claude mcp remove Note Post MCP设置:光标
创建 .cursor/mcp.json 在您的客户端中(不要在此处提交):
{
"mcpServers": {
"note-post-mcp": {
"command": "npx",
"args": ["@gonuts555/note-post-mcp@latest"],
"env": {
"NOTE_POST_MCP_STATE_PATH": "/path/to/note-state.json"
},
"autoStart": true
}
}
}其他客户和代理商
VS Code
通过URI或CLI安装:
code --add-mcp '{"name":"note-post-mcp","command":"npx","args":["@gonuts555/note-post-mcp@latest"],"env":{"NOTE_POST_MCP_STATE_PATH":"/path/to/note-state.json"}}'Claude Desktop
添加到您的Claude Desktop配置文件(claude_desktop_config.json):
{
"mcpServers": {
"note-post-mcp": {
"command": "npx",
"args": ["@gonuts555/note-post-mcp@latest"],
"env": {
"NOTE_POST_MCP_STATE_PATH": "/path/to/note-state.json"
}
}
}
}LM Studio
- 命令:
npx - Args:
["@gonuts555/note-post-mcp@latest"] - 环境:
NOTE_POST_MCP_STATE_PATH=/path/to/note-state.json
Goose
- 类型:STDIO
- 命令:
npx - Args:
@gonuts555/note-post-mcp@latest - 启用:true
opencode
示例 ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"note-post-mcp": {
"type": "local",
"command": ["npx", "@gonuts555/note-post-mcp@latest"],
"enabled": true,
"env": {
"NOTE_POST_MCP_STATE_PATH": "/path/to/note-state.json"
}
}
}
}Qodo Gen
添加一个新的MCP并粘贴上面的标准JSON配置。
Windsurf
将以下内容添加到您的Windsurf MCP配置中:
{
"note-post-mcp": {
"command": "npx",
"args": ["@gonuts555/note-post-mcp@latest"],
"env": {
"NOTE_POST_MCP_STATE_PATH": "/path/to/note-state.json"
}
}
}设置:Codex(TOML)
将以下内容添加到Codex TOML配置中。
示例(Serena):
[mcp_servers.serena]
command = "uvx"
args = ["--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server", "--context", "codex"]此服务器(最小):
[mcp_servers.note-post-mcp]
command = "npx"
args = ["@gonuts555/note-post-mcp@latest"]
# Optional environment variables:
# NOTE_POST_MCP_STATE_PATH = "/path/to/note-state.json"
# NOTE_POST_MCP_TIMEOUT = "180000"
# MCP_NAME = "note-post-mcp"配置(Env)
NOTE_POST_MCP_STATE_PATH:note.com身份验证状态文件的路径(默认值:~/.note-state.json)NOTE_POST_MCP_TIMEOUT:浏览器操作超时(毫秒)(默认值:180000)MCP_NAME:服务器名称覆盖(默认值:note-post-mcp)
可用工具
publish_note
从Markdown文件向note.com发布文章。
- 输入:
- markdown_path (string,必填):包含标题、正文和标签的Markdown文件的路径 - thumbnail_path (字符串,可选):缩略图文件的路径 - state_path (字符串,可选):note.com身份验证状态文件的路径 - screenshot_dir (字符串,可选):保存屏幕截图的目录 - timeout (数字,可选):超时时间(毫秒)
- 输出:JSON对象,具有:
- success (boolean):操作是否成功 - url (string):已发表文章的URL - screenshot (string):截图路径 - message (string):成功消息
保存草稿
将文章草稿从Markdown文件保存到note.com。
- 输入:
- markdown_path (string,必填):包含标题、正文和标签的Markdown文件的路径 - thumbnail_path (字符串,可选):缩略图文件的路径 - state_path (字符串,可选):note.com身份验证状态文件的路径 - screenshot_dir (字符串,可选):保存屏幕截图的目录 - timeout (数字,可选):超时时间(毫秒)
- 输出:JSON对象,具有:
- success (boolean):操作是否成功 - url (string):草稿编辑器页面的URL - screenshot (string):截图路径 - message (string):成功消息
Markdown文件格式
你的Markdown文件应该遵循以下格式:
---
title: Your Article Title
tags:
- tag1
- tag2
---
Your article body content goes here.
You can include URLs and they will be automatically expanded by note.com.或者,您可以对标签使用数组表示法:
---
title: Your Article Title
tags: [tag1, tag2]
---
Your article body content goes here.或者使用简单的 # 如果没有正面内容,则前往标题:
# Your Article Title
Your article body content goes here.正文内容详细信息
正文内容支持以下Markdown元素:
正面格式:
- 关闭后的所有线路
---前部物质被视为身体内容物 - 尾随的空白行会自动修剪
标题格式:
- 第一行以
#被视为标题(不包含在正文中) - 标题与
##或###被视为身体内容物的一部分
代码块:
- 必须有一个封闭的围栏(“”)
- 保留语言规范
- 整个代码块作为一个单元粘贴
图像插入:
- 使用Markdown文件中的相对路径:
 - 支持PNG、JPEG和GIF格式
- 本地图像文件会自动上传
列表和报价:
- 项目符号列表(
-)以及编号列表(1.)由note.com自动继续 - 阻止报价(
>)也会自动继续 - Markdown符号在第一行之后自动处理
水平规则:
---正文内容按照横向规则正确处理- 紧随水平规则之后的空白行将自动跳过
URL单行:
- note.com会自动将自己行上的网址扩展为链接卡
- YouTube和其他嵌入内容也会自动处理
示例调用(MCP工具调用)
{
"name": "publish_note",
"arguments": {
"markdown_path": "/path/to/article.md",
"thumbnail_path": "/path/to/thumbnail.png",
"state_path": "/path/to/note-state.json"
}
}要保存草稿:
{
"name": "save_draft",
"arguments": {
"markdown_path": "/path/to/draft.md"
}
}故障排除
- 身份验证错误:确保您的
note-state.json文件有效且是最新的。如果会话已过期,您可能需要重新生成它。 - 确保节点18+:运行
node -v验证您的Node.js版本。 - 构建错误:运行
npm install和npm run build以确保安装了所有依赖项并编译了TypeScript。 - 本地跑步:构建完成后,在本地进行测试
npx note-post-mcp(它将等待stdin上的MCP消息)。 - 检查发布工件:运行
npm pack --dry-run查看已发布包中将包含哪些文件。 - 超时问题:如果操作超时,请增加
NOTE_POST_MCP_TIMEOUT或通过更大的timeout参数。 - 未安装Playwright浏览器:运行
npm run install-browser或npx playwright install chromium安装所需的浏览器。
参考文献
名称一致性和故障排除
- 始终使用CANONICAL_ID(
note-post-mcp)用于标识符和密钥。 - 使用CANONICAL_DISPLAY(
Note Post MCP)仅适用于UI标签。 - 不要在客户之间混合使用不同的名称。
一致性矩阵
- npm包名称→
note-post-mcp - 二进制名称→
note-post-mcp - MCP服务器名称(SDK元数据)→
note-post-mcp - 环境默认MCP_NAME→
note-post-mcp - 客户端注册表项→
note-post-mcp - UI标签→
Note Post MCP
冲突清理
- 删除所有具有不同名称的旧条目,然后重新添加
note-post-mcp. - 确保全球
.mcp.json或客户端注册表仅使用note-post-mcp钥匙。 - 光标:仅在UI中配置。此项目不包括
.cursor/mcp.json.
示例
- 正确:
"mcpServers": { "note-post-mcp": { "command": "npx", "args": ["@gonuts555/note-post-mcp@latest"] } } - 不正确:使用不同的按键,如
"NotePost"或"note_post"(将与note-post-mcp)
许可证
麻省理工学院
