Standalone Hack Forums MCP launch surface
Project description
hf-mcp
hf-mcp is a standalone MCP server package for the Hack Forums API v2.
Current release line: 0.3.0.
Install
pip install hf-mcp
Entrypoints
hf-mcp(aliaseshf-mcp serve)python -m hf_mcphf-mcp setup inithf-mcp auth bootstraphf-mcp doctorhf-mcp serve
Desktop MCP clients
Desktop client wiring is first-class and documented in
docs/client_integration.md, including:
- direct command launch (
hf-mcp serve) - module launch (
python -m hf_mcp serve) - virtualenv/conda launch forms
- native Windows Python launch
- Windows desktop client to WSL bridge examples (including Claude Desktop style)
Default local paths
- config:
~/.config/hf_mcp/config.yaml - token store:
~/.config/hf_mcp/token.json
Path overrides:
HF_MCP_CONFIGfor config pathHF_MCP_ENV_FILEfor explicit.envpathHF_MCP_TOKEN_PATHfor token path (unless YAMLtoken_pathis set)
Full precedence and policy split are documented in docs/configuration.md.
Read output defaults
Read tools default to human-readable content while keeping canonical JSON for scripts.
- default mode:
readable - per-call override:
output_mode(readable,structured,raw) - additive raw payload toggle:
include_raw_payload
Compatibility contract for read tools:
structuredContentalways carries normalized/canonical JSON for automation.output_mode="readable"is the human surface; for thread reads it includes the formatted thread body plus useful thread and first-post fields.output_mode="structured"keeps script-friendlystructuredContentwith terse text.- raw payload remains available as an additive JSON resource when
output_mode="raw"orinclude_raw_payload=true.
See docs/configuration.md for read_output_defaults config and
docs/examples.md for concrete request/response examples.
Compounding flow discovery
Use forums.index (alias forums_index) for root discovery when you do not yet
have IDs. This tool is backed by maintained package catalog data and can drift
from live Hack Forums state between package updates.
Concrete exploration path:
forums.index->forums.read->threads.read->posts.readforums.readstill requiresfid; it is not root discovery._hf_flowis the machine-readable flow envelope key._hf_flowcurrently ships onforums.index, core reads, supported extended reads (bytes.read,contracts.read,disputes.read,bratings.read,sigmarket.market.read, andsigmarket.order.read), local draft/preflight tools, and successful results from existing guarded write helpers after confirmed or stubbed execution.
Automation usage
For automated clients, call read tools with output_mode="structured" when you only
need normalized fields, or output_mode="raw" / include_raw_payload=true when
you also need the exact upstream HF API payload as an additive MCP resource.
Example:
{
"tool": "posts.read",
"arguments": {
"tid": 6324346,
"per_page": 1,
"include_post_body": true,
"output_mode": "raw",
"include_raw_payload": true
}
}
Expected protocol shape:
{
"content": [
{"type": "text", "text": "posts.read returned 1 row(s)."},
{"type": "resource", "resource": {"uri": "hf-mcp://raw/posts.read", "mimeType": "application/json"}}
],
"structuredContent": {
"posts": [
{
"pid": "62946370",
"tid": "6324346",
"subject": "The HF API MCP server",
"message": "[size=xx-large][align=center][css=68]HF MCP Is Live..."
}
]
}
}
Quick start
pip install hf-mcp
hf-mcp setup init
hf-mcp auth bootstrap
hf-mcp doctor
hf-mcp serve
Before auth bootstrap, create your own Hack Forums API developer app in the HF
user control panel. You can use the hosted callback
https://cortalabs.github.io/hf_mcp/oauth_callback.html for
HF_MCP_EXTERNAL_REDIRECT_URI, or host docs/oauth_callback.html yourself and
use that HTTPS URL instead.
Module launch equivalent:
python -m hf_mcp serve
Safety and release posture
- Read paths and guarded writes are documented publicly, with fail-closed behavior for concrete writes via
confirm_live=true. - Concrete write helpers currently exposed are
threads.create,posts.reply, and Bytes write helpers (bytes.transfer,bytes.deposit,bytes.withdraw,bytes.bump) with repaired argument contracts. scheduled_aton draft artifacts is metadata for operator workflow only;hf-mcpdoes not ship a scheduler/queue that auto-executes future writes.- HF API quote/entity canonicalization on live writes is treated as expected security/sanitization behavior, not a bypass target.
- Manual live validation in this wave is intentionally narrower: replies only on
TID 6083735plus at most onethreads.createinFID 375; no Bytes live writes. contracts.writeis not exposed in this release because operator-approved sandbox proof is unavailable.- Signature Market write operations and admin-only high-risk write operations are unsupported and unexposed.
- PM counters (
unreadpms,totalpms) are available throughme.readwhen Advanced Info fields are enabled; direct PM content operations are unsupported. - Detailed release-boundary and limitation truth is owned by
docs/export_boundary.md.
Docs map
Project details
Release history Release notifications | RSS feed
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_mcp-0.3.0.tar.gz.
File metadata
- Download URL: hf_mcp-0.3.0.tar.gz
- Upload date:
- Size: 125.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f9b341d85ff0bfde683636e637fc6c7d6618f286692d65930da8970c78734c0
|
|
| MD5 |
a636e33fc449338a6289b660e774cca8
|
|
| BLAKE2b-256 |
12da8df195de0b9bb428fec7e288c013f8f71d079ae1157ff31bc0c6ed3f591d
|
Provenance
The following attestation bundles were made for hf_mcp-0.3.0.tar.gz:
Publisher:
publish-hf-mcp-pypi.yml on CortaLabs/hf_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hf_mcp-0.3.0.tar.gz -
Subject digest:
9f9b341d85ff0bfde683636e637fc6c7d6618f286692d65930da8970c78734c0 - Sigstore transparency entry: 1382544968
- Sigstore integration time:
-
Permalink:
CortaLabs/hf_mcp@083518c1feead5dd4cdd6c8797c557db904f20f6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/CortaLabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-hf-mcp-pypi.yml@083518c1feead5dd4cdd6c8797c557db904f20f6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hf_mcp-0.3.0-py3-none-any.whl.
File metadata
- Download URL: hf_mcp-0.3.0-py3-none-any.whl
- Upload date:
- Size: 95.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f3a32f7e1d58cc32068d0db64295bcd3454c5a3bee6de6bd0321b182069bfad
|
|
| MD5 |
9497f9fe8918059ccdaaa8c688112f72
|
|
| BLAKE2b-256 |
1110d9ed78e0be5c159e7d8b1afee35511b644ce41b7bf507e59f12cc57c2445
|
Provenance
The following attestation bundles were made for hf_mcp-0.3.0-py3-none-any.whl:
Publisher:
publish-hf-mcp-pypi.yml on CortaLabs/hf_mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hf_mcp-0.3.0-py3-none-any.whl -
Subject digest:
5f3a32f7e1d58cc32068d0db64295bcd3454c5a3bee6de6bd0321b182069bfad - Sigstore transparency entry: 1382545040
- Sigstore integration time:
-
Permalink:
CortaLabs/hf_mcp@083518c1feead5dd4cdd6c8797c557db904f20f6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/CortaLabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-hf-mcp-pypi.yml@083518c1feead5dd4cdd6c8797c557db904f20f6 -
Trigger Event:
push
-
Statement type: