Welcome to the official Hugging Face MCP Server 🤗. Connect your LLM to the Hugging Face Hub and thousands of Gradio AI Applications.
Installing the MCP ServerFollow the instructions below to get started:
Install in Claude Desktop or claude.aiClick here to add the Hugging Face connector to your account.
Alternatively, navigate to https://claude.ai/settings/connectors, and add "Hugging Face" from the gallery.
Install in Claude CodeEnter the command below to install in Claude Code:
claude mcp add hf-mcp-server -t http https://huggingface.co/mcp?login
Then start claude
and follow the instructions to complete authentication.
claude mcp add hf-mcp-server \ -t http https://huggingface.co/mcp \ -H "Authorization: Bearer <YOUR_HF_TOKEN>"Install in VSCode
Click here to add the Hugging Face connector directly to VSCode. Alternatively, install from the gallery at https://code.visualstudio.com/mcp:
If you prefer to configure manually or use an auth token, add the snippet below to your mcp.json
configuration:
"huggingface": { "url": "https://huggingface.co/mcp", "headers": { "Authorization": "Bearer <YOUR_HF_TOKEN>" }Install in Cursor
Click here to install the Hugging Face MCP Server directly in Cursor.
If you prefer to use configure manually or specify an Authorization Token, use the snippet below:
"huggingface": { "url": "https://huggingface.co/mcp", "headers": { "Authorization": "Bearer <YOUR_HF_TOKEN>" }
Once installed, navigate to https://huggingface.co/settings/mcp to configure your Tools and Spaces.
Quick Guide (Repository Packages)This repo contains:
/mcp
) MCP Implementations of Hub API and Search endpoints for integration with MCP Servers./app
) An MCP Server and Web Application for deploying endpoints.The following transports are supported:
The Web Application and HTTP Transports start by default on Port 3000.
SSE and StreamableHTTP services are available at /sse
and /mcp
respectively. Although though not strictly enforced by the specification this is common convention.
Tip
The Web Application allows you to switch tools on and off. For STDIO, SSE and StreamableHTTP this will send a ToolListChangedNotification to the MCP Client. In StreamableHTTPJSON mode the tool will not be listed when the client next requests the tool lists.
You can run the MCP Server locally with either npx
or docker
.
npx @llmindset/hf-mcp-server # Start in STDIO mode npx @llmindset/hf-mcp-server-http # Start in Streamable HTTP mode npx @llmindset/hf-mcp-server-json # Start in Streamable HTTP (JSON RPC) mode
To run with docker:
docker pull ghcr.io/evalstate/hf-mcp-server:latest docker run --rm -p 3000:3000 ghcr.io/evalstate/hf-mcp-server:latest
All commands above start the Management Web interface on http://localhost:3000/. The Streamable HTTP server is accessible on http://localhost:3000/mcp. See [Environment Variables](#Environment Variables) for configuration options. Docker defaults to Streamable HTTP (JSON RPC) mode.
This project uses pnpm
for build and development. Corepack is used to ensure everyone uses the same pnpm version (10.12.3).
# Install dependencies pnpm install # Build all packages pnpm build
pnpm run clean
-> clean build artifacts
pnpm run build
-> build packages
pnpm run start
-> start the mcp server application
pnpm run buildrun
-> clean, build and start
pnpm run dev
-> concurrently watch mcp
and start dev server with HMR
Build the image:
docker build -t hf-mcp-server .
Run with default settings (Streaming HTTP JSON Mode), Dashboard on Port 3000:
docker run --rm -p 3000:3000 -e DEFAULT_HF_TOKEN=hf_xxx hf-mcp-server
Run STDIO MCP Server:
docker run -i --rm -e TRANSPORT=stdio -p 3000:3000 -e DEFAULT_HF_TOKEN=hf_xxx hf-mcp-server
TRANSPORT
can be stdio
, sse
, streamingHttp
or streamingHttpJson
(default).
The different transport types use the following endpoints:
/sse
(with message endpoint at /message
)/mcp
(regular or JSON mode)The sse
and streamingHttp
transports are both stateful - they maintain a connection with the MCP Client through an SSE connection. When using these transports, the following configuration options take effect:
MCP_CLIENT_HEARTBEAT_INTERVAL
30000ms How often to check SSE connection health MCP_CLIENT_CONNECTION_CHECK
90000ms How often to check for stale sessions MCP_CLIENT_CONNECTION_TIMEOUT
300000ms Remove sessions inactive for this duration MCP_PING_ENABLED
true Enable ping keep-alive for sessions MCP_PING_INTERVAL
30000ms Interval between ping cycles
The server respects the following environment variables:
TRANSPORT
: The transport type to use (stdio, sse, streamableHttp, or streamableHttpJson)DEFAULT_HF_TOKEN
: ⚠️ Requests are serviced with the HF_TOKEN received in the Authorization: Bearer header. The DEFAULT_HF_TOKEN is used if no header was sent. Only set this in Development / Test environments or for local STDIO Deployments. ⚠️stdio
transport, HF_TOKEN
is used if DEFAULT_HF_TOKEN
is not set.HF_API_TIMEOUT
: Timeout for Hugging Face API requests in milliseconds (default: 12500ms / 12.5 seconds)USER_CONFIG_API
: URL to use for User settings (defaults to Local front-end)MCP_STRICT_COMPLIANCE
: set to True for GET 405 rejects in JSON Mode (default serves a welcome page).AUTHENTICATE_TOOL
: whether to include an Authenticate
tool to issue an OAuth challenge when calledSEARCH_ENABLES_FETCH
: When set to true
, automatically enables the hf_doc_fetch
tool whenever hf_doc_search
is enabledRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4