视频管理协议服务器

Memories.ai MCP Server是一个类型安全的模型上下文协议服务器,使AI代理能够与Memories.ai API交互,提供视频上传、搜索、聊天和管理功能。

  • by botirkhaltaev
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 botirk38/memcp

使用说明

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密钥可以通过两种方式提供:

  1. 环境变量(推荐):设置 MEMORIES_API_KEY 在你的 .env 文件
  2. 每个工具参数:包括 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 -运行带有自动修复功能的Biome
  • bun 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 -快速格式化器和linter
  • tsdown -现代TypeScript打包器
  • typescript -TypeScript编译器

建筑

类型安全

  • 综合类型:通过Zod运行时验证完全覆盖TypeScript
  • 基于模式的客户端:与预定义的API架构的Better-fetch集成
  • 请求/响应验证:所有API交互的自动验证

错误处理

  • 故障弱化:包含故障排除指南的全面错误消息
  • 重试逻辑:瞬态故障的指数回退
  • 验证错误:清除无效参数的反馈

演出

  • 流媒体支持:服务器发送实时聊天响应事件
  • 高效上传:通过MIME类型检测优化文件处理
  • 连接池:具有超时管理的可重用HTTP连接

许可证

MIT许可证-请参阅 许可证 详细信息文件

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

了解更多