article
README
🚀 Clarifai MCP 服务器项目概述
本项目的 Clarifai MCP 服务器提供了一系列工具和资源接口,实现了从图像生成到内容检索的完整功能,通过 MCP 协议对外提供服务,能满足用户在图像生成、搜索等多方面的需求。
✨ 主要特性
- 具备多种工具接口,可实现图像生成、根据本地文件路径或网络 URL 搜索图像等功能。
- 提供资源接口,支持不同搜索类型和过滤条件,能根据资源 ID 返回具体资源信息。
- 架构清晰,各模块分工明确,从启动入口、配置管理到通信逻辑、API 调用等都有相应的模块负责。
📚 详细文档
工具接口
generate_image
- 功能描述:使用给定的文字生成一张图像。
- 输入参数:
prompt(string):文本提示,例如 "a beautiful sunset over the mountains"。width(int, 可选):图像宽度,默认为 512。height(int, 可选):图像高度,默认为 512。quality(string, 可选):图像质量,可选值包括 "standard", "high", "ultra"。
- 输出结果:返回生成的图像文件路径。
clarifai_image_by_path
- 功能描述:根据本地文件路径搜索 Clarifai 平台上的图像。
- 输入参数:
filepath(string):图像文件的本地路径。width(int, 可选):搜索结果的宽度要求。height(int, 可选):搜索结果的高度要求。
- 输出结果:返回匹配的图像列表。
clarifai_image_by_url
- 功能描述:根据网络 URL 地址搜索 Clarifai 平台上的图像。
- 输入参数:
url(string):包含图像的网络地址。width(int, 可选):搜索结果的宽度要求。height(int, 可选):搜索结果的高度要求。
- 输出结果:返回匹配的图像列表。
资源接口
资源列表请求(resources/list)
- 支持通过 URI 参数指定不同的搜索类型:
/search/text:文本内容搜索。/search/url:网络链接搜索。
- 支持通过查询参数指定过滤条件,例如
width,height,format。
资源读取请求(resources/read)
- 根据给定的资源 ID 返回具体的资源信息。
🔧 技术细节
项目架构图解
cmd/server: 启动入口,初始化配置、注册处理器
config: 处理命令行参数,存储 PAT 和输出路径等配置
mcp: 负责 MCP 协议的通信逻辑,在标准输入/输出上处理 JSON - RPC 请求
clarifai: 封装 gRPC 客户端逻辑,用于调用 Clarifai API,并包含认证功能(添加 PAT 到请求头)
tools: 实现各个 MCP 工具处理器(如 generate_image、clarifai_image_by_path 等),使用 clarifai 客户端完成具体操作
resources: 处理 MCP 资源相关请求(如 resources/list 和 resources/read),调用 Clarifai API 获取数据
utils: 提供辅助功能,例如文件系统操作
请求流程图解
- 客户端向服务器发送 JSON - RPC 请求。
- 服务器解析请求并根据类型分发到不同处理器。
- 处理器调用 Clarifai API 执行具体操作。
- 结果返回给客户端。
系统架构和组件关系
cmd/server -> 负责启动和初始化配置
config -> 存储运行时配置
mcp -> 通信层,处理协议细节
clarifaiclient -> 封装 API 调用逻辑
tools -> 处理具体工具请求(如图像生成)
resources -> 处理资源相关请求(如搜索)
utils -> 辅助功能(如文件操作)
通过以上模块和接口,该系统实现了从图像生成到内容检索的完整功能,并通过 MCP 协议对外提供服务。
Scan to join WeChat group