mcp-server-llmling について
LLM アプリケーション環境を構成する開発者向けの mcp-server-llmling です。YAML でリソース、プロンプト、ツールを宣言でき、複数のコンテンツソース、リソースのホットリロード、各種トランスポートに対応します。
主な機能
- 01YAML によるコンポーネント宣言
- 02複数種類のリソース管理
- 03リソース監視とホットリロード
- 04Python・OpenAPI ツールの登録
- 05静的・動的プロンプトの管理
- 06stdio・SSE・Streamable HTTP 対応
活用シーン
- 01ファイルやコマンド出力からコンテキストを提供
- 02Python 関数を LLM ツールとして設定
- 03クライアントごとのプロンプトとリソースの構成
MCP 対応
リソースの読み取りと変更通知、ツール実行、プロンプト管理を MCP クライアントに提供します。stdio、SSE、Streamable HTTP の各トランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-llmling
LLMling Server Manual
概要
mcp-server-llmling は、LLM アプリケーション向けの YAML ベースの設定システムを提供する、Machine Chat Protocol(MCP)用のサーバーです。
バックエンドの LLMLing は、LLM アプリケーション向けの YAML ベースの設定システムを提供します。 YAML ファイルで定義されたコンテンツを提供する、カスタム MCP サーバーを設定できます。
- 静的宣言:LLM の環境を YAML で定義します。コードは不要です
- MCP プロトコル:LLM との標準化されたやり取りを実現するため、Machine Chat Protocol(MCP)を基盤としています
- コンポーネントの種類:
- リソース:コンテンツプロバイダー(ファイル、テキスト、CLI 出力など)
- プロンプト:引数付きのメッセージテンプレート
- ツール:LLM から呼び出し可能な Python 関数
YAML 設定により、LLM に次のものを提供する完全な環境を構築できます。
- リソースを介したコンテンツへのアクセス
- 一貫したやり取りを実現する構造化プロンプト
- 機能を拡張するツール
主な機能
1. リソース管理
- さまざまな種類のリソースを読み込み、管理します。
- テキストファイル(
PathResource) - 生テキストコンテンツ(
TextResource) - CLI コマンドの出力(
CLIResource) - Python ソースコード(
SourceResource) - Python 呼び出し可能オブジェクトの結果(
CallableResource) - 画像(
ImageResource)
- テキストファイル(
- リソースの監視/ホットリロードに対応
- リソース処理パイプライン
- URI ベースのリソースアクセス
2. ツールシステム
- Python 関数を LLM ツールとして登録し、実行します
- OpenAPI ベースのツールに対応
- エントリーポイントベースのツール検出
- ツールの検証とパラメーターのチェック
- 構造化されたツール応答
3. プロンプト管理
- テンプレートに対応した静的プロンプト
- Python 関数による動的プロンプト
- ファイルベースのプロンプト
- プロンプト引数の検証
- プロンプト引数の補完候補
4. 複数のトランスポート方式
- Stdio ベースの通信(デフォルト)
- ウェブクライアント向けの Server-Sent Events(SSE)/Streamable HTTP
- カスタムトランスポートの実装に対応
使い方
Zed Editor での使用
settings.json に LLMLing をコンテキストサーバーとして追加します。
{
"context_servers": {
"llmling": {
"command": {
"env": {},
"label": "llmling",
"path": "uvx",
"args": [
"mcp-server-llmling",
"start",
"path/to/your/config.yml"
]
},
"settings": {}
}
}
}
Claude Desktop での使用
claude_desktop_config.json で LLMLing を設定します。
{
"mcpServers": {
"llmling": {
"command": "uvx",
"args": [
"mcp-server-llmling",
"start",
"path/to/your/config.yml"
],
"env": {}
}
}
}
サーバーの手動起動
コマンドラインからサーバーを直接起動します。
# Latest version
uvx mcp-server-llmling@latest
1. プログラムからの使用
from llmling import RuntimeConfig
from mcp_server_llmling import LLMLingServer
async def main() -> None:
async with RuntimeConfig.open(config) as runtime:
server = LLMLingServer(runtime, enable_injection=True)
await server.start()
asyncio.run(main())
2. カスタムトランスポートの使用
from llmling import RuntimeConfig
from mcp_server_llmling import LLMLingServer
async def main() -> None:
async with RuntimeConfig.open(config) as runtime:
server = LLMLingServer(
config,
transport="sse",
transport_options={
"host": "localhost",
"port": 3001,
"cors_origins": ["http://localhost:3000"]
}
)
await server.start()
asyncio.run(main())
3. リソースの設定
resources:
python_code:
type: path
path: "./src/**/*.py"
watch:
enabled: true
patterns:
- "*.py"
- "!**/__pycache__/**"
api_docs:
type: text
content: |
API Documentation
================
...
4. ツールの設定
tools:
analyze_code:
import_path: "mymodule.tools.analyze_code"
description: "Analyze Python code structure"
toolsets:
api:
type: openapi
spec: "https://api.example.com/openapi.json"
ヒント
OpenAPI スキーマには、LLMLing で使用する前に OpenAPI 仕様をバンドルして解決するため、Redocly CLI をインストールできます。これにより、スキーマ参照が適切に解決され、仕様が正しくフォーマットされていることを確認できます。redocly がインストールされている場合は、自動的に使用されます。
サーバーの設定
サーバーは、次のセクションを含む YAML ファイルで設定します。
global_settings:
timeout: 30
max_retries: 3
log_level: "INFO"
requirements: []
pip_index_url: null
extra_paths: []
resources:
# Resource definitions...
tools:
# Tool definitions...
toolsets:
# Toolset definitions...
prompts:
# Prompt definitions...
MCP プロトコル
このサーバーは、次の機能をサポートする MCP プロトコルを実装しています。
-
リソース操作
- 利用可能なリソースの一覧表示
- リソースコンテンツの読み取り
- リソースの変更の監視
-
ツール操作
- 利用可能なツールの一覧表示
- パラメーターを指定したツールの実行
- ツールスキーマの取得
-
プロンプト操作
- 利用可能なプロンプトの一覧表示
- フォーマット済みプロンプトの取得
- プロンプト引数の補完候補の取得
-
通知
- リソースの変更
- ツール/プロンプト一覧の更新
- 進捗状況の更新
- ログメッセージ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。