AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified Apache-2.0 Self-run

Hermes Knowledge Ingestion

mcp-lyc403223157-source-hermes-knowledge-ingestion · by lyc403223157-source

Local-first plugin-based knowledge ingestion for Hermes and Obsidian

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add mcp-lyc403223157-source-hermes-knowledge-ingestion

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-lyc403223157-source-hermes-knowledge-ingestion)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
today

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Hermes Knowledge Ingestion? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Hermes Knowledge Ingestion

Local-first, plugin-based knowledge ingestion for Hermes, Obsidian, and other local retrieval tools. It turns links, text, videos, screenshots, PDFs, and local files into structured Markdown knowledge cards and saves them to an Obsidian Vault.

> Current release: 0.2.0. Web and file ingestion run cross-platform. WeChat Channels > downloading is an optional, experimental macOS integration that requires the desktop > WeChat client and a local TLS proxy.

How it works

Hermes Skill / CLI / Web / Telegram
                  |
              MCP / FastAPI
                  |
             Source Adapter
                  |
             ContentItem
                  |
       Cleaner / OCR / Whisper / AI
                  |
      Classifier / Tags / Knowledge Linker
                  |
          Obsidian Markdown + SQLite

Every source is normalized into a ContentItem. To add a platform, implement SourceAdapter.detect() and SourceAdapter.fetch(), then register the adapter in backend/adapters/registry.py.

Supported sources

| Source | Input | Capabilities | | --- | --- | --- | | Web pages, blogs, and news | URL | Readability extraction, Markdown conversion, and image download | | WeChat Official Accounts | URL | Article body, author, and images; can also be synced by another tool | | X / Twitter | Post URL | Current post, visible parent context, quoted content, and media when available | | YouTube | URL | Captions first; Whisper fallback when captions are unavailable | | Podcast RSS and Apple Podcasts | Feed or episode URL | Episode metadata, Podcasting 2.0 transcript, audio download, and Whisper fallback | | Vimeo | URL | oEmbed metadata, captions when available, and Whisper fallback | | Direct audio, video, and HLS | Media URL | Streaming download for common media files; yt-dlp resolution for .m3u8 | | PDF | File | Text extraction; OCR for scanned pages with the media extra | | Images | File | OCR plus visual and chart descriptions when a vision model is configured | | Audio and video | File | Whisper transcription or vision-model understanding | | WeChat Channels | Share URL | Experimental macOS integration, or upload the original video directly | | Telegram | Webhook | Text, captions, or the first URL found in a message |

Quick start

Python 3.11 or newer is required. Media processing requires ffmpeg; OCR requires Tesseract.

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[media,browser,hermes,dev]"
playwright install chromium
cp config.example.yaml config.yaml
uvicorn backend.main:app --host 127.0.0.1 --port 8787

Open , or use the CLI:

.venv/bin/python scripts/ingest.py 'https://example.com/article'
.venv/bin/python scripts/ingest.py 'https://feeds.example.com/show.rss'
.venv/bin/python scripts/ingest.py 'https://vimeo.com/123456'
.venv/bin/python scripts/ingest.py '/absolute/path/file.pdf'
.venv/bin/python scripts/ingest.py 'A note to keep' --title 'Quick note'

The same pipeline is available through the API:

curl -X POST http://127.0.0.1:8787/api/ingest \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com/article"}'

Configure AI and Obsidian

The AI layer uses an OpenAI-compatible Chat Completions endpoint. AI is disabled by default; without a model the system still creates a local fallback summary. Enable AI for classification, visual understanding, and richer tags:

export OBSIDIAN_VAULT_DIR=/absolute/path/to/ObsidianVault
export AI_ENABLED=true
export OPENAI_BASE_URL=http://127.0.0.1:11434/v1
export OPENAI_API_KEY=''
export OPENAI_MODEL=qwen2.5:7b
export OPENAI_VISION_MODEL=your-vision-model

You can set the same values in config.yaml. The config file, .env, database, browser login state, and downloaded media are ignored by Git.

Knowledge linking uses qmd when available. If qmd is not installed, it falls back to lexical matching over the latest 1,000 Markdown notes in the Vault. Cards are written to a temporary file and atomically replaced so an indexer never sees a partial note.

Hermes MCP tool

scripts/knowledge_mcp.py exposes two tools:

  • knowledge_ingest: ingest a URL, local file, or text and wait for the knowledge card

to finish.

  • knowledge_wechat_prepare: refresh the local WeChat Channels window only when the

client connection needs recovery.

In Hermes, configure the MCP command to use this repository's virtual-environment Python and the absolute path to scripts/knowledge_mcp.py. Copy or symlink hermes-skill/personal-knowledge-ingestion into the Hermes skills directory. Hermes can then route intents such as “save”, “archive”, and “ingest” to this tool.

Docker

cp .env.example .env
docker compose up --build

Docker is suitable for web pages, files, OCR, transcription, and the AI pipeline. When the workflow needs the macOS WeChat client, system proxy, or a GUI browser login, run the backend directly on the host. Compose binds the service to 127.0.0.1:8787.

WeChat Channels security boundary

The Channels integration uses the separately maintained ltaoo/wx_channels_download project. Its license and security boundary are separate from this repository. This project does not distribute its binary, root certificate, cookies, or WeChat login data. See integrations/wechat-channels/README.md for installation, licensing, proxy, and macOS permission details.

The downloader creates a local TLS proxy. Use only a trusted, checksum-verified build and never expose the downloader or this service to a LAN. The MCP tool temporarily switches the HTTP/HTTPS proxy for the task and restores the previous settings afterward. The original video is deleted only after both the Obsidian note and SQLite record have been written successfully.

Verification

pytest -q
ruff check backend scripts tests

The test suite covers Markdown formatting, task recovery, text end-to-end ingestion, X context, the WeChat Channels adapter, video transcoding, post-write cleanup, and input classification. Real platform pages and login sessions change over time, so production deployments should still perform a separate end-to-end check for each platform they use.

Contributing and license

Read CONTRIBUTING.md and SECURITY.md before submitting a change. Original project code is licensed under Apache-2.0. Optional third-party components remain under their own licenses; see THIRD_PARTY_NOTICES.md.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.