HuggingFace-Hub-Tagging-Bot

HuggingFace-Hub-Tagging-Bot

Automated MCP server that listens for Hugging Face discussion comments, extracts ML tags, and creates pull requests to update model metadata.

Category
Visit Server

README

Hugging Face Hub Tagging Bot

Note: This project is based on the Hugging Face MCP Course - Unit 3: Webhooks & Agents.

This project is an automated tagging agent for Hugging Face model repositories. It serves as a webhook listener built with FastAPI that automatically monitors model discussions. When a user asks a question or leaves a comment suggesting a machine learning tag (e.g., #nlp, #vision), this bot automatically extracts the tags, verifies them using an intelligent MCP agent, and creates a Pull Request on the Hugging Face Hub to add those tags to the model's README.md metadata!

🚀 Features

  • Webhook Integration: Listens for discussion.comment events from Hugging Face Hub.
  • Smart Tag Extraction: Recognizes both explicit tags (tags: nlp, vision) and implicit hashtag usage (#question-answering).
  • Automated PRs: Uses the Hugging Face HfApi and an LLM-powered FastMCP Agent to automatically verify and create Pull Requests for new tags.

🛠️ Setup & Installation

1. Install Dependencies

You can install the required packages using pip or uv. This project requires Python 3.11+.

Using pip:

pip install .

Using uv (recommended for speed):

uv pip install -r pyproject.toml

2. Environment Variables

Create a .env file in the root of your project (you can copy .env.example if it exists) and add your Hugging Face credentials:

HF_TOKEN=your_huggingface_access_token_here
HF_MODEL=Qwen/Qwen2.5-Coder-32B-Instruct
WEBHOOK_SECRET=your_custom_secret_string

Note: Your HF_TOKEN must have write permissions to the repositories you are monitoring to successfully create Pull Requests!


Running the Application

To run the project locally, you will need to start three separate processes in their own terminal windows.

1. Start the MCP Server

First, start the Model Context Protocol (MCP) server:

python run_mcp.py

2. Start the FastAPI Webhook Server

Next, start the FastAPI server to listen for webhook events:

uvicorn src.api.server:app --reload --port 8000

The application will now be running locally at http://127.0.0.1:8000.

3. Expose the Server with Ngrok

Hugging Face webhooks require a public, internet-accessible URL. Expose your local port 8000 to the internet using ngrok:

ngrok http 8000

This will generate a Forwarding URL (e.g., https://1a2b3c4d.ngrok.app).

2. Configure Hugging Face

  1. Go to your Hugging Face account settings and navigate to the Webhooks section.
  2. Click Create a webhook.
  3. Target Repositories: Select the repositories you want to monitor (e.g., MohmaedElnamir/test).
  4. Webhook URL: Enter your Ngrok URL followed by /webhook (e.g., https://1a2b3c4d.ngrok.app/webhook).
  5. Webhook Secret: Enter the same secret string you put in your .env file under WEBHOOK_SECRET.
  6. Save and enable the webhook!

3. Test It!

Go to the Hugging Face discussion tab on your monitored repository and leave a comment like:

"Does this model support #text-generation?"

Watch your uvicorn console as the Tagging Bot processes the webhook and creates a PR on your repository!

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured