Token导航 LogoToken导航TokenDH.com
xbookmark (Isezen) logo
安全风控stdio官方级别未说明来源级核验

xbookmark (Isezen)

MCP Server

@modelcontextprotocol/inspector

XBookmark是一个将X(Twitter)书签同步到Obsidian库的多账户服务,支持OAuth 2.0认证和结构化JSON存储。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude安全Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

isezen

提供方

isezen

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector .venv/bin/xbookmark-mcp

详细介绍

XBookmark

将X(推特)书签同步到黑曜石保险库的MCP服务器。 多帐户支持、OAuth 2.0 PKCE身份验证和结构化JSON存储。

特性

  • 多账户支持 --通过个人资料创建无限X帐户
  • 一键OAuth登录 --浏览器打开,回调被捕获,令牌自动保存
  • 集中存储 --将所有书签放在一个文件夹中 bookmarks.json (原子写入)
  • 线程检测 --多推特线程的自动线程获取
  • 跨帐户重复数据删除 --来自2个帐户的同一推文书签=1条
  • 费率限制处理 --具有自动重试功能的顺序处理
  • 两步工作流程 --先同步,后删除(测试安全)
  • 人工智能驱动的摘要/xbookmark-digest Claude分析和分类的代码技能

可用工具

工具说明
认证
xbookmark_auth_login(profile)一键OAuth——浏览器+回调+令牌交换
xbookmark_auth_url(profile)获取OAuth授权URL(手动回退)
xbookmark_auth_callback(code, state)完全授权(手动回退)
xbookmark_auth_status(profile)检查身份验证状态(无=所有配置文件)
xbookmark_auth_logout(profile)清除存储的令牌
xbookmark_list_profiles()列出所有配置文件和身份验证状态
同步
xbookmark_sync(profile)将书签同步到 bookmarks.json
xbookmark_delete(profile, tweet_ids, limit)从X删除已同步的书签(选择性或全部)
xbookmark_list(profile)列出来自X API的书签
xbookmark_get_tweet(tweet, profile)通过ID或URL(带线程)获取单条推文
xbookmark_sync_all()通过重复数据删除同步所有配置文件

快速安装(Claude代码插件)

将XBookmark与Claude Code结合使用的最简单方法:

  1. 设置X API凭据 (添加到 ~/.bashrc~/.zshrc):
   export X_CLIENT_ID="your_oauth2_client_id"
   export X_CLIENT_SECRET="your_client_secret"          # optional
   export X_REDIRECT_URI="http://localhost:8080/callback" # optional
  1. 安装插件 (克劳德法典):
   /plugin marketplace add isezen/XBookmarks
   /plugin install xbookmark@XBookmarks
  1. 重新启动克劳德代码。 MCP服务器在首次启动时自动安装。
  1. 使用它:
   /xbookmark:digest                          # Analyze all bookmarks
   /xbookmark:digest https://x.com/.../12345  # Process single tweet

开发人员安装

先决条件

  • Python 3.10+
  • 紫外线 包管理器(推荐)或pip
  • 启用OAuth 2.0的X开发人员帐户

设置

  1. 克隆并安装
   git clone git@github-isezen:isezen/XBookmarks.git
   cd XBookmarks
   uv sync
  1. 设置环境变量
   cp .env.example .env

编辑 .env 使用您的X API证书:

   X_CLIENT_ID="your_client_id"
   X_CLIENT_SECRET="your_client_secret"
   X_REDIRECT_URI="http://localhost:8080/callback"
  1. 创建配置 (可选--默认值适用于大多数设置)
   mkdir -p ~/.config/XBookmark
   cat > ~/.config/XBookmark/config.json  **备注**:书签端点需要 **基本层** 访问或按使用次数付费积分。

## 与MCP客户端一起使用

### 克劳德代码/克劳德桌面

添加到MCP设置中:

{ "mcpServers": { "xbookmark": { "command": "/path/to/XBookmarks/.venv/bin/xbookmark-mcp" } } }


### 工作流程

**第一步:身份验证**
"Login to my X account"

代理人打电话来 `xbookmark_auth_login()` --浏览器打开,您授权,令牌保存。

对于多个帐户,请使用配置文件:
"Login to my work X account as 'work'"

**第二步:同步书签**
"Sync my X bookmarks"

代理人打电话来 `xbookmark_sync_all()` 其中:

- 从所有经过身份验证的配置文件下载
- 跨帐户进行重复数据消除
- 保存到 `XBookmarks/bookmarks.json`
- 不从X中删除

**步骤3:处理和分类**

使用 `/xbookmark-digest` 技能(或手动):

1. 从以下位置读取书签条目 `bookmarks.json`
1. 分析推特内容,获取链接的网址
1. 在黑曜石主题文件夹中创建丰富的笔记
1. 跟踪已处理的推文 `index.json`

**步骤4:从X中删除** (可选)
"Delete processed bookmarks from X"

代理人打电话来 `xbookmark_delete()` (没有profile参数,这会删除
从所有配置文件中)并清理 `bookmarks.json`.

## 数据存储

### 书签.json

所有已同步的书签都存储在 `XBookmarks/bookmarks.json` 作为一个扁平的JSON数组。
每个条目都包含推文文本、作者信息、实体、媒体、帖子回复,
以及源配置文件。写入时使用原子tmp,然后重命名以确保崩溃安全。

### index.json

跟踪哪些推文已被摘要技能处理。
地图 `tweet_id` 到 `{path, date, tags}` 黑曜石交叉引用。

## 发展

### 快速命令

Install with dev dependencies

uv sync --extra dev

Run all tests

.venv/bin/pytest

Run single test

.venv/bin/pytest tests/test_config.py::TestLoadConfig -v

Coverage report

.venv/bin/pytest --cov=src/xbookmark

Lint & format

.venv/bin/ruff check . && .venv/bin/ruff format .

Run MCP server

.venv/bin/xbookmark-mcp

Debug with MCP Inspector

npx @modelcontextprotocol/inspector .venv/bin/xbookmark-mcp


### 项目结构

XBookmarks/ ├── .claude-plugin/ │ └── marketplace.json # Claude Code plugin marketplace ├── plugins/xbookmark/ # Claude Code plugin │ ├── .claude-plugin/plugin.json │ ├── .mcp.json # MCP server config │ ├── commands/ │ │ └── digest.md # AI digest skill (source of truth) │ ├── hooks/hooks.json # SessionStart auto-install hook │ └── scripts/ensure-installed.sh ├── .claude/commands/ │ └── xbookmark-digest.md # Symlink → plugins/xbookmark/commands/digest.md ├── src/xbookmark/ │ ├── config.py # Config loading, lazy singleton │ ├── mcp/ │ │ ├── server.py # FastMCP entry point │ │ ├── tools_auth.py # 6 OAuth 2.0 PKCE auth tools │ │ └── tools_sync.py # 6 sync/delete/list tools │ ├── x_api/ │ │ ├── auth.py # OAuth 2.0 PKCE flow, token storage │ │ ├── callback_server.py # Local HTTP server for one-click login │ │ ├── client.py # Async HTTP client with retry │ │ ├── bookmarks.py # Bookmark CRUD (X API v2) │ │ └── tweets.py # Tweet/thread fetching │ └── obsidian/ │ └── writer.py # Markdown generation, JSON I/O ├── tests/ │ ├── conftest.py # Shared fixtures │ ├── test_config.py │ ├── test_writer.py │ └── test_tools.py ├── docs/ # Architecture & API docs ├── pyproject.toml ├── CLAUDE.md # Claude Code guidance └── README.md


### 测试

- 框架:pytest with `asyncio_mode = "auto"`
- HTTP模拟: `respx` 图书馆
- 固定装置: `tests/conftest.py` (mock_config、mock_auth_manager、mock_tweet等)
- 按模块分类组织的测试

### 代码的风格

- Python 3.10+,规则:E/F/I/N/W/UP
- 现代风格提示: `str | None`, `list[str]`
- 多行结构中的双引号和尾随逗号

## 许可证

麻省理工学院

目录标签

目录标签

PythonClaude安全书签同步本地部署多账户支持OAuth认证Obsidian集成JSON存储

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP