一个基于FastMCP的模型上下文协议(MCP)服务器,用于Joplin笔记应用程序,通过其Python API joppy,使AI助手能够通过标准化接口与您的Joplin笔记、笔记本和标签进行交互。
<!-- mcp-name: io.github.alondmnt/joplin-mcp -->此MCP服务器提供了22个优化工具,以实现全面的Joplin集成:
find_notes,find_notes_with_tag,find_notes_in_notebook,get_all_notesget_note,get_links,create_note,update_note,delete_notelist_notebooks,create_notebook,update_notebook,delete_notebooklist_tags,create_tag,update_tag,delete_tag,get_tags_by_notetag_note,untag_noteimport_from_file - 导入Markdown、HTML、CSV、TXT、JEX文件和目录
注意:默认情况下禁用导入工具以确保安全。在您的配置中启用
"import_from_file": true。
ping_joplin运行自动化安装程序:
# 自动安装和配置一切(pip)
pip install joplin-mcp
joplin-mcp-install
# 或使用零安装(推荐如果您有uv)
uvx --from joplin-mcp joplin-mcp-install
# 可选:指定特定版本/范围以保证稳定性
uvx --from joplin-mcp==0.4.1 joplin-mcp-install
uvx --from 'joplin-mcp>=0.4,<0.5' joplin-mcp-install
此脚本将:
设置完成后,重新启动Claude Desktop即可!
"列出我的笔记本"或"创建关于今天会议的笔记"
从https://jan.ai 安装Jan AI
在Jan的界面中添加MCP服务器:
joplinuvx --from joplin-mcp joplin-mcp-server (需要安装uv)JOPLIN_TOKEN:your_joplin_api_token_here开始与您的Joplin笔记进行聊天!
B2:自动化设置(替代方案)
# 如果已经安装了Jan AI,自动安装和配置
pip install joplin-mcp
joplin-mcp-install
这将自动检测并配置Jan AI,就像Claude Desktop一样。
"显示我最近的笔记"或"创建项目规划笔记"
对于本地Ollama模型:
选项C1:自动发现(如果先设置了Claude Desktop)
# 安装ollmcp
pip install ollmcp
# 使用自动发现运行(需要已存在的Claude Desktop配置)
ollmcp --auto-discovery --model qwen3:4b
选项C2:手动设置(独立工作)
# 安装ollmcp
pip install ollmcp
# 设置环境变量
export JOPLIN_TOKEN="your_joplin_api_token_here"
# 使用手动服务器配置运行(需要安装uv)
ollmcp --server "joplin:uvx --from joplin-mcp joplin-mcp-server" --model qwen3:4b
配置完成后,您可以向您的AI助手询问:
find_notes(task=True)查找任务项设置脚本提供3个安全级别:
选择与您的舒适度和使用场景相匹配的级别。
如果您没有uvx或希望自定义MCP设置:
# 安装包
pip install joplin-mcp
# 运行设置脚本
joplin-mcp-install
这种方法提供了与uvx joplin-mcp-install相同的功能,但需要本地Python环境。
对于开发者或希望获得最新功能的用户:
macOS/Linux:
git clone https://github.com/alondmnt/joplin-mcp.git
cd joplin-mcp
./install.sh
Windows:
git clone https://github.com/alondmnt/joplin-mcp.git
cd joplin-mcp
install.bat
如果您偏好手动设置或脚本无法正常工作:
关于
uvx:uvx可以在不永久安装的情况下运行Python应用程序(需要uv:pip install uv)。它可以读写用户配置文件(例如Claude/Jan配置),因此uvx --from joplin-mcp joplin-mcp-install的工作方式类似于pip安装。
版本锁定(可选):对于长期使用的客户端配置或CI,您可以通过锁定或范围约束版本来保证可重复性,例如
uvx --from joplin-mcp==0.4.1 joplin-mcp-install或uvx --from 'joplin-mcp>=0.4,<0.5' joplin-mcp-install。
在您的项目目录中创建joplin-mcp.json:
{
"token": "your_api_token_here",
"host": "localhost",
"port": 41184,
"timeout": 30,
"verify_ssl": false
}
添加到您的claude_desktop_config.json:
选项A:使用uvx(零安装)
{
"mcpServers": {
"joplin": {
"command": "uvx",
"args": ["--from", "joplin-mcp", "joplin-mcp-server"],
"env": {
"JOPLIN_TOKEN": "your_token_here"
}
}
}
}
需要安装uv:pip install uv
选项B:使用已安装的包
{
"mcpServers": {
"joplin": {
"command": "joplin-mcp-server",
"env": {
"JOPLIN_TOKEN": "your_token_here"
}
}
}
}
选项A:使用uvx(零安装)
# 设置环境变量
export JOPLIN_TOKEN="your_token_here"
# 使用手动服务器配置运行
ollmcp --server "joplin:uvx --from joplin-mcp joplin-mcp-server" --model qwen3:4b
需要安装uv:pip install uv
选项B:使用已安装的包
# 设置环境变量
export JOPLIN_TOKEN="your_token_here"
# 使用手动服务器配置运行
ollmcp --server "joplin:joplin-mcp-server" --model qwen3:4b
包括不同的传输选项(HTTP、SSE、流式HTTP),请参见client-config.json.example。
此文件包括以下配置:
/mcp JSON-RPC与遗留/sse//messages客户端之间的桥梁)通过编辑您的配置来微调AI可以执行的操作:
{
"tools": {
"create_note": true,
"update_note": true,
"delete_note": false,
"create_notebook": true,
"delete_notebook": false,
"create_tag": true,
"update_tag": false,
"delete_tag": false,
"import_from_file": true,
"get_all_notes": false,
"update_notebook": false,
"update_tag": false
}
}
作为JSON配置的替代方案:
export JOPLIN_TOKEN="your_api_token_here"
export JOPLIN_HOST="localhost"
export JOPLIN_PORT="41184"
export JOPLIN_TIMEOUT="30"
服务器支持STDIO和HTTP传输:
# STDIO(默认)
joplin-mcp-server --config ~/.joplin-mcp.json
# HTTP传输(开发,从仓库)
PYTHONPATH=src python -m joplin_mcp.server --transport http --port 8000 --config ./joplin-mcp.json
# 选择加入HTTP兼容捆绑包(现代+遗留SSE端点)
PYTHONPATH=src python -m joplin_mcp.server --transport http-compat --port 8000 --config ./joplin-mcp.json
# 或保持--transport http 并导出 MCP_HTTP_COMPAT=1/true 来切换相同的行为。
注意:Claude Desktop目前使用STDIO传输,并不直接消费HTTP/SSE配置。以下示例适用于支持网络传输的客户端。
{
"mcpServers": {
"joplin": {
"transport": "http",
"url": "http://localhost:8000/mcp"
}
}
}
| 选项 | 默认值 | 描述 |
|---|---|---|
token | 必需 | Joplin API认证令牌 |
host | localhost | Joplin服务器主机名 |
port | 41184 | Joplin Web剪辑器端口 |
timeout | 30 | 请求超时时间(秒) |
verify_ssl | false | SSL证书验证 |
| 选项 | 默认值 | 描述 |
|---|---|---|
tools.create_note | true | 允许创建新笔记 |
tools.update_note | true | 允许修改现有笔记 |
tools.delete_note | true | 允许删除笔记 |
tools.create_notebook | true | 允许创建新笔记本 |
tools.update_notebook | false | 允许修改笔记本标题 |
tools.delete_notebook | true | 允许删除笔记本 |
tools.create_tag | true | 允许创建新标签 |
tools.update_tag | false | 允许修改标签标题 |
tools.delete_tag | true | 允许删除标签 |
tools.tag_note | true | 允许给笔记添加标签 |
tools.untag_note | true | 允许从笔记中移除标签 |
tools.find_notes | true | 允许在笔记中进行全文搜索(支持任务过滤) |
tools.find_notes_with_tag | true | 允许按标签查找笔记(支持任务过滤) |
tools.find_notes_in_notebook | true | 允许按笔记本查找笔记(支持任务过滤) |
tools.get_all_notes | false | 允许获取所有笔记(默认禁用 - 可能填充上下文窗口) |
tools.get_note | true | 允许获取特定笔记 |
tools.list_notebooks | true | 允许列出所有笔记本 |
tools.list_tags | true | 允许列出所有标签 |
tools.get_tags_by_note | true | 允许获取特定笔记的标签 |
tools.ping_joplin | true | 允许测试服务器连通性 |
tools.import_from_file | false | 允许导入文件/目录(MD、HTML、CSV、TXT、JEX) |
| 选项 | 默认值 | 描述 |
|---|---|---|
content_exposure.search_results | "preview" | 搜索结果中的内容可见性:"none","preview","full" |
content_exposure.individual_notes | "full" | 单个笔记的内容可见性:"none","preview","full" |
content_exposure.listings | "none" | 笔记列表中的内容可见性:"none","preview","full" |
content_exposure.max_preview_length | 300 | 内容预览的最大长度(字符) |
在容器中运行MCP服务器。默认传输为HTTP,以实现广泛的兼容性;通过环境变量切换传输方式。
docker build -t joplin-mcp .
docker run --rm \
-p 8000:8000 \
-e JOPLIN_TOKEN=your_api_token \
joplin-mcp
docker run --rm \
-p 8000:8000 \
-v $PWD/joplin-mcp.json:/config/joplin-mcp.json:ro \
joplin-mcp
-e MCP_TRANSPORT=sse-e MCP_TRANSPORT=streamable-http-e MCP_TRANSPORT=stdio示例(SSE):
docker run --rm \
-p 8000:8000 \
-e JOPLIN_TOKEN=your_api_token \
-e MCP_TRANSPORT=sse \
joplin-mcp
容器默认监听0.0.0.0:8000。如果公开暴露,请放置在反向代理后面并在那里终止TLS。对于SSE,请确保代理保持活动状态并适当配置缓冲。
src/joplin_mcp/ - 主包目录
fastmcp_server.py - 包含22个工具和Pydantic验证类型的服务器实现config.py - 配置管理server.py - 服务器入口点(模块和CLI)ui_integration.py - UI集成实用工具docs/ - 文档(故障排除、隐私控制、增强提案)tests/ - 测试套件测试您的连接:
# 对于pip安装
joplin-mcp-server --config ~/.joplin-mcp.json
# 对于开发(从仓库)
PYTHONPATH=src python -m joplin_mcp.server --config ./joplin-mcp.json
您应该看到:
正在启动Joplin FastMCP服务器...
成功连接到Joplin!
找到X个笔记本,Y个笔记,Z个标签
FastMCP服务器正在启动...
可用工具:22个工具准备就绪
| 工具 | 权限 | 描述 |
|---|---|---|
| 查找笔记 | ||
find_notes | 读取 | 在所有笔记中进行全文搜索(支持任务过滤) |
find_notes_with_tag | 读取 |