Agent Finder registry adapter for Hugging Face Spaces
Project description
hf-agentfinder
A small Agent Finder registry adapter for Hugging Face Spaces.
It exposes Hugging Face Spaces semantic search as:
- a CLI:
agentfinder spaces search "remove background from image" - an Agent Finder-ish REST API:
POST /search - generated skill artifacts for Spaces via
GET /skills/huggingface/{owner}/{space}/SKILL.md
Search results default to application/ai-skill entries. Each result points to a generated
SKILL.md route that wraps the Space's agents.md instructions.
Features
Space Search and Skill Generation
agentfinder uses Hugging Face Spaces semantic search as a registry backend. Search
requests use the Hub's agent-oriented semantic search (agents=true) and return matching
Spaces as Agent Finder catalog entries. By default, results can include generated
application/ai-skill artifacts, plus application/mcp-server+json entries for matching
Spaces tagged mcp-server.
Search responses strictly include only Spaces whose runtime stage is RUNNING, so returned
entries are limited to Spaces that are currently ready to serve traffic. The runtime stage
is also surfaced in result metadata as runtimeStage.
The generated skill wraps the Space's agents.md instructions with the required skill
frontmatter (name and description) plus source metadata such as the Space ID, Hub URL,
app URL, and original agents.md URL. This lets clients discover a relevant Space, fetch
the generated skill, and install or load it using their normal skill flow.
For clients that want raw Space descriptors instead of skills, the same search endpoint can
return application/vnd.huggingface.space+json entries with inline JSON metadata.
Requests for application/mcp-server+json add filter=mcp-server to the downstream Hub
search and return MCP server catalog entries that point at the Space's Gradio MCP endpoint
using HTTP transport. When Hub runtime metadata includes a Space domain, that domain is
used for app and MCP URLs; otherwise the adapter falls back to the standard .hf.space
slug convention.
Release Automation
Releases are built through the same quality gates as CI: locked dependency sync, Ruff
format/lint checks, ty type checking, and pytest. The release check script then builds
both source and wheel distributions, inspects the artifacts, and smoke-installs the wheel
in a clean Python 3.14 virtual environment.
Run the release check with:
./scripts/check-release.sh
Optionally assert the expected project version:
./scripts/check-release.sh 0.1.0
Use the Prepare Release GitHub Action to prepare a release branch. The workflow can bump
patch, minor, or major from the current pyproject.toml version, regenerates
uv.lock, updates CHANGELOG.md, runs the release check, pushes release-vX.Y.Z, and
prints the PR URL in the workflow summary. After merging the PR, publish by running the
Release workflow with the merged version, or by pushing the matching vX.Y.Z tag. The
release workflow builds artifacts, publishes them to PyPI using trusted publishing, attaches
the artifacts to the GitHub Release, and restarts the Hugging Face Space when the HF_TOKEN
secret is configured.
Hugging Face Space Deployment
The project includes a reproducible Docker Space definition in deploy/huggingface-space/.
It uses the official uv Python image and runs the latest published hf-agentfinder package
with uvx --refresh, so restarting or rebuilding the Space resolves the newest PyPI
release without committing generated application code to the Space repository. This keeps
the hosted Space lightweight while letting PyPI releases drive runtime updates.
Usage
uv run agentfinder spaces search "generate image" --limit 5
uv run agentfinder spaces search "generate image" --kind skill --json
uv run agentfinder spaces search "generate image" --kind mcp --json
uv run agentfinder spaces search "generate image" --json
uv run agentfinder serve --port 8080
curl -X POST http://localhost:8080/search \
-H 'content-type: application/json' \
-d '{"query":{"text":"remove background from image","mediaType":"application/ai-skill"},"pageSize":5}'
Fetch a generated skill:
curl http://localhost:8080/skills/huggingface/mcp-tools/FLUX.1-Kontext-Dev/SKILL.md
To get generic Hugging Face Space descriptors instead of skill wrappers, request:
{"query":{"text":"remove background from image","mediaType":"application/vnd.huggingface.space+json"},"pageSize":5}
HF_TOKEN handling
HTTP search requests can forward a request-scoped Hugging Face token for the downstream
Spaces search call. The server checks X-HF-Authorization: Bearer ..., then
Authorization: Bearer ..., then HF_TOKEN: ...; a header token overrides any token
configured when the server starts and is not stored beyond the request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hf_agentfinder-0.1.4.tar.gz.
File metadata
- Download URL: hf_agentfinder-0.1.4.tar.gz
- Upload date:
- Size: 47.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f697699389341c0fb3c8ac3bc4ca6cf1b354a6301c45d0bd2457cb546040118f
|
|
| MD5 |
3c2aabe47e2e135eafc69b0cc034205a
|
|
| BLAKE2b-256 |
955d548f006f941daafbc1b496b98cea8ba1464d00db497228c1b7a96393bfab
|
File details
Details for the file hf_agentfinder-0.1.4-py3-none-any.whl.
File metadata
- Download URL: hf_agentfinder-0.1.4-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
417404db43475ba1d46e82fcbcdec8ba8e1e73f83923a1b5280ece1526d417ba
|
|
| MD5 |
f629f64514fb158982e9e7c735f1f4b3
|
|
| BLAKE2b-256 |
50c59152fe111aa21aa703a0b87d26afb4a9aa058e7ddc625a17811515af56c0
|