remote-skill-mcp
remote-skill-mcp
リモートHTTPサービス上のスキルファイル(
skill.mdおよびそのサブファイル)を動的に MCP(Model Context Protocol) ツール・リソース・プロンプトとして公開し、任意のMCPクライアント(Claude Desktop、Cursor、LobeHub など)が stdio 経由でリモートスキルドキュメントを直接読み取れるようにします。
📖 English documentation / 英文ドキュメント: README.en.md
標準MCP SDK の FastMCP ランタイムに基づく実装(手書きのJSON-RPCプロトコル層ではない)であり、MCP仕様に完全準拠、任意のMCPクライアントから直接接続可能です。また、LobeHub MCP マーケットにも対応済みです(lhm.plugin.json 参照)。
動作原理(遅延ロード、コンテキスト節約)
┌─────────────┐ stdio (newline-delimited JSON-RPC) ┌──────────────────┐
│ MCP 客户端 │ ◄────────────────────────────────────► │ server.py │
│ (Claude等) │ initialize / tools/* / │ (本仓库) │
└─────────────┘ resources/* / prompts/* └────────┬─────────┘
│ HTTP GET/HEAD
▼
┌─────────────────────┐
│ 远程 SimpleHTTP 服务 │
│ /skill.md │
│ /image/*.md 等子文件│
└─────────────────────┘起動時(lifespan、遅延ロード):
REMOTE_SKILL_BASE_URLからskill.mdを取得(軽量な能力カタログ。どのようなスキル方向があるかを記述);その中の markdown リンク / 画像 / ベアファイルトークン / ディレクトリ名 を解析し、各参照に対して HEAD プローブ を実行(本文はダウンロードしない):
参照がファイル → パス + mime/size を記録;
参照がディレクトリ → その HTML リストページを GET し、列挙されたファイルを記録(ファイル本文は再帰的にダウンロードしない);
404 のベアファイル名は既知のディレクトリ内で自動リトライ;
MCP 公開物を動的生成(description にはパス一覧のみを含め、本文は含めない。コンテキストの膨張を防ぐ):
ツール
get_skill_file(path)—— パスに応じてオンデマンドでファイル内容を取得;リソース
skill://<相対パス>—— 発見された各ファイルに1リソース(read時にのみダウンロード;テキストはインライン、バイナリは base64 に変換);プロンプト
skill/list_skills——skill.md全文 / 能力カタログの要約を返す。
これにより、エージェントは普段は「どのような能力方向があるか」だけを確認し、実際に特定のスキルを使うときに詳細ドキュメントを取得します。 すべてのスキル詳細を一度にコンテキストへ流し込むことを避けます。
skill.mdが全ファイルを直接列挙しておらず、ディレクトリの掘り下げが必要な場合は、MCP_DISCOVER_DEPTH>=1を設定して N 層再帰します(より多くの参照を解析するため中間層の本文をダウンロードします)。
Related MCP server: skills-mcp-server
特徴
✅ 標準MCP SDK(
FastMCP)に基づく実装、MCP仕様に完全準拠、stdio トランスポート✅ 遅延ロード:起動時は
skill.mdのみ読み取り、サブファイルはパスのみ記録、本文はオンデマンドでダウンロード(コンテキスト節約)✅ 動的発見:HEAD プローブでファイル検出 + GET でディレクトリリストページ取得、
skill.mdのリンク/画像/ベアファイル/ディレクトリ名を解析✅ 404 リトライ:失敗したパスを既知のディレクトリ内で自動リトライ
✅ MIME 推測:
content-typeがapplication/octet-streamの場合、拡張子でフォールバック(.mdなどは引き続きテキストとして扱う)✅ 3種類の公開方法:ツール / リソース / プロンプト(description はパス一覧のみ、本文は含まない)
✅ 大ファイル保護:
MCP_MAX_FILE_BYTESを超えると読み取り拒否✅ ログは stderr のみ、stdout はプロトコルメッセージ専用
✅ ツールエラーは
isError=Trueで返す(MCP 規約に準拠、クライアントで例外を投げない)✅ LobeHub MCP マーケット対応:
lhm.plugin.jsonマニフェスト、pyproject.tomlメタデータ、MIT ライセンスを含む
提供される MCP 機能
タイプ | 名前 | 説明 |
ツール |
| パスに応じてファイル内容を読み取り(テキスト/画像/バイナリ base64) |
リソース |
| 発見された各ファイルに1リソース URI、 |
プロンプト |
|
|
プロンプト |
| 利用可能なスキル方向の要約(ファイル一覧)を返す |
インストール
cd remote_skill_mcp
pip install -r requirements.txt依存:mcp(プロトコル型 + stdio トランスポート + FastMCP ランタイム)、httpx(HTTP クライアント)。
設定(環境変数)
変数 | デフォルト値 | 説明 |
|
| リモートサービスのルートアドレス |
|
| スキルエントリファイル(BASE_URL からの相対パス) |
|
| 単一ファイルの最大バイト数、超過すると拒否 |
|
| 記録するファイル数の上限 |
|
| 単回 HTTP タイムアウト(秒) |
|
| 発見深度: |
|
| 読み取ったファイル内容をキャッシュするか(重複リクエスト節約、ただしメモリ消費) |
実行
直接実行(デバッグ)
export REMOTE_SKILL_BASE_URL=http://192.168.2.6:4000
python server.pyサービス起動後、stdio 入力を待ってブロックします。
MCP クライアントへの接続
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 / その他 stdio MCP 対応クライアントも同様に、server.py を子プロセスとして起動します。
LobeHub MCP マーケットへの公開
本リポジトリにはマーケットマニフェスト lhm.plugin.json(identifier/name/version/author/homepage/icon/category/tags/description/tools/prompts/resources 完備)が含まれています。
リポジトリが GitHub に push 済みであることを確認(
origin=git@github.com:Congenital/remote_skill_mcp.git);マーケット CLI をインストール(Node.js ≥ 22 が必要)してログイン:
npx -y @lobehub/market-cli login npx -y @lobehub/market-cli github connect公開(本リポジトリのルートにある
lhm.plugin.jsonを読み取る):npx -y @lobehub/market-cli plugin publish https://github.com/Congenital/remote_skill_mcp以降のバージョン更新:
npx -y @lobehub/market-cli plugin update(lhm.plugin.jsonのversionを変更するだけ)。
マーケットは アクティビティ / 安定性 / コミュニティフィードバック などの観点でランキングされます。本マニフェストは 作者、ホームページ、アイコン、カテゴリ、タグ、ツール/プロンプト/リソース などのフィールドを補完し、完全性スコアを向上させています。
テスト
python tests/e2e_test.pyエンドツーエンドテストは mcp.ClientSession でサーバーを起動し、initialize / tools/list / tools/call(不正パスエラー含む)/ resources/list / resources/read / prompts/list / prompts/get(skill + list_skills)の全チェーンを検証します。
ディレクトリ構造
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 # 端到端测试リモートサービスの要件
ファイルを静的に列挙/ダウンロードできる HTTP サービス(例:
python -m http.server);ルートディレクトリに
skill.mdがある(またはSKILL_FILEでエントリを指定);サブファイルは相対パスで参照(markdown リンク、画像、ベアファイル名、
ディレクトリ名:形式に対応)。
ライセンス
MIT © Congenital
This server cannot be installed
Maintenance
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
- AlicenseAqualityCmaintenanceConverts 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.327Apache 2.0
- AlicenseAqualityDmaintenanceExposes Cursor-style skill packs (SKILL.md trees) via MCP resources, tools, and prompts, enabling any MCP client to list, get, search skills, and retrieve skill context.320ISC
- AlicenseAqualityCmaintenanceMCP 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.320ISC
- AlicenseNot gradedqualityCmaintenanceServes 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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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