yliyun-mcp-server
Exposes cloud drive file search, read/write, sharing, tagging, and more via the standardized MCP protocol, enabling AI clients like Claude Desktop and Cursor to interact with 一粒云 storage.
README
一粒云 MCP Server (V1)
标准化 MCP 协议暴露云盘文件搜索、读写、分享、标签等能力。 支持 Claude Desktop、Codex、Cursor、MateClaw 等所有 MCP 兼容 AI 客户端。
V1 策略:全用现有云盘 API,云盘侧 zero-change。MCP Server 侧做文本提取和格式转换。 V2 将新增专用 API(text-content / write-content / search 等)替代降级方案。
快速开始
前提条件
- Node.js ≥ 22
- pnpm ≥ 9
- 一粒云云盘服务运行中(默认
http://localhost:8080)
安装与启动
# 1. 安装依赖
pnpm install
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,至少配置:
# YLIYUN_API_BASE_URL=http://localhost:8080
# MCP_API_KEYS=your-secret-key-here
# 3. 启动开发服务器(热重载)
pnpm dev
服务器启动后:
- MCP 端点:
http://localhost:18100/mcp - 健康检查:
http://localhost:18100/health
验证 MCP Server
# 使用 MCP Inspector 测试
npx @modelcontextprotocol/inspector \
--transport streamable-http \
--url http://localhost:18100/mcp \
--headers '{"Authorization": "Bearer your-api-key"}'
配置 AI 客户端
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"yliyun": {
"type": "streamable-http",
"url": "https://ai.example.com/mcp",
"headers": {
"Authorization": "Bearer <你的API Key>"
}
}
}
}
Codex
编辑 ~/.codex/mcp.json:
{
"mcpServers": {
"yliyun": {
"transport": "streamable-http",
"url": "https://ai.example.com/mcp",
"headers": {
"Authorization": "Bearer <你的API Key>"
}
}
}
}
Cursor
编辑 ~/.cursor/mcp.json:
{
"mcpServers": {
"yliyun": {
"transport": "streamable-http",
"url": "https://ai.example.com/mcp",
"headers": {
"Authorization": "Bearer <你的API Key>"
}
}
}
}
MateClaw(内部集成)
在 MateClaw Admin → MCP Server 管理中添加:
name: 一粒云云盘
transport: streamable_http
url: http://yliyun-mcp:18100/mcp
headers:
X-Internal-Service: mateclaw
X-Forward-User-Id: ${currentUserId}
X-Forward-Tenant-Id: ${currentTenantId}
disclosureTier: full
MCP Tools 列表(V1 — 14 个)
核心工具(12 个)
| Tool | 说明 | V1 云盘 API |
|---|---|---|
file.search |
搜索文件 | GET /cloud-drive/file/list?keyword=&recursive=true ✅ |
file.read |
读取文件内容 | GET /cloud-drive/file/download + MCP Server 本地提取文本 |
file.list |
浏览目录 | GET /cloud-drive/file/list ✅ |
file.create |
创建文件/目录 | POST /cloud-drive/file/upload + /folder ✅ |
file.save |
保存更新 | POST /cloud-drive/file-version/upload ✅ |
file.move |
移动/重命名 | PUT /cloud-drive/file/move + /rename ✅ |
file.delete |
删除(回收站) | DELETE /cloud-drive/file/delete ✅ |
file.tag |
标签管理 | PUT /cloud-drive/file-tag/rel/save ✅ |
file.share_link |
创建分享 | POST /cloud-drive/share-link/create ✅ |
file.versions |
版本历史 | GET /cloud-drive/file-version/list ✅ |
space.context |
空间上下文 | GET /cloud-drive/space/dept-list(降级) |
user.profile |
用户信息 | 认证上下文(降级) |
上下文窗口辅助工具(2 个)
| Tool | 说明 | 解决什么问题 |
|---|---|---|
file.grep |
搜索文件内容(不加载全文) | 大文件内搜索关键词 → 只返回匹配行,省窗口 |
file.summarize |
获取文件结构摘要 | 快速判断文件相关性 → 避免"读了才发现无关" |
开发
# 运行测试
pnpm test
# 类型检查
pnpm typecheck
# 代码检查
pnpm lint
# MCP Inspector 手动测试
pnpm inspect
项目结构
src/
├── index.ts # 服务入口
├── server.ts # FastMCP Server 配置
├── config.ts # 环境变量配置
├── auth/ # 认证模块(Ticket/API Key/内部服务)
├── cloud-api/ # 云盘 HTTP API 客户端
├── tools/ # MCP Tool 实现(12个)
├── schemas/ # Zod Schema 定义
├── errors.ts # 结构化错误定义
└── middleware/ # 速率限制、幂等控制、审计日志
Docker 部署
# 构建
docker build -t yliyun-mcp-server:latest .
# 运行
docker run -d --name yliyun-mcp \
-p 18100:18100 \
-e YLIYUN_API_BASE_URL=http://yliyun-cloud:8080 \
-e MCP_API_KEYS=your-production-key \
yliyun-mcp-server:latest
云盘依赖(V1)
V1 全用现有 API,云盘 zero-change。需确认以下 API 可用:
| 确认项 | API | 用途 |
|---|---|---|
| Token 生成 | POST /extends/user-token/get |
Ticket → OAuth2 Token |
| Token 校验 | POST /system/oauth2/check-token |
每次请求验权 |
| 文件列表 | GET /cloud-drive/file/list |
浏览 + 搜索 |
| 文件预览 | GET /cloud-drive/file/preview |
元数据 |
| 文件下载 | GET /cloud-drive/file/download |
下载文件(MCP Server 提取文本) |
| 文件上传 | POST /cloud-drive/file/upload |
创建文件 |
| 文件夹 | POST /cloud-drive/file/folder |
创建目录 |
| 重命名 | PUT /cloud-drive/file/rename |
重命名 |
| 删除 | DELETE /cloud-drive/file/delete |
移到回收站 |
| 移动 | PUT /cloud-drive/file/move |
移动文件 |
| 外链 | POST /cloud-drive/share-link/create |
创建分享 |
| 标签 | PUT /cloud-drive/file-tag/rel/save |
文件标签 |
| 版本 | GET /cloud-drive/file-version/list |
版本历史 |
| 版本上传 | POST /cloud-drive/file-version/upload |
文件更新 |
| 空间 | GET /cloud-drive/space/dept-list |
空间列表 |
V2 云盘 API 补全计划
V1 稳定后,云盘侧新增以下 API 来提升 MCP Server 性能:
| API | 说明 |
|---|---|
GET /cloud-drive/file/text-content |
云盘侧文本提取,MCP Server 不再需要下载文件 |
POST /cloud-drive/file/write-content |
文本直写,MCP Server 不再需要构造 multipart |
GET /cloud-drive/file/search |
全局全文搜索 |
GET /cloud-drive/space/context |
空间统计和上下文 |
GET /extends/user/profile |
用户信息和存储统计 |
License
UNLICENSED — 内部项目
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。