Skip to main content

hermify-mcp

Cross-agent, dataset-backed skill and memory sync via MCP. Hermify your agent interactions - push from Claude, pull into Gemini, improve without friction.

MIT License Python 3.11+ uv agentskills.io


What it does

hermify-mcp is an MCP server that gives any agent runtime a shared, event-sourced, dataset-backed knowledge base following the agentskills.io open standard.

Instead of relying on traditional file-based version control, hermify-mcp treats agent skills, memory, and logs as structured, queryable data. It uses a local-first DuckDB buffer for lightning-fast, non-blocking agent interactions, which seamlessly syncs to Hugging Face Datasets as the immutable source of truth.

Claude session ──► hermify_log() ──► Local DuckDB Buffer (Instant, ACID)
                                              │
                                        (Async Sync)
                                              │
                               Hugging Face Datasets (Parquet Shards)
                                              │
                              Gemini / Hermes / next Claude
                              session pulls & queries on start

Non-intrusive by design. The server never injects into the agent loop. Agents call propose_skill or hermify_log post-session. The main workflow is never blocked waiting for network sync.


🚀 Quick Start & Agent Setup

The recommended way to run hermify-mcp is via uvx, which allows your agent runtime to spawn the server in an isolated, ephemeral environment without polluting your global Python packages.

1. Bootstrap your local configuration (One-time setup)

Run this in your terminal to create your local DuckDB buffer and configure your Hugging Face target.

# Install uv if you haven't already (https://docs.astral.sh/uv/)
# Bootstrap local config (creates ~/.hermify/config.yaml)
uvx hermify-mcp init --hf-repo your-username/hermify-agent-memory --mode hf_push

# Optional: Enable YOLO auto-approval mode (uses LLM-as-a-Judge)
# uvx hermify-mcp init --hf-repo your-username/hermify-agent-memory --mode hf_push --yolo

2. Connect your Agent Runtime

Option A: Local Private Brain (Claude Desktop / Cursor / Windsurf)

Add the following to your MCP client configuration. This uses uvx to run the server locally via stdio.

Note: We inject HF_TOKEN via the env block so the server can sync to Hugging Face.

Claude Desktop (claude_desktop_config.json) / Cursor (mcp.json):

{
  "mcpServers": {
    "hermify": {
      "command": "uvx",
      "args": ["hermify-mcp", "serve", "--transport", "stdio"],
      "env": {
        "HF_TOKEN": "hf_YOUR_HUGGINGFACE_TOKEN_HERE"
      }
    }
  }
}

Option B: Shared Team Brain (Hugging Face Spaces / Remote HTTP)

Want to host a centralized, team-wide agent brain or a public demo? You can deploy hermify-mcp to Hugging Face Spaces using Docker.

This allows multiple agents (or multiple users) to connect to the same shared memory and skill library via HTTP, without needing to manage local files or sync conflicts.

👉 Read the full Docker Deployment Guide here

Once your Space is deployed and running, you don't use uvx or stdio. Instead, point your agent's MCP configuration directly to your Space's URL.

Update your agent's MCP configuration (e.g., claude_desktop_config.json or Cursor's mcp.json):

{
  "mcpServers": {
    "hermify-team-brain": {
      "url": "https://YOUR_USERNAME-hermify-team-brain.hf.space/mcp"
    }
  }
}

Note: FastMCP's HTTP transport automatically handles the /mcp or /sse routing based on the client's negotiation.


🏗️ Architecture

hermify-mcp is built on a pluggable storage architecture, making it easy to scale or swap backends while maintaining a consistent MCP tool surface.

src/hermify_mcp/
├── config.py           # HermifyConfig (Pydantic) + domain models
├── dataset_store.py    # Local-first DuckDB store (Skills, Memory, Audit Chain)
├── hf_sync.py          # Hugging Face Datasets sync engine (Parquet <-> Hub)
├── eval.py             # LLM-as-a-Judge evaluation pipeline (YOLO governance)
├── server.py           # FastMCP server - dataset-native tools
└── cli.py              # Typer CLI (hermify init/serve/sync)

Governance & Approval Modes

Every skill write goes through a strict state machine (draft → sandbox → active).

Mode Behaviour
human_review Skills stay draft. Humans review via HF Hub UI or CLI before promoting to active.
yolo_eval An LLM-as-a-Judge automatically evaluates drafts. High-scoring skills auto-promote to sandbox (probationary use) or active (pure YOLO).
local_only Skills and memory stay in the local DuckDB buffer. No network calls. Default for air-gapped environments.

🛠️ CLI Reference

While agents interact with the server via MCP, you can manage your local brain directly from the terminal.

# Show help
uvx hermify-mcp --help

# Initialize / Reconfigure
uvx hermify-mcp init --home ~/.hermify --hf-repo user/repo --mode hf_push --yolo

# Manual Sync Operations (Useful for cron jobs or CI/CD)
uvx hermify-mcp sync push      # Force push local DuckDB to HF Hub
uvx hermify-mcp sync pull      # Pull latest Parquet shards from HF Hub
uvx hermify-mcp sync status    # View local buffer metrics and sync state

# Start server manually (defaults to stdio)
uvx hermify-mcp serve
uvx hermify-mcp serve --transport http --port 8742

🧰 MCP Tools Surface

Skills & Governance

Tool Description
propose_skill Append a new skill draft to the local dataset. Triggers YOLO eval if enabled.
evaluate_skill Manually trigger the LLM Judge to score a draft and auto-transition state.
approve_skill Human override to promote a draft or sandbox skill to active.
search_skills Semantic or keyword search across the active dataset.

Core: hermify_log

hermify_log(
  raw_transcript,   # full session text
  skill_md,         # pre-generated SKILL.md from reflective phase
  source_agent,     # "claude" | "gemini" | "hermes"
  session_id,
  task_goal,
)

Stores the log + creates a draft skill in the local buffer. One call = full hermification.

Sync & Memory

Tool Description
append_memory Append semantic memory to the local dataset buffer.
get_memory Retrieve chronological memory entries for an agent.
sync_status Show local buffer size, last sync timestamp, and HF Hub revision.
sync_push Batch local DuckDB changes into Parquet and push to HF Hub.
sync_pull Download latest Parquet shards from HF Hub and merge into local DB.

🧩 Extensibility

The storage layer is abstracted. While DuckDB + Hugging Face Datasets is the default, the BaseStore protocol allows you to implement custom backends (e.g., PostgreSQL, LanceDB, or cloud object storage) without changing the MCP server interface.

Similarly, the EvalJudge protocol allows you to plug in any LLM (OpenAI, Anthropic, Ollama) for YOLO governance.


🤝 Contributing

We follow strict TDD. Please read CONTRIBUTING.md before submitting PRs.

# Clone and setup
git clone https://github.com/your-org/hermify-mcp.git
cd hermify-mcp
uv sync

# Run tests
uv run pytest

# Type checking
uv run mypy .

License

MIT - see LICENSE

Metadata

Release files for hermify-mcp 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hermify-mcp 0.2.2
File Size Uploaded Provenance
hermify_mcp-0.2.2.tar.gz 264.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for hermify-mcp 0.2.2
File Interpreter ABI Platform
hermify_mcp-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 283.3 kB

Release files / hermify_mcp-0.2.2.tar.gz

Download URL hermify_mcp-0.2.2.tar.gz
Size 264.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2127619fd2be96e3d8af4440c7954ae682c9d8b021f718d6378f18c8178c7951
BLAKE2b-256 checksum
How to use checksums
9e1f06e84b178febe7f766d8caed0bd081c4c9c6f5fcc7f31b74c387ea4ac606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Release files / hermify_mcp-0.2.2-py3-none-any.whl

Download URL hermify_mcp-0.2.2-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b5d3df0181d8cde228a685a0b72f5b18f9795f859982cbc827893a37dac4bc4
BLAKE2b-256 checksum
How to use checksums
ba8eee1884d9a0677475677bd55a3703015adfe456208aceea9f455a5d7ae75a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Security for hermify-mcp 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for hermify_mcp-0.2.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page