AI媒体生成服务器

一个通过FAL模型目录为LLMs提供图像生成、编辑、视频创建和音频处理等功能的MCP服务器,具有持久化偏好设置和缓存模式。

  • by jacobshu62
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jacobshu62/FAL-MCP

使用说明

fal_mcp

MCP服务器使llms能够通过FAL的模型目录生成图像、编辑图像、创建视频、处理音频等,并具有持久的首选项和缓存的模式。

看 docs/DESIGN.md 用于架构、工具规范和工作流示例。

设置

npm install
npm run build

设置你的fal.ai API密钥(SDK会自动读取):

export FAL_KEY="your-fal-api-key"

使用克劳德代码注册服务器:

claude mcp add --transport stdio fal -- node /absolute/path/to/fal_mcp/build/index.js

或者通过以下方式在项目范围内添加 .mcp.json:

{
  "mcpServers": {
    "fal": {
      "command": "node",
      "args": ["/absolute/path/to/fal_mcp/build/index.js"],
      "env": { "FAL_KEY": "${FAL_KEY}" }
    }
  }
}

工具

工具 目的
generate 运行一个fal.ai模型。通过 category (image, edit, video, utility, audio)使用排名靠前的偏好,或明确的 model_id 绕过偏好。
search_models 按关键字和/或类型搜索fal.ai的模型目录。
get_model_schema 获取特定模型ID的输入/输出模式
upload_file 将本地文件上传到fal.ai存储,并获取可用作模型输入的URL。
update_preferences 管理按类别排列的模型列表、体验日志和库存储(list/remove 统计和清理)。
manage_subjects 使用本地参考图像+每张照片的描述注册命名主题(人/角色),以便在会话中一致生成。

画廊

生成的媒体会自动保存到磁盘并推送到本地浏览器库(在MCP服务器旁边启动的一个小型HTTP服务器 127.0.0.1随机端口)。浏览器在第一代上打开;每个 generate 响应包括a gallery_url。首选项存储在 ~/.fal_mcp/preferences.json;中的库元数据 ~/.fal_mcp/gallery.json.

项目结构

src/
  index.ts                  # Server entry point — registers tools, starts gallery
  tools/
    generate.ts              # generate
    search-models.ts         # search_models
    get-model-schema.ts      # get_model_schema
    upload-file.ts           # upload_file
    update-preferences.ts    # update_preferences (+ gallery management)
    subjects.ts              # manage_subjects
  lib/
    fal-client.ts            # Configured fal.ai client
    preferences.ts           # Read/write ~/.fal_mcp/preferences.json
    gallery.ts                # Local gallery HTTP server + storage
  gallery/                   # Static gallery frontend (copied to build/ on compile)
build/                       # Compiled output (npm run build)

发展

npm run dev     # tsc --watch
npm start        # node build/index.js

没有自动测试套件--通过运行服务器来验证更改(node build/index.js)并通过Claude Code调用工具(claude mcp list 确认注册)。