内容
# upnote-lens-mcp
<!-- mcp-name: io.github.AwesomeHye/upnote-lens-mcp -->
一款混合MCP服务器,让您的AI助手与UpNote笔记协同工作:
- **🔍 查找和搜索**:根据关键词在标题和正文中搜索笔记。
- **📖 阅读和总结**:返回实际的笔记文本,以便AI可以总结、分析或回答您所写的问题。
- **✍️ 创建**:通过聊天创建新笔记。
在底层:读取操作来自本地UpNote SQLite数据库(**只读**),因此实际内容以文本形式返回;写入操作通过`upnote://` URL方案(x-callback-url)进行,**从不触及数据库**。
> 写入侧(URL方案)基于 [chadthornton/upnote-mcp](https://github.com/chadthornton/upnote-mcp) (MIT)。
## 使用方法
注册后,只需用自然语言与AI助手对话——它会为您选择合适的工具。无需记忆命令或语法。例如:
- "总结我关于Q3路线图的UpNote笔记。"
- "查找我提到Postgres调优的笔记并提取关键点。"
- "我上个月写了什么关于入职的内容?"
- "显示我最近5条笔记。"
- "创建一个标题为 '站立会议 6/4' 的笔记,包含今天的三个优先级。"
阅读、搜索、总结和创建都通过自然对话进行。
## 要求
- **macOS**:完全支持和验证。
- **Windows**:尽力而为。URL通过注册的方案处理程序启动,默认数据库路径在 `%APPDATA%\UpNote\` 下猜测。此路径**未经作者验证**——如果读取失败,请设置 `UPNOTE_LENS_DB`(见下文)。
- Python 3.10+(或仅 [uv](https://docs.astral.sh/uv/),它自带)。
- 已安装UpNote桌面应用程序。
## 安装和注册
### 🤖 让AI安装它(最简单)
给您的MCP客户端(Claude等)一个链接到 [`llms-install.md`](llms-install.md),它将运行步骤并为您设置一切。
### 🧑 自己安装
选择最适合您已有环境的选项。每个选项都包含如何在Claude中注册它。
> **Claude Desktop 配置文件**(在每个选项中引用):
> - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
> - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
#### 选项 1 — 使用 uv(推荐)
需要先安装 [uv](https://docs.astral.sh/uv/)(`brew install uv` 或 `curl -LsSf https://astral.sh/uv/install.sh | sh`)。之后**无需软件包安装步骤**——`uvx` 按需下载、缓存和运行 upnote-lens-mcp。
Claude Code:
```bash
claude mcp add upnote-lens -- uvx upnote-lens-mcp
```
Claude Desktop:
```json
{ "mcpServers": { "upnote-lens": { "command": "uvx", "args": ["upnote-lens-mcp"] } } }
```
#### 选项 2 — 使用 pip(如果没有 uv)
```bash
pip install upnote-lens-mcp
```
Claude Code:
```bash
claude mcp add upnote-lens -- upnote-lens-mcp
```
Claude Desktop:
```json
{ "mcpServers": { "upnote-lens": { "command": "upnote-lens-mcp" } } }
```
#### 选项 3 — 从 GitHub 通过 HTTPS(如果没有 pip)
当无法使用 PyPI/pip 时,直接从存储库使用 uv 安装。(还没有 uv?`curl -LsSf https://astral.sh/uv/install.sh | sh`。)
Claude Code:
```bash
claude mcp add upnote-lens -- uvx --from git+https://github.com/AwesomeHye/upnote-lens-mcp upnote-lens-mcp
```
Claude Desktop:
```json
{ "mcpServers": { "upnote-lens": { "command": "uvx", "args": ["--from", "git+https://github.com/AwesomeHye/upnote-lens-mcp", "upnote-lens-mcp"] } } }
```
## 工具
### 读取(查询本地数据库 → 返回实际文本)
| 工具 | 描述 |
|---|---|
| `search_notes(query, limit=20)` | 标题和正文的 substring 搜索。返回 id、标题、更新时间、摘要 |
| `get_note(note_id, include_html=False)` | 笔记的完整标题和正文(可选原始 HTML) |
| `list_recent(limit=20)` | 最近更新的笔记 |
| `list_notebooks()` | 带笔记数量和父级的笔记本 |
| `list_notes_in_notebook(notebook_id, limit=50)` | 笔记本中的笔记 |
| `list_tags()` | 带笔记数量的标签 |
| `list_notes_by_tag(tag_title, limit=50)` | 带有指定标签的笔记 |
### 写入(`upnote://` URL 方案)
| 工具 | 描述 |
|---|---|
| `create_note(title, content, notebook?, markdown=True, new_window=False)` | 创建笔记。默认情况下,`content` 是 Markdown。`notebook` 按名称匹配。**无法设置标签**(见下文) |
| `open_note(note_id, new_window=False)` | 在应用程序中打开现有笔记 |
| `open_notebook(notebook_id)` | 在应用程序中打开笔记本 |
> **标签限制**:UpNote 的 `note/new` URL 方案没有标签参数,并且正文中放置的哈希标签保持为纯文本,而不是成为真正的标签(仅当在编辑器中输入时才转换为标签)。如果需要标签,请在笔记创建后在应用程序中手动添加。
## 重写数据库路径
如果数据库不在默认位置(或在 Windows 上),请使用环境变量指向它:
```
UPNOTE_LENS_DB=/path/to/upnote.sqlite3
```
默认路径:
- macOS: `~/Library/Containers/com.getupnote.desktop/Data/Library/Application Support/UpNote/upnote.sqlite3`
- Windows(最佳猜测):`%APPDATA%\UpNote\upnote.sqlite3`
## 许可证
MIT。详见 [LICENSE](LICENSE)。URL 方案格式和写入侧的启动方法改编自 chadthornton/upnote-mcp(MIT)。