Implements Hub API and Search endpoints for integration with Hugging Face services, allowing AI agents to interact with Hugging Face repositories, models, and search functionality
Hugging Face Official MCP Server
Getting Started
This repository contains the offical Hugging Face MCP Server source. The server supports multiple deployment and configuration options, and is deployable locally as well as on your own infrastructure.
The easiest way to access Hugging Face MCP Services is via https://hf.co/mcp
which offers a number of Tools, Prompts and access to Gradio Spaces which are configurable at https://hf.co/settings/mcp
.
Anonymous access is supported with a default set of Tools and Prompts, or use a Hugging Face READ token to customize your settings:
If you prefer to use OAuth, use https://hf.co/mcp?login
For claude.ai enter https://hf.co/mcp
from the "Add Integrations" dropdown menu. Claude does not currently support the MCP 2025-06-18 OAuth standard so is limited to anonymous access.
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.
MCP Server
The following transports are supported:
- STDIO
- SSE (To be deprecated, but still commonly deployed).
- StreamableHTTP
- StreamableHTTP in Stateless JSON Mode (StreamableHTTPJson)
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.
Running Locally
You can run the MCP Server locally with either npx
or docker
.
To run with docker:
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.
Development
This project uses pnpm
for build and development. Corepack is used to ensure everyone uses the same pnpm version (10.12.3).
Build Commands
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
Docker Build
Build the image:
Run with default settings (Streaming HTTP JSON Mode), Dashboard on Port 3000:
Run STDIO MCP Server:
TRANSPORT
can be stdio
, sse
, streamingHttp
or streamingHttpJson
(default).
Transport Endpoints
The different transport types use the following endpoints:
- SSE:
/sse
(with message endpoint at/message
) - Streamable HTTP:
/mcp
(regular or JSON mode) - STDIO: Uses stdin/stdout directly, no HTTP endpoint
Stateful Connection Management
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:
Environment Variable | Default | Description |
---|---|---|
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 |
Environment Variables
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. ⚠️- If running with
stdio
transport,HF_TOKEN
is used ifDEFAULT_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 anAuthenticate
tool to issue an OAuth challenge when calledSEARCH_ENABLES_FETCH
: When set totrue
, automatically enables thehf_doc_fetch
tool wheneverhf_doc_search
is enabled
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
An MCP server that provides Hugging Face Hub API and Search endpoints through multiple transport protocols (STDIO, SSE, StreamableHTTP, and StreamableHTTPJson), enabling integration with AI model capabilities.
Related MCP Servers
- -securityAlicense-qualityAn MCP server that generates 2D and 3D game assets from text prompts using AI models from Hugging Face Spaces, allowing developers to easily create game art through Claude Desktop or other MCP clients.Last updated -34JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that provides Claude and other LLMs with read-only access to Hugging Face Hub APIs, enabling interaction with models, datasets, spaces, papers, and collections through natural language.Last updated -4PythonMIT License
- -securityAlicense-qualityAn MCP server that tracks trending AI models, datasets, and spaces on Hugging Face.Last updated -PythonMIT License
- -securityFlicense-qualityA Multi-modal Conversation Protocol (MCP) server that enables interacting with web APIs through a curl-like interface, providing access to various websites and APIs with user authentication and response transformations.Last updated -1TypeScript