Jotify Moment MCP Server
by daocatt
README.md
# Jotify Moment MCP Server
[](https://www.npmjs.com/package/jotify-moment-mcp)
[](LICENSE)
Model Context Protocol (MCP) server for **[Jotify Moment](https://github.com/daocatt/jotify-moment)**.
让 **Claude Desktop**、**Cursor**、**Antigravity**、**OpenCode** 等任意支持 MCP 协议的 AI 客户端,通过自然语言免交互地在你的 Jotify Moment 平台上:
- 📸 **上传本地图片/音视频或 URL 资源**(支持批量与单张上传)
- ✍️ **发布 Moment 动态**(完整支持 Markdown 与富媒体配图)
- 🔍 **检索与查询** 平台最近发布的动态
- 👤 **校验 Token 鉴权** 并获取当前用户信息
---
## 🚀 快速接入配置
无需手动 clone 或安装代码,借助 `npx` 即可直接免安装运行。
### 🔑 第一步:获取 API 密钥
1. 登录你的 Jotify Moment 网站。
2. 进入 **「个人设置」(`/settings`)** -> **「API 密钥 (PAT)」**。
3. 点击 **「生成新密钥」**,勾选权限(如 `posts:write`、`media:upload`),复制生成的 Token(格式如 `jotify_pat_...`)。
---
### 💻 第二步:配置到各大 AI 工具
#### 1. Claude Desktop
编辑你的 `claude_desktop_config.json`:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"jotify-moment": {
"command": "npx",
"args": [
"-y",
"jotify-moment-mcp"
],
"env": {
"JOTIFY_BASE_URL": "https://your-moment-domain.com",
"JOTIFY_API_TOKEN": "jotify_pat_xxxxxxxxxxxxxxxx"
}
}
}
}
```
#### 2. Cursor
在 Cursor Settings -> **Features** -> **MCP Servers** -> **Add New MCP Server**:
- **Name**: `jotify-moment`
- **Type**: `command`
- **Command**: `npx -y jotify-moment-mcp`
- **Environment Variables**:
- `JOTIFY_BASE_URL`: `https://your-moment-domain.com`
- `JOTIFY_API_TOKEN`: `jotify_pat_xxxxxxxxxxxxxxxx`
#### 3. Antigravity / Gemini / 自定义 MCP Client
在项目的 `mcp_config.json` 或相应配置文件中添加:
```json
{
"mcpServers": {
"jotify-moment": {
"command": "npx",
"args": ["-y", "jotify-moment-mcp"],
"env": {
"JOTIFY_BASE_URL": "https://your-moment-domain.com",
"JOTIFY_API_TOKEN": "jotify_pat_xxxxxxxxxxxxxxxx"
}
}
}
}
```
---
## 🧰 提供的 MCP Tools
| 工具名称 (Tool Name) | 功能说明 | 核心入参 (Parameters) |
| :--- | :--- | :--- |
| **`jotify_get_profile`** | 验证 API Token 并获取当前登录用户信息(昵称、Slug、角色等) | *无* |
| **`jotify_upload_media`** | 上传单个媒体文件(支持本地路径 `filePath`、远程 `url` 或 `base64Data`) | `filePath` 或 `url` 或 `base64Data` |
| **`jotify_upload_batch`** | 一次性批量上传多张图片/多媒体,减少多轮交互延迟 | `filePaths` 或 `items` 列表 |
| **`jotify_create_post`** | 在 Jotify Moment 发布一条图文动态(正文支持 Markdown) | `content` (必填), `mediaUrls` (可选) |
| **`jotify_list_recent_posts`** | 获取平台最近发布的公开动态列表 | `limit` (默认 10) |
---
## 💬 自然语言交互示例
配置完成后,你可以直接在 AI 对话框中输入:
- 📝 **文字动态**:
> *"帮我发一条 jotify:今天攻克了一个棘手的 bug,下班喝杯咖啡庆祝一下 ☕"*
- 🖼️ **图文结合**:
> *"把桌面上的 `./charts/result.png` 上传并发到 jotify,配文写一下今天的实验结论分析"*
- 🎨 **AI 生图并自动发布**:
> *"帮我画一张赛博朋克风格的雨夜小巷壁纸,然后直接发布到我的 jotify moment 动态"*
- 🔍 **查看与自检**:
> *"检查一下我的 jotify 登录状态"*
> *"看看我最近在 jotify 发了什么动态"*
---
## 🛠️ 本地开发与调试
```bash
# 克隆仓库
git clone git@github.com:daocatt/jotify-moment-mcp.git
cd jotify-moment-mcp
# 安装依赖并构建
npm install
npm run build
# 本地调试运行
JOTIFY_BASE_URL="https://your-domain.com" JOTIFY_API_TOKEN="your_token" node dist/index.js
```
---
## 📄 开源协议
[MIT License](LICENSE)
TDQS
A4/5.0
Scored across 5 tools
Disambiguation5/5
每个工具针对明确不同的操作:获取个人资料、上传单个媒体、批量上传、创建动态、查询最近动态。没有功能重叠,工具边界清晰。
Naming Consistency5/5
所有工具均采用 'jotify_' 前缀加动词短语的命名模式,如 jotify_get_profile、jotify_upload_media,风格统一且动词准确,便于预测。
Tool Count5/5
5个工具覆盖了从认证、媒体上传(单个和批量)、发帖到检索的核心流程,规模适中,每个工具都有明确用途,不冗余也不缺失。
Completeness4/5
覆盖了获取资料、上传、发帖和查询最近动态的完整发布链路,但缺少编辑/删除帖子或查看单个动态的操作为美中不足,不过对主要使用场景已足够。
Maintenance
ActivityMaintained
ResponsivenessNo issues