使用说明
Memories.ai MCP服务器
一种类型安全的模型上下文协议(MCP)服务器,使AI代理能够与 备忘录.ai API,为人工智能应用提供全面的视频上传、搜索、聊天和管理功能。
概述
此MCP服务器使用模块化、类型安全的架构将AI代理与Memories.AI平台连接起来。它通过标准化的MCP接口与文件或URL的视频上传、语义搜索、AI驱动的视频聊天和全面的视频库管理无缝集成。
特性
- 🎥 视频上传 -通过MIME类型检测从本地文件或URL上传视频
- 🔍 语义搜索 -具有多种搜索类型的高级语义搜索(BY_VIDEO、BY_AUDIO、BY_CLIP)
- 💬 AI视频聊天 -使用会话管理流式传输视频内容对话
- 📊 视频管理 -通过分页和过滤列出、删除和检查视频状态
- 🔌 MCP兼容 -完全符合MCP规范的工具、资源和提示
- 🔐 安全认证 -灵活的API密钥认证(环境或查询参数)
- ⚡ 类型安全架构 -使用TypeScript、Zod验证和更好的fetch构建
- 🚀 流媒体响应 -聊天功能的实时服务器发送事件
- 🎯 智能提示 -用于视频分析工作流的预构建提示模板
先决条件
- Node.js 18+ 或 Bun运行时 (推荐)
- TypeScript 4.5+ 为了发展
- A. Memories.ai API密钥 (在这里买一个)
- 克劳德代码 或另一个MCP兼容客户端
安装
快速开始
# Clone the repository
git clone https://github.com/yourusername/memories-ai-mcp.git
cd memcp
# Install dependencies (Bun recommended)
bun install
# Build the project
bun run build
环境设置
创建一个 .env 文件:
# Get your API key from: https://memories.ai/app/login (API Settings page)
MEMORIES_API_KEY=your_memories_ai_api_key_here
# Optional: Override the default API base URL
# MEMORIES_API_BASE_URL=https://api.memories.ai
# Optional: Set log level for debugging
# LOG_LEVEL=info
API密钥配置
API密钥可以通过两种方式提供:
- 环境变量(推荐):设置
MEMORIES_API_KEY在你的.env文件 - 每个工具参数:包括
api_key作为单个工具调用中的可选参数
per工具参数优先于环境变量,允许灵活的多用户场景。
用法
添加到克劳德代码
将MCP服务器添加到Claude代码中:
claude mcp add memories-ai --env MEMORIES_API_KEY=your_key_here -- node /path/to/memories-ai-mcp/dist/index.js
或者使用内置的可执行文件:
claude mcp add memories-ai --env MEMORIES_API_KEY=your_key_here -- /path/to/memories-ai-mcp/dist/index.js
可用的MCP工具
服务器为AI代理提供了8个全面的工具:
upload-video-file
将视频文件从本地存储上传到Memories.ai
{
"file_path": "/path/to/video.mp4",
"unique_id": "user123",
"callback": "https://callback.url/webhook",
"video_name": "My Video"
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
upload-video-url
将视频从URL上传到Memories.ai
{
"url": "https://example.com/video.mp4",
"unique_id": "user123",
"callback": "https://callback.url/webhook",
"video_name": "My Video"
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
search-videos
使用具有高级选项的自然语言搜索上传的视频
{
"query": "people talking about AI",
"unique_id": "user123",
"search_type": "BY_VIDEO",
"folder_id": -1
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
chat-with-videos
就一个或多个视频进行流式AI对话
{
"video_nos": ["vid123", "vid456"],
"prompt": "Summarize the main points discussed",
"unique_id": "user123",
"session_id": "session123"
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
list-videos
获取带有过滤选项的已上传视频的分页列表
{
"unique_id": "user123",
"page": 1,
"size": 20,
"video_name": "optional_filter",
"video_no": "optional_id_filter",
"status": "PARSE"
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
delete-videos
从Memories.ai中删除一个或多个视频
{
"video_nos": ["vid123", "vid456"],
"unique_id": "user123"
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
check-video-status
检查上传视频的处理状态
{
"video_nos": ["vid123"],
"unique_id": "user123"
}
注:API密钥可以作为可选项提供 api_key 参数或通过环境变量
MCP资源
memories://docs
全面的API文档和平台功能
- 完整的端点参考
- 验证方法
- 费率限制和最佳做法
- 故障排除指南
memories://video/{videoNo}
特定视频的详细信息
- 视频元数据和状态
- 处理信息
- 使用示例
MCP提示
analyze-video-content
生成专门的视频内容分析提示
- 分析类型:总结、情感、对象、活动、成绩单、技术、教育
- 细节级别:简短、详细、全面
- 重点领域:对特定方面的可定制关注
- 上下文说明:每种分析类型的专业指导
build-search-query
智能搜索查询构建辅助
- 搜索方法:视觉、音频、组合内容定位
- 特异性水平:广泛、具体、精确的查询范围
- 上下文集成:包含其他搜索参数
- 查询优化:平衡的精确度和召回策略
video-workflow-helper
常见任务的分步工作流程指南
- 工作流类型:上传、搜索、分析、管理、集成、故障排除
- 经验水平:初级、中级、高级指导
- 最佳实践:可采取行动的建议和避免陷阱
- 工具集成:具体的MCP工具使用建议
发展
项目结构
memcp/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── types/
│ │ └── memories.ts # TypeScript types and Zod schemas
│ ├── clients/
│ │ └── memories.ts # Type-safe Memories.ai API client
│ ├── tools/
│ │ ├── upload.ts # Video upload tools
│ │ ├── search.ts # Video search tools
│ │ ├── chat.ts # Video chat tools
│ │ └── utils.ts # Video management tools
│ ├── resources/
│ │ └── index.ts # MCP resources (docs, video details)
│ ├── prompts/
│ │ └── index.ts # MCP prompts for workflows
│ └── utils/
│ ├── api-key.ts # API key management
│ └── mime-types.ts # MIME type utilities
├── dist/ # Built JavaScript files
├── memories-ai-docs/ # Local API documentation
├── package.json # Project configuration
├── tsdown.config.ts # Build configuration
├── tsconfig.json # TypeScript configuration
├── biome.jsonc # Code formatting configuration
└── .env # Environment variables
可用脚本
bun run dev-以监视模式启动开发服务器bun run build-使用tsdown构建项目bun run typecheck-运行TypeScript类型检查bun run check-运行Biome linter和格式化程序bun run check:fix-运行带有自动修复功能的Biomebun run start-启动内置服务器
建筑
bun run build
这将创建一个可执行文件 dist/index.js 使用适当的shebang文件直接执行。
api参考
Memories.ai API集成
服务器与Memories.ai API v1.2集成:
- 基本URL:
https://api.memories.ai - 认证:授权标头中的API密钥
- 支持格式:h264、h265、vp9、hevc
- 语言:英语(提示和聊天)
错误处理
服务器返回标准化的MCP错误响应:
- 身份验证失败
- API费率限制
- 无效参数
- 网络错误
例子
基本视频上传
// AI agent can use this tool automatically
await upload_video_url({
url: "https://example.com/presentation.mp4",
unique_id: "user123",
video_name: "Team Presentation"
});
语义视频搜索
// Search for specific content in videos
const results = await search_videos({
query: "discussion about quarterly goals",
unique_id: "user123",
search_type: "BY_VIDEO"
});
AI视频聊天
// Chat about video content
const response = await chat_with_videos({
video_nos: ["vid123"],
prompt: "What are the key action items mentioned?",
unique_id: "user123"
});
故障排除
常见问题
MCP服务器连接失败:
- 确保服务器成功构建
bun run build - 检查在环境变量中是否正确设置了API键
- 验证Node.js版本兼容性
API身份验证错误:
- 验证Memories.ai API密钥是否有效
- 检查MCP配置中的密钥是否设置正确
视频上传失败:
- 确保视频URL可公开访问
- 检查支持的视频格式(h264、h265、vp9、hevc)
- 验证是否超过速率限制
调试模式
运行调试日志:
claude --debug
检查MCP服务器登录:
/Users/[username]/Library/Caches/claude-cli-nodejs/[project-path]/
依赖项
运行时依赖关系
@modelcontextprotocol/sdk-用于TypeScript的MCP SDK@better-fetch/fetch-具有模式验证的类型安全HTTP客户端zod-运行时类型验证和模式解析
发展依赖性
@biomejs/biome-快速格式化器和lintertsdown-现代TypeScript打包器typescript-TypeScript编译器
建筑
类型安全
- 综合类型:通过Zod运行时验证完全覆盖TypeScript
- 基于模式的客户端:与预定义的API架构的Better-fetch集成
- 请求/响应验证:所有API交互的自动验证
错误处理
- 故障弱化:包含故障排除指南的全面错误消息
- 重试逻辑:瞬态故障的指数回退
- 验证错误:清除无效参数的反馈
演出
- 流媒体支持:服务器发送实时聊天响应事件
- 高效上传:通过MIME类型检测优化文件处理
- 连接池:具有超时管理的可重用HTTP连接
许可证
MIT许可证-请参阅 许可证 详细信息文件
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求