|
|
6 mesi fa | |
|---|---|---|
| .. | ||
| README.cn.md | 6 mesi fa | |
| README.md | 6 mesi fa | |
| init.go | 6 mesi fa | |
[!TIP]
您可以直接在 https://hf.co/mcp 访问和配置 Hugging Face MCP 服务,包括 Gradio spaces。
此项目已被官方的 Hugging Face MCP Server 和 Gradio MCP Endpoints 所取代。
或者您可以在本地运行 hf-mcp-server 作为 STDIO 服务器,或者使用对 SSE、流式 HTTP 和流式 HTTP JSON 模式的强大支持。这还运行一个本地 UI 来选择工具和端点,并且也支持
ToolListChangedNotifications。
在这里阅读介绍 llmindset.co.uk/resources/mcp-hfspace/
连接到 Hugging Face Spaces,只需最少的设置 - 只需添加您的 spaces 即可开始!
默认情况下,它连接到 black-forest-labs/FLUX.1-schnell,为 Claude Desktop 提供图像生成功能。
[!TIP] Gradio 5.28 现在通过 SSE 集成了 MCP 支持:https://huggingface.co/blog/gradio-mcp。检查您的目标 Space 是否启用了 MCP!
NPM 包名为 @llmindset/mcp-hfspace。
为您的平台安装最新版本的 NodeJS,然后将以下内容添加到您的 claude_desktop_config.json 文件的 mcpServers 部分:
"mcp-hfspace": {
"command": "npx",
"args": [
"-y",
"@llmindset/mcp-hfspace"
]
}
请确保您使用的是 Claude Desktop 0.78 或更高版本。
这将为您启动一个图像生成器。
在参数中提供 HuggingFace spaces 列表。mcp-hfspace 将找到最合适的端点并自动配置它以供使用。下面提供了一个示例 claude_desktop_config.json(见安装部分)。
默认情况下,当前工作目录用于文件上传/下载。在 Windows 上,这是位于 \users\<username>\AppData\Roaming\Claude\<version.number\ 的读/写文件夹,在 MacOS 上是只读根目录:/。
建议覆盖此设置并设置一个工作目录来处理图像和其他基于文件的内容的上传和下载。指定 --work-dir=/your_directory 参数或 MCP_HF_WORK_DIR 环境变量。
以下是使用现代图像生成器、视觉模型和文本转语音,并设置工作目录的配置示例:
"mcp-hfspace": {
"command": "npx",
"args": [
"-y",
"@llmindset/mcp-hfspace",
"--work-dir=/Users/evalstate/mcp-store",
"shuttleai/shuttle-jaguar",
"styletts2/styletts2",
"Qwen/QVQ-72B-preview"
]
}
要使用私有 spaces,请使用 --hf-token=hf_... 参数或 HF_TOKEN 环境变量提供您的 Hugging Face Token。
如果需要,可以运行多个服务器实例来使用不同的工作目录和令牌。
默认情况下,服务器在 Claude Desktop 模式 下运行。在此模式下,图像在工具响应中返回,而其他文件保存在工作文件夹中,它们的文件路径作为消息返回。如果使用 Claude Desktop 作为客户端,这通常会提供最佳体验。
URL 也可以作为输入提供:内容会传递给 Space。
有一个"可用资源"提示,它向 Claude 提供工作目录中的可用文件和 MIME 类型。这目前是管理文件的最佳方式。
我们将使用 Claude 比较由 shuttleai/shuttle-3.1-aesthetic 和 FLUX.1-schnell 创建的图像。图像保存到工作目录,同时包含在 Claude 的上下文窗口中 - 因此 Claude 可以使用其视觉功能。
我们将使用 merve/paligemma2-vqav2 space 链接 来查询图像。在这种情况下,我们指定工作目录中可用的文件名:我们不想将图像直接上传到 Claude 的上下文窗口。因此,我们可以提示 Claude:
use paligemma to find out who is in "test_gemma.jpg" -> 文本输出:david bowie

如果您要上传某些内容到 Claude 的上下文,请使用回形针附件按钮,否则指定文件名让服务器直接发送。
我们也可以提供 URL。例如:use paligemma to detect humans in https://e3.365dm.com/24/12/1600x900/skynews-taylor-swift-eras-tour_6771083.jpg?20241209000914 -> 图像中检测到一个人 - 舞台上的 Taylor Swift。
在 Claude Desktop 模式 下,音频文件保存在 WORK_DIR 中,并通知 Claude 创建。如果不在桌面模式下,文件作为 base64 编码资源返回给客户端(如果支持嵌入式音频附件则很有用)。
在这里,我们使用 hf-audio/whisper-large-v3-turbo 来转录一些音频,并使其对 Claude 可用。
在此示例中,我们为 microsoft/OmniParser 指定要使用的文件名,并获得返回的注释图像和 2 个单独的文本片段:描述和坐标。使用的提示是 use omniparser to analyse ./screenshot.png 和 use the analysis to produce an artifact that reproduces that screen。DawnC/Pawmatch 在这方面也很出色。
在此示例中,Claude 为 Qwen 设置了一些推理谜题,并提出后续问题以进行澄清。
如果需要,您可以通过将其添加到 spacename 来指定特定的 API 端点。因此,不是传入 Qwen/Qwen2.5-72B-Instruct,您应该使用 Qwen/Qwen2.5-72B-Instruct/model_chat。
这可以通过选项 --desktop-mode=false 或环境变量 CLAUDE_DESKTOP_MODE=false 来禁用。在这种情况下,内容作为嵌入式 Base64 编码资源返回。
一些推荐尝试的 spaces:
为每个 Space 生成提示,并提供输入机会。请记住,Spaces 通常没有配置特别有用的标签等。Claude 实际上非常擅长解决这个问题,工具描述非常丰富(但在 Claude Desktop 中不可见)。
返回 WORK_DIR 中的文件列表,并方便地将名称返回为"使用文件..."文本。如果您想向 Claude 的上下文添加某些内容,请使用回形针 - 否则为 MCP 服务器指定文件名。Claude 不支持从上下文内传输资源。
使用 HuggingFace 令牌支持私有 Spaces。令牌用于下载和保存生成的内容。
要与 Claude Desktop 一起使用,请添加服务器配置:
在 MacOS 上:~/Library/Application Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-hfspace": {
"command": "npx",
"args": [
"-y",
"@llmindset/mcp-hfspace",
"--work-dir=~/mcp-files/ 或 x:/temp/mcp-files/",
"--HF_TOKEN=HF_{可选令牌}",
"Qwen/Qwen2-72B-Instruct",
"black-forest-labs/FLUX.1-schnell",
"space/example/specific-endpint"
"(... 等等)"
]
}
}
}
app.py 中更改函数装饰器 @spaces.GPU(duration=20) 以在运行作业时请求更少的配额。