Skip to main content
Glama

huiwen-mcp

Model Context Protocol (MCP)-Server für das Huiwen-Bibliotheksverwaltungssystem (Libsys / OPAC)Schreibgeschütztes Daten-Gateway für Bibliotheken für KI: Ermöglicht KI-Clients wie Claude / Cherry Studio / DeepSeek eine sichere, prüfbare Abfrage von Bestand, Exemplaren, Ausleihstatistiken und Verbundkatalogen.

Offizielle Adapterschicht, entwickelt von einer Hochschulbibliothek, unter Einhaltung der Sicherheitsrichtlinie standardmäßig schreibgeschützt, minimale Berechtigungen, vollständige Audit-Transparenz.

  • Protokoll: Model Context Protocol (offener Standard von Anthropic, gleicher technischer Ansatz wie der Katalogzugang der Yale Library)

  • Laufzeit: Python ≥ 3.10 · FastMCP 3.x

  • Datenquellen: demo (keine Abhängigkeiten, Demo) / opac (öffentliches Webprotokoll des Huiwen OPAC) / oracle (schreibgeschützte Direktverbindung zur Huiwen Libsys-Datenbank)

  • Lizenz: Apache-2.0 (empfohlen, siehe Lizenz & Compliance)


Inhaltsverzeichnis

  1. Funktionen

  2. Systemdesign-Ansatz

  3. Implementierungstechnisches Konzept

  4. Schnellstart

  5. Konfiguration (Umgebungsvariablen / .env)

  6. Werkzeugliste

  7. Beispiele für Client-Integration

  8. Anwendungsszenarien

  9. Sicherheit & Compliance

  10. Tests

  11. Projektstruktur

  12. Roadmap

  13. Lizenz & Compliance

  14. Fehlerbehebung


Funktionen

Fähigkeit

Beschreibung

🔍 Bestandssuche

Mehrere Felder / CLC / Standort / Verfügbarkeitsfilter / Sortierung / Seitenumbrüche

📚 Titel-Details

Vollständige bibliografische Daten eines Exemplars, alle Exemplar-Status und Ausleihstatistiken

✅ Verfügbarkeit

Nach ISBN / Barcode / Titel schnell den Ausleihstatus prüfen

🔥 Beliebte & Neue Bücher

Rangliste der meistausgeliehenen Bücher, Neuigkeiten der letzten N Tage

🧭 Klassifikations-Browsing

Echtzeit-Trefferanzahl nach CLC-Klassifikation/Präfix

📊 Statistiken

Gesamtbestand / nach Standort / nach Klassifikation

🤝 Verbundkatalog

PROCAT-Verbundrecherche (optional, standardmäßig deaktiviert, JWT-Authentifizierung)

👤 Leserdaten (admin)

Aktuelle Ausleihen / Ausleihhistorie / Gebühren (PII standardmäßig anonymisiert)

🛡️ Sicherheit

Authentifizierung → Ratenbegrenzung → PII/Leser-Gate → JSONL-Audit; standardmäßig schreibgeschützt

🔌 Transport

stdio (prozessintern) / Streamable HTTP (als Dienst)

🐳 Bereitstellung

Docker-Image (nicht-root, reproduzierbar); Produktions-/Gateway-Authentifizierungslösung siehe docs/Bereitstellungsleitfaden.md

🧩 Datenquellen austauschbar

demo / opac / oracle mit einem Klick, gleiche Werkzeugsignaturen

Design-Entscheidungen: Schreiboperationen (Verlängerung, Vormerkung, Fernleihe) wurden bewusst nicht implementiert – dieses Projekt dient ausschließlich dem „sicheren, prüfbaren Lesen“; Schreibpfade bleiben den ursprünglichen Geschäftssystemen und manuellen Prozessen überlassen.


Systemdesign-Ansatz

Positionierung: Daten-Gateway / Fähigkeitsschicht, kein Datenbank-Proxy

KI-Clients (große Modelle) verbinden sich niemals direkt mit der Huiwen-Datenbank. Alle Abfragen werden durch eine kontrollierte Werkzeugschicht gekapselt:

┌─────────────── AI 客户端(Claude / Cherry Studio / 自研 Agent / 本地 LLM) ───────────────┐
│                                      │                                                    │
│             stdio(子进程协议)        │        Streamable HTTP(服务化 / 网关 / SSO)        │
└──────────────────────────────────────┼────────────────────────────────────────────────────┘
                                       ▼
┌───────────────────────────────────────────────────────────────────────────────────────┐
│   huiwen-mcp(FastMCP 3.x)                                                            │
│   ┌─────────────── 安全链 _guard ───────────────┐                                        │
│   │ 认证(Auth) → 限流(TokenBucket) → 门控(PII/读者) │   ← 每个工具必经                     │
│   └──────────────────────────────────────────────┘                                        │
│   │ 工具层:search_books / get_book_detail / union_search / get_reader_* / … (12 个)     │
│   └──────────────────────────────────┬───────────────────────────────────────────────────┘
                                       ▼
┌───────────────────────────────────────────────────────────────────────────────────────┐
│   适配器(可插拔数据源,统一 CatalogBackend 接口)                                       │
│   ├─ OracleBackend:白名单参数化 SQL(db/queries.py 封闭集)   → 汇文 Libsys 只读账号    │
│   ├─ OpacBackend:白名单参数调汇文 OPAC 公开网页协议           → opac 站点                │
│   └─ DemoBackend:内置样例数据                                 → 离线演示/测试            │
└───────────────────────────────────────────────────────────────────────────────────────┘
  • Jede Schicht hat eine einzige Verantwortung: Der Adapter holt nur Daten; _guard kümmert sich nur um Sicherheit; Audit schreibt unabhängig JSONL; die obere KI interagiert nur mit den Werkzeugsignaturen, ohne die Backend-Unterschiede zu kennen (drei Backends, gleiche Signaturen).

  • Standardmäßig sicher: data_source=demo benötigt keine Abhängigkeiten und läuft sofort; opac/oracle erfordert explizite Konfiguration; sensible Leser-Tools benötigen ein Admin-Token; Schreiboperationen sind standardmäßig deaktiviert; externe Verbunddienste sind standardmäßig ausgeschaltet.

Warum MCP?

  • MCP ist ein offener Standard für KI-Verbindungen zu „Datenbanken/Geschäftssystemen“ (Anthropic, veröffentlicht Nov. 2024, Ökosystem umfasst GitHub/Cloud-Anbieter/Datenbankanbieter). Die Wahl eines offenen Standards statt einer proprietären API gewährleistet: austauschbare Clients (Claude/Cherry Studio/DeepSeek/eigene Agents), wiederverwendbare Dienste für mehrere Systeme, langfristige Vermeidung von Vendor-Lock-in – dies ist derselbe Weg, den die Yale Library mit MCP für den Katalogzugang gewählt hat.

  • FastMCP bietet serverseitig sowohl stdio- als auch HTTP-Transport, sodass eine Codebasis sowohl prozessinterne als auch serviceorientierte Bereitstellung unterstützt.

Wahl des Transportmodus: stdio vs. HTTP

  • stdio: Prozessintern, wird mit dem Client gestartet, kein Betriebsaufwand, geringste Latenz, geeignet für persönliche/einzelne Maschinen, die KI-Desktop-Clients verwenden.

  • HTTP (Streamable HTTP): Eigenständiger Dienst, geeignet für Multi-User- / zentralisierte Bereitstellung; kann mit einem OAuth2/JWT-Reverse-Proxy und Campus-Identitätsmanagement vorgeschaltet werden, für zentrales Audit.


Implementierungstechnisches Konzept

Aspekt

Lösung

MCP-Server

fastmcp>=2,<4; add_tool-Registrierung; stdio/http dual run()

Strenge Werkzeugsignaturen

FastMCP 3.x lehnt Werkzeugfunktionen mit *args/**kwargs ab → Werkzeuge haben immer explizit typisierte Parameter; _guard verwendet functools.wraps und gibt kwargs transparent weiter (explizites Token-Modell, vermeidet **kwargs, das vom Framework abgelehnt wird)

Authentifizierungskette

AuthConfig (Bearer) + RateLimit (Token-Bucket) + Leser-/PII-Gate (Admin-Token) + AuditLogger (JSONL)

Oracle-Backend

python-oracledb; 11g → thick-Modus (Instant Client), 12c+ → thin; SQL vollständig in db/queries.py gekapselt (parametrisiert, Whitelist, schreibgeschütztes Konto)

OPAC-Backend

Whitelist-Parameter für das öffentliche Webprotokoll von Huiwen (openlink.php-Suche / item.php-Details / top_lend.php-Beliebtheit), Parsen der öffentlichen HTML-Vorlagen (Selektoren und Herstellervorlagen elementweise geprüft)

Verbundkatalog

POST {base}/api/search/listByQuery + {current,pageSize,items:[{field,value,logic,type}]} + ?tenantCode&tk=<JWT> (Vertrag durch echte Standorttests bestätigt); standardmäßig deaktiviert

Konfiguration

HUIWEN_-Umgebungsvariablen (.env automatisch geladen) + config.local.json (sensible Werte, git-ignoriert, automatisch zusammengeführt)

Modelle

pydantic explizite Ergebnismodelle, typsicher, stabile Serialisierung

Wichtige Verträge (alle durch echte Tests bestätigt)

  • OPAC: Suchergebnisse <ol id="search_book_list"><li class="book_list_info">, Titel/Signatur/Bestandsexemplare/ausleihbare Exemplare/Trefferzahl; Exemplartabelle auf der Detailseite; Beliebtheitsrangliste.

  • Verbund PROCAT: POST (GET→405); Authentifizierung über Query-Parameter tk= (JWT, ausgestellt durch OPAC-Lesersitzung getReaderJwt); items[].logic="1"(AND)/"2"(OR); Feldzuordnung any/title/author/subject/isbn/clcNumber/publisher/series. Siehe docs/Verbundkatalogrecherche.md.

⚠️ OPAC / Verbund sind geschlossene Systeme des Herstellers oder Drittanbieter; Verträge können sich mit der Bereitstellungsversion ändern. Alle Integrationsdokumente basieren auf „echten Standorttests“ und werden mit tests/test_*_live.py validiert.


Schnellstart

1) Installation

git clone <your-repo-url> && cd huiwen-mcp
# 方式 A:uv(推荐)
uv sync
# 方式 B:pip
python -m venv .venv
. .venv/bin/activate
pip install -e .

2) Null-Konfiguration (demo-Datenquelle, offline)

HUIWEN_DATA_SOURCE=demo uv run huiwen-mcp        # stdio 模式
HUIWEN_DATA_SOURCE=demo HUIWEN_TRANSPORT=http uv run huiwen-mcp   # HTTP 模式

demo enthält integrierte Beispiel-Bibliografien/Leserdaten, geeignet für Smoke-Tests, Tests und Einführungslernen.

2b) Docker-Bereitstellung mit einem Klick

docker build -t huiwen-mcp:latest .
docker run --rm -it -e HUIWEN_DATA_SOURCE=demo huiwen-mcp:latest   # stdio,离线可跑

# 服务化(HTTP + 认证 + 审计)
docker run -d --name huiwen -p 8765:8765 \
  -e HUIWEN_TRANSPORT=http -e HUIWEN_DATA_SOURCE=opac \
  -e HUIWEN_OPAC_BASE_URL=https://opac.example.edu.cn \
  -e HUIWEN_AUTH_ENABLED=true -e HUIWEN_AUTH_BEARER_TOKEN=<强随机> \
  -v huiwen-audit:/var/log/huiwen huiwen-mcp:latest

Mehr (Oracle 11g thick / compose / Reverse-Proxy-Authentifizierung mit Campus-CAS) finden Sie unter docs/Bereitstellungsleitfaden.md.

3) Anbindung einer echten Datenquelle (opac / oracle)

Kopieren Sie .env.example nach .env und füllen Sie es aus (.env ist git-ignoriert):

cp .env.example .env
# 编辑 .env:设置 HUIWEN_DATA_SOURCE 与对应凭据
HUIWEN_DATA_SOURCE=opac
HUIWEN_OPAC_BASE_URL=https://opac.example.edu.cn      # 你们学校 OPAC 地址

Oder verwenden Sie config.local.json (sensible Konfiguration automatisch geladen, nicht eingecheckt).


Konfiguration (Umgebungsvariablen / .env)

Alle Konfigurationen können über Umgebungsvariablen (Präfix HUIWEN_) injiziert werden, auch über .env-Datei (automatisch geladen). Priorität: Umgebungsvariablen > explizite config.json / CONFIG_PATH > config.local.json automatische Zusammenführung > integrierte Standardwerte.

Allgemein

Variable

Beschreibung

Standard

HUIWEN_DATA_SOURCE

demo / opac / oracle

demo

HUIWEN_TRANSPORT

stdio / http

stdio

HUIWEN_HOST / HUIWEN_PORT

HTTP-Listener

127.0.0.1 / 8765

HUIWEN_INCLUDE_PII

Sensible Leserfelder ausgeben (erfordert admin)

false

HUIWEN_AUDIT_LOG

Pfad für JSONL-Audit-Log (leer = deaktiviert)

leer

HUIWEN_CONFIG_LOCAL_PATH

Lokaler Dateiname für sensible Konfiguration

config.local.json

OPAC

Variable

Beschreibung

HUIWEN_OPAC_BASE_URL

Huiwen OPAC-Basis-URL

HUIWEN_OPAC_TIMEOUT

Such-Timeout (Recycling-Station 15-40s langsam, genug Zeit geben)

25s

HUIWEN_OPAC_ALLOW_READER_SESSION

Leser-Personendaten nach Anmeldung erlauben (standardmäßig aus)

HUIWEN_OPAC_UNION_ENABLED

Schalter für Verbundkatalog (standardmäßig aus)

HUIWEN_OPAC_UNION_BASE_URL

Verbunddienst-URL

HUIWEN_OPAC_UNION_TENANT

Mandantencode

HUIWEN_OPAC_UNION_TOKEN

Lesersitzungs-JWT (getReaderJwt-Gesamtzeichenfolge)

Oracle

Variable

Beschreibung

HUIWEN_ORACLE_DSN

host:port/service oder Easy Connect

HUIWEN_ORACLE_USER / _PASSWORD

Schreibgeschütztes Konto (dringend empfohlen)

HUIWEN_ORACLE_MODE

thin (12c+) / thick (11g/10g benötigt Instant Client)

HUIWEN_ORACLE_CLIENT_LIB_DIR

Instant Client-Verzeichnis für thick-Modus

HUIWEN_ORACLE_READ_ONLY

Semantisch schreibgeschützt (Standard true)

HUIWEN_ORACLE_POOL_MIN/MAX

Poolgröße der Verbindungen

Sicherheit

Variable

Beschreibung

HUIWEN_AUTH_ENABLED

Bearer-Authentifizierung aktivieren (im Produktivbetrieb Pflicht)

HUIWEN_AUTH_BEARER_TOKEN

Statischer Bearer Token

HUIWEN_AUTH_ADMIN_TOKENS

Komma-getrennte Admin-Token (für Leser-/schreibbezogene Tools)

HUIWEN_RATE_LIMIT_ENABLED / _RPS / _BURST

Token-Bucket-Ratenbegrenzung


Werkzeugliste

Werkzeug

Beschreibung

Benötigt Token

search_books

Bestandssuche (Felder/CLC/Standort/Verfügbarkeitsfilter/Sortierung/Seitenumbrüche)

get_book_detail

Vollständige Informationen eines Exemplars (inkl. aller Exemplar-Status und Ausleihstatistiken)

get_availability

Verfügbarkeit nach ISBN / Barcode / Titel prüfen

get_hot_books

Rangliste der meistausgeliehenen Bücher (nach CLC-Kategorie filterbar)

get_new_arrivals

Neuigkeiten der letzten N Tage

browse_classification

CLC-Klassifikation durchsuchen / Echtzeit-Trefferanzahl pro Präfix

union_search

Verbundkatalog schreibgeschützt abfragen (standardmäßig deaktiviert)

Konfiguration

get_statistics

Bestandsstatistiken (Gesamt / nach Standort / nach Klassifikation)

get_reader_borrowing

Aktuelle Ausleihen eines Lesers

admin

get_reader_history

Ausleihhistorie eines Lesers

admin

get_reader_fines

Gebühren eines Lesers

admin

get_system_status

Datenquellen- und Dienststatus

Die Funktionsbeschreibung und Integrationsbewertung der Huiwen ACS / SIP2-Schnittstellendienste finden Sie unter [docs/Huiwen ACS-SIP2-Schnittstellenbeschreibung und Integrationsbewertung.md](docs/Huiwen ACS-SIP2-Schnittstellenbeschreibung und Integrationsbewertung.md) (autoritative Feldzuordnung, Kandidaten für schreibgeschützte Untermenge, explizit ausgeschlossene Elemente).

Leser-Tools sind standardmäßig anonymisiert (include_pii=false gibt keine Ausweisnummern/Kontaktdaten zurück; true erfordert admin).


Beispiele für Client-Integration

Claude Desktop / MCP-fähige Desktop-Clients

{
  "mcpServers": {
    "huiwen": {
      "command": "/path/to/uv",
      "args": ["--directory", "/path/to/huiwen-mcp", "run", "huiwen-mcp"],
      "env": { "HUIWEN_DATA_SOURCE": "demo" }
    }
  }
}

Remote HTTP (eigenes Gateway mit Authentifizierung erforderlich)

HUIWEN_TRANSPORT=http HUIWEN_HOST=0.0.0.0 HUIWEN_PORT=8765 uv run huiwen-mcp

Der Client verbindet sich mit ${MCP_SERVER_URL} an http://<host>:8765/mcp/ (Streamable HTTP). Wenn HUIWEN_AUTH_ENABLED=true aktiviert ist, wird der Token als Werkzeugparameter token mit dem Aufruf übergeben; der HTTP-Authorization-Header wird vom Server nicht verarbeitet (siehe Bereitstellungsleitfaden §3.2).


Anwendungsszenarien

Zielgruppe

Szenario

Leser

„Gibt es ‚Die drei Sonnen‘, in welcher Etage, wie viele sind ausleihbar, was ist in der Nähe beliebt?“ – Suche/Lernen/Forschung in einem Zug

Auskunftsbibliothekar

Automatische Bestands-/Exemplarabfrage → Antwortentwurf generieren → manuelle Prüfung (Copilot-Modus)

Fachbibliothekar

Fachbibliografien, Literaturnachweise für Fachbereiche, Erwerbungsvorschläge

Erwerbung/Katalogisierung

ISBN-Dublettenprüfung, Bestandslückenanalyse, Neuigkeiten, Metadatenprüfung

Bibliotheksleitung

Bestands-/Ausleihstatistiken, Datenberichte wöchentlich

KI-Bibliotheksportal

Als Datenkern für intelligente Auskunft / intelligente Buchempfehlung

Verbundzusammenarbeit

Verbundsuche (Lücken → Verbundsuche → formelle Fernleihe)

Vollständige Vorschläge (inkl. Lokale LLM + RAG-Schichtenansatz und nationale/internationale Vergleiche) finden Sie unter [docs/Dienst- und Anwendungsvorschläge.md](docs/Dienst- und Anwendungsvorschläge.md).


Sicherheit & Compliance

  1. Standardmäßig schreibgeschützt: Alle Werkzeuge sind schreibgeschützt; Schreiboperationen (Verlängerung/Vormerkung/Fernleihe) wurden bewusst nicht implementiert.

  2. Whitelist-SQL: Das Oracle-Backend führt nur parametrisierte SQL-Abfragen aus db/queries.py aus, keine freien SQL-Statements.

  3. Vollständige Gate-Kette: Authentifizierung → Ratenbegrenzung → Leser-/PII-Gate → Audit (JSONL). Leser-Personendaten erfordern Admin-Token und sind standardmäßig anonymisiert.

  4. Authentifizierungsvertrag (durch echte Tests bestätigt): Token wird über Werkzeugparameter token übergeben (optionaler Parameter jedes Werkzeugs, _guard extrahiert ihn aus den Parametern und vergleicht mit HUIWEN_AUTH_BEARER_TOKEN), keine Weitergabe des HTTP-Authorization-Headers – die Transportebene TLS/Identitätsmanagement wird vom Reverse-Proxy-Gateway übernommen, die Authentifizierung von huiwen-mcp selbst ist die zweite Verteidigungslinie hinter dem Gateway. Token werden nicht in das Audit-Log geschrieben (_guard entfernt sie vor der Aufzeichnung).

  5. Keine Geheimnisse im Repository: DSN/Passwort/JWT/Standort-URLs werden nur über Umgebungsvariablen oder config.local.json (git-ignoriert) übergeben. Das Repository enthält keine echten Bereitstellungsdaten (siehe NOTICE).

  6. Externe Dienste mit Vorsicht: Der Verbund PROCAT ist ein Multi-Mandanten-System eines Drittanbieters, standardmäßig deaktiviert; vor Aktivierung mit dem Verbund/Dienstanbieter die Berechtigung klären. OPAC ist Closed Source, historisch gab es Sicherheitslücken, der Adapter verwendet nur Whitelist-Parameter.

  7. Meldung und Behandlung von Schwachstellen siehe SECURITY.md.


Tests

Datei

Inhalt

Ausführung

tests/smoke_demo.py

Smoke-Test mit demo-Backend (offline)

uv run python tests/smoke_demo.py

tests/test_stdio.py

stdio-Integration / Authentifizierungs-Regression (demo)

uv run python tests/test_stdio.py

tests/test_oracle_live.py

Integration mit echter Datenbank (standardmäßig deaktiviert)

HUIWEN_LIVE_ORACLE=1 ...

tests/test_union_live.py

Echter Verbund PROCAT (standardmäßig deaktiviert)

HUIWEN_LIVE_UNION=1 ...

Tests mit echten Datenbanken/echten Standorten sind standardmäßig deaktiviert (erfordern lokale explizite Setzung von HUIWEN_LIVE_*), um keine realen Systeme zu berühren. Das Docker-Image wird standardmäßig nicht erstellt/veröffentlicht (Veröffentlichungsstrategie: „nur Quellcode und Dokumentation veröffentlichen“): Wenn ein Image benötigt wird, bitte lokal docker build ausführen (für Oracle thick-Modus mit --build-arg WITH_INSTANT_CLIENT=true).


Projektstruktur

huiwen-mcp/
├── src/huiwen_mcp/
│   ├── server.py            # FastMCP 装配、stdio/http 启动、main()
│   ├── config.py            # 配置:env/.env/config.local.json 分层合并
│   ├── audit.py             # JSONL 审计
│   ├── adapters/
│   │   ├── base.py          # CatalogBackend 抽象
│   │   ├── demo.py          # 内置演示数据
│   │   ├── opac.py          # 汇文 OPAC 网页协议(含 union_search)
│   │   └── oracle.py        # Libsys 数据库只读(thin/thick)
│   ├── db/queries.py        # 白名单参数化 SQL(Oracle 后端唯一 SQL 来源)
│   ├── models/schemas.py    # pydantic 结果模型
│   └── tools/catalog.py     # 12 个 MCP 工具 + _guard 安全链
├── docs/                    # 表结构 / 联盟契约 / 服务与应用建议 / 部署指南 / SIP2 评估
├── tests/                   # demo/stdio/oracle-live/union-live
├── Dockerfile / compose.yaml / .dockerignore
├── .env.example / config.example.json / config.local.json(忽略)
├── LICENSE / NOTICE / SECURITY.md / CONTRIBUTING.md / CODE_OF_CONDUCT.md
└── pyproject.toml

Roadmap

  • Phase 1: Schreibgeschützte MCP-Suche (drei Backends: demo + opac + oracle)

  • Phase 2: Integration mit echtem OPAC / Oracle, Integration mit Verbundkatalog (Vertragstests + Token-Lösung)

  • Phase 2 Rest: Docker-Image (nicht-root, reproduzierbar) + Bereitstellungsleitfaden (inkl. Reverse-Proxy-Authentifizierungsvorlage)

  • Veröffentlicht: v1.0.0-Tag + GitHub Release (Quellcode und Dokumentation; kein CI/Workflow, Docker-Image nicht automatisch erstellt)

  • OAuth2/JWT-Gateway-Integration mit Campus-CAS / One-Stop-Service (Vorlage bereit, erfordert Standortkonfiguration)

  • Phase 2.5/3 Kandidat: Huiwen ACS/SIP2 schreibgeschützte Untermenge (Bewertung siehe docs/Huiwen ACS-SIP2-Schnittstellenbeschreibung und Integrationsbewertung.md)

  • Phase 3: RAG-Vektor-Datenbank + lokales LLM für intelligente Buchempfehlung / Auskunft (siehe docs/Dienst- und Anwendungsvorschläge.md)

  • Phase 4: Anbindung der Huiwen Next-Generation-Plattform-OpenAPI


Lizenz & Compliance (Open Source & Compliance)

Lizenzversionsempfehlung

Dieses Projekt empfiehlt die Verwendung der Apache License 2.0 (vollständige LICENSE im Repository beigefügt):

  1. Permissiv: Ermöglicht Hochschulen, Herstellern und Cloud-Plattformen die freie Nutzung, Änderung und Weiterverbreitung (auch kommerziell), sofern die Urheberrechts- und Lizenzhinweise erhalten bleiben – vorteilhaft für die Integration in KI-Toolchains und Drittsysteme.

  2. Patentlizenz: Apache-2.0 erteilt ausdrücklich eine Patentnutzungslizenz für Beitragende (Abschnitt 3), was bei gemeinsamen Beiträgen mehrerer Institutionen/Parteien (mehrere Hochschulen, Technologieanbieter) klarer und „klagefester“ ist.

  3. Klare Beitragsbestimmungen: Stillschweigende Erteilung einer Projektlizenz (Abschnitt 5 Contribution Grant), wodurch die Notwendigkeit separater CLAs für jeden Beitragenden entfällt – entspricht der Praxis öffentlicher GitHub-Projekte.

  4. Unterscheidbarkeit: Im Vergleich zu MIT eignet sich Apache-2.0 besser für Infrastrukturprojekte, die offiziell von Institutionen veröffentlicht werden und von mehreren Parteien langfristig gewartet werden können.

Falls Ihre Bibliothek den „minimalistischen Stil“ bevorzugt, können Sie jederzeit zu MIT zurückkehren: Ersetzen Sie den gesamten LICENSE-Text, ändern Sie in pyproject.toml das license-Feld zurück auf { text = "MIT" } und aktualisieren Sie diesen Abschnitt in der README.

Konformitätserklärung (wichtig)

  • Kein Hersteller-/Drittanbieter-Quellcode: Dieses Projekt ist eine unabhängige Interoperabilitätsschicht für das Closed-Source-System Huiwen/Libsys und enthält keinen proprietären Code von Huiwen oder Partnerverbünden; OPAC-/Verbundverträge basieren ausschließlich auf öffentlichen Webprotokollen und Antwortaufzeichnungen echter Server. Siehe NOTICE.

  • Keine sensiblen Bereitstellungsdaten im Repository: Echte DSN, Kontopasswörter, OPAC-Login-Instanzen, Verbund-JWTs, Leser-PII, Hersteller-SECRET_KEY sind nicht im Repository enthalten (SECURITY.md/CONTRIBUTING.md definieren rote Linien, die jegliche sensible Datenverbindungen verbieten).

  • Marken: 汇文, Libsys, OPAC sind Marken-/Produktnamen von Jiangsu Huiwen Software usw. Dieses Repository dient nur der Interoperabilitätsbezeichnung, ohne Befürwortung oder Verbindung zu implizieren.

  • Bitte klären Sie vor der Nutzung dieser Software mit Huiwen Software, dem Verbundsdienst und Ihrer Bibliotheks-IT die Autorisierung und Nutzungsgrenzen.


Fehlerbehebung

Phänomen

Behandlung

„Dieses Backend wird nicht unterstützt“

Überprüfen Sie HUIWEN_DATA_SOURCE; union_search funktioniert nur mit opac-Backend und erfordert Verbundkonfiguration

Oracle DPY-3010 / Verbindungsfehler

Für 11g: HUIWEN_ORACLE_MODE=thick + HUIWEN_ORACLE_CLIENT_LIB_DIR (Instant Client)

OPAC-Suche Zeitüberschreitung

Langsame Server-Seite (15-40s üblich), erhöhen Sie HUIWEN_OPAC_TIMEOUT oder versuchen Sie es später erneut

union_search gibt enabled:false zurück

Verbund nicht aktiviert oder Token fehlt → Konfiguration aktivieren und JWT einfügen

Verbund gibt storage token not found zurück

JWT abgelaufen → Erneut bei OPAC anmelden, getReaderJwt abrufen und Token aktualisieren

Framework lehnt Tool-Registrierung ab (*args/**kwargs)

Tool-Funktionen müssen explizite Parameter haben; keine *args/**kwargs-Signatur verwenden

Leser-Tool gibt „Administrator-Token erforderlich“ zurück

Verwenden Sie einen Token aus HUIWEN_AUTH_ADMIN_TOKENS

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • Hosted MCP server exposing US hospital procedure cost data to AI assistants

  • Read-only MCP connector serving the Run It on AI book; index and Implementation Blocks are free.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/isaacwang2023-droid/huiwen-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server