Skip to main content
Glama
Congenital

remote-skill-mcp

by Congenital

remote-skill-mcp

Stellt Skill-Dateien („skill.md“ und deren Unterdateien) von Remote-HTTP-Diensten dynamisch als MCP-Tools (Model Context Protocol), Ressourcen und Prompts bereit, sodass beliebige MCP-Clients (Claude Desktop, Cursor, LobeHub usw.) über stdio direkt auf Remote-Skill-Dokumente zugreifen können.

Python MCP SDK Transport License

📖 Englische Dokumentation / English documentation: README.en.md

Basiert auf der Standard-MCP-SDK-Implementierung der FastMCP-Laufzeit (kein handgeschriebener JSON-RPC-Protokoll-Layer), vollständig MCP-konform, direkt von beliebigen MCP-Clients nutzbar und bereits für den LobeHub-MCP-Markt angepasst (siehe lhm.plugin.json).


Funktionsweise (Lazy Loading, Kontextersparnis)

┌─────────────┐   stdio (newline-delimited JSON-RPC)   ┌──────────────────┐
│  MCP 客户端  │ ◄────────────────────────────────────► │   server.py      │
│ (Claude等)  │      initialize / tools/* /            │  (本仓库)         │
└─────────────┘      resources/* / prompts/*          └────────┬─────────┘
                                                                 │ HTTP GET/HEAD
                                                                 ▼
                                                      ┌─────────────────────┐
                                                      │ 远程 SimpleHTTP 服务 │
                                                      │  /skill.md          │
                                                      │  /image/*.md 等子文件│
                                                      └─────────────────────┘

Beim Start (Lifespan, Lazy Loading):

  1. skill.md von REMOTE_SKILL_BASE_URL abrufen (leichtgewichtiger Fähigkeitskatalog, der beschreibt, welche Skill-Bereiche vorhanden sind);

  2. Die darin enthaltenen Markdown-Links / Bilder / nackten Datei-Tokens / Verzeichnisnamen parsen und für jede Referenz einen HEAD-Check durchführen (ohne den Inhalt herunterzuladen):

    • Referenz ist eine Datei → Pfad + MIME/Größe aufzeichnen;

    • Referenz ist ein Verzeichnis → dessen HTML-Listenseite per GET abrufen und die aufgelisteten Dateien aufzeichnen (ohne Dateiinhalte rekursiv herunterzuladen);

    • Bei 404 werden nackte Dateinamen automatisch in bekannten Verzeichnissen erneut versucht;

  3. Dynamisch MCP-Exponate generieren (description enthält nur die Pfadliste, nicht den Inhalt, um Kontextaufblähung zu vermeiden):

    • Tool get_skill_file(path) — Dateiinhalte bei Bedarf nach Pfad abrufen;

    • Ressource skill://<relativer Pfad> — eine Ressource pro gefundener Datei (Download erst bei read; Text inline, Binärdaten als base64);

    • Prompt skill / list_skills — gibt den vollständigen skill.md-Text / eine Zusammenfassung des Fähigkeitskatalogs zurück.

So sieht der Agent normalerweise nur „welche Fähigkeitsbereiche es gibt“ und ruft die detaillierte Dokumentation erst ab, wenn ein bestimmter Skill tatsächlich benötigt wird. Dadurch wird vermieden, dass alle Skill-Details auf einmal in den Kontext geladen werden. Falls skill.md nicht alle Dateien direkt auflistet und ein Drilldown in Verzeichnisse erforderlich ist, kann MCP_DISCOVER_DEPTH>=1 gesetzt werden, um N Ebenen rekursiv zu durchsuchen (dabei werden Zwischenebenen-Inhalte heruntergeladen, um weitere Referenzen zu parsen).


Related MCP server: skills-mcp-server

Funktionen

  • ✅ Basiert auf der Standard-MCP-SDK (FastMCP), vollständig MCP-konform, stdio-Transport

  • Lazy Loading: Beim Start wird nur skill.md gelesen, Unterdateien werden nur als Pfade aufgezeichnet, Inhalte werden bei Bedarf heruntergeladen (Kontextersparnis)

  • ✅ Dynamische Erkennung: HEAD-Check für Dateien + GET für Verzeichnislistenseiten, Parsen von Links/Bildern/nackten Dateinamen/Verzeichnisnamen in skill.md

  • ✅ 404-Wiederholung: Automatischer erneuter Versuch fehlgeschlagener Pfade in bekannten Verzeichnissen

  • ✅ MIME-Ermittlung: Bei content-type = application/octet-stream Fallback auf Dateiendung (.md usw. werden weiterhin als Text behandelt)

  • ✅ Drei Expositionsarten: Tool / Ressource / Prompt (description enthält nur die Pfadliste, nicht den Inhalt)

  • ✅ Schutz vor großen Dateien: Lesen wird bei Überschreitung von MCP_MAX_FILE_BYTES verweigert

  • ✅ Logs gehen nur an stderr, stdout wird ausschließlich für Protokollnachrichten verwendet

  • ✅ Tool-Fehler werden mit isError=True zurückgegeben (MCP-konform, Client wirft keine Ausnahme)

  • ✅ Für den LobeHub-MCP-Markt angepasst: enthält lhm.plugin.json-Manifest, pyproject.toml-Metadaten, MIT-Lizenz


Bereitgestellte MCP-Fähigkeiten

Typ

Name

Beschreibung

Tool

get_skill_file(path)

Dateiinhalt nach Pfad lesen (Text/Bild/Binär als base64)

Ressource

skill://<relativer Pfad>

Eine Ressourcen-URI pro gefundener Datei, per resources/read abrufbar

Prompt

skill

Gibt den vollständigen skill.md-Text zurück (Unterdatei über Parameter file wählbar)

Prompt

list_skills

Gibt eine Zusammenfassung der verfügbaren Skill-Bereiche zurück (Dateiliste)


Installation

cd remote_skill_mcp
pip install -r requirements.txt

Abhängigkeiten: mcp (Protokolltypen + stdio-Transport + FastMCP-Laufzeit), httpx (HTTP-Client).


Konfiguration (Umgebungsvariablen)

Variable

Standardwert

Beschreibung

REMOTE_SKILL_BASE_URL

http://192.168.2.6:4000

Basis-URL des Remote-Dienstes

SKILL_FILE

skill.md

Skill-Einstiegsdatei (relativ zu BASE_URL)

MCP_MAX_FILE_BYTES

524288 (512 KB)

Maximale Bytezahl pro Datei, wird bei Überschreitung verweigert

MCP_MAX_FILES

200

Obergrenze für aufgezeichnete Dateien

MCP_TIMEOUT

30

Einzelnes HTTP-Timeout (Sekunden)

MCP_DISCOVER_DEPTH

0

Erkundungstiefe: 0=nur skill.md lesen (Standard, sparsamste Variante); >=1 rekursiv N Ebenen

MCP_CACHE_READS

false

Gelesene Dateiinhalte cachen (spart wiederholte Anfragen, kostet aber Speicher)


Ausführung

Direkte Ausführung (Debugging)

export REMOTE_SKILL_BASE_URL=http://192.168.2.6:4000
python server.py

Der Dienst blockiert nach dem Start und wartet auf stdio-Eingaben.

Anbindung an MCP-Clients

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "remote-skill": {
      "command": "python",
      "args": ["/绝对路径/remote_skill_mcp/server.py"],
      "env": {
        "REMOTE_SKILL_BASE_URL": "http://192.168.2.6:4000"
      }
    }
  }
}

Cursor / andere stdio-MCP-fähige Clients funktionieren analog: server.py einfach als Unterprozess starten.


Veröffentlichung im LobeHub-MCP-Markt

Dieses Repository enthält bereits das Markt-Manifest lhm.plugin.json (mit identifier/name/version/author/homepage/icon/category/tags/description/tools/prompts/resources vollständig ausgefüllt).

  1. Sicherstellen, dass das Repository auf GitHub gepusht wurde (origin = git@github.com:Congenital/remote_skill_mcp.git);

  2. Markt-CLI installieren (Node.js ≥ 22 erforderlich) und anmelden:

    npx -y @lobehub/market-cli login
    npx -y @lobehub/market-cli github connect
  3. Veröffentlichen (liest lhm.plugin.json im Repository-Stammverzeichnis):

    npx -y @lobehub/market-cli plugin publish https://github.com/Congenital/remote_skill_mcp

    Für spätere Versionsupdates: npx -y @lobehub/market-cli plugin update (einfach version in lhm.plugin.json ändern).

Der Markt rankt nach Kriterien wie Aktivität / Stabilität / Community-Feedback. Dieses Manifest enthält bereits Autor, Homepage, Icon, Kategorie, Tags, Tools/Prompts/Ressourcen usw., um die Vollständigkeitsbewertung zu verbessern.


Tests

python tests/e2e_test.py

End-to-End-Tests starten den Server über mcp.ClientSession und verifizieren die gesamte Kette: initialize / tools/list / tools/call (einschließlich Fehler bei ungültigen Pfaden) / resources/list / resources/read / prompts/list / prompts/get (skill + list_skills).


Verzeichnisstruktur

remote_skill_mcp/
├── server.py            # MCP 服务(FastMCP 运行时 + 发现 + 工具/资源/提示词)
├── lhm.plugin.json      # LobeHub MCP 市场清单
├── pyproject.toml       # 项目元数据(名称/版本/作者/许可/入口点)
├── LICENSE              # MIT 许可
├── requirements.txt
├── README.md            # 中文文档
├── README.en.md         # 英文文档
└── tests/
    └── e2e_test.py      # 端到端测试

Anforderungen an den Remote-Dienst

  • Ein HTTP-Dienst, der Dateien statisch auflisten/herunterladen kann (z. B. python -m http.server);

  • skill.md im Stammverzeichnis (oder Einstiegsdatei über SKILL_FILE angeben);

  • Unterdateien mit relativen Pfaden referenzieren (Markdown-Links, Bilder, nackte Dateinamen, Verzeichnisname:-Form unterstützt).


Lizenz

MIT © Congenital

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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 Servers

  • A
    license
    A
    quality
    C
    maintenance
    Converts AI Skills (following Claude Skills format) into MCP server resources, enabling LLM applications to discover, access, and utilize self-contained skill directories through the Model Context Protocol. Provides tools to list available skills, retrieve skill details and content, and read supporting files with security protections.
    3
    27
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    MCP server that serves agent skills (SKILL.md bundles) to any MCP client, exposing them via tools and resources for tool-oriented and resource-aware clients.
    3
    20
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Serves SKILL.md-based skills as MCP resources and tools over streamable HTTP, enabling remote discovery and retrieval of skill files with full YAML frontmatter parsing.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

  • Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).

  • MCP server for skill documentation, generated by doc2mcp.

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/Congenital/remote_skill_mcp'

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