Qilin MCP Framework 🌩️🐲🌩️ について
Qilinは、Model Context Protocolサーバーを構築するためのGoフレームワークです。設定なしで起動でき、GoのWeb開発者になじみのあるハンドラーパターンと、stdioおよびStreamable HTTPのトランスポートに対応します。
主な機能
- 01設定不要のサーバー起動
- 02stdioとStreamable HTTP対応
- 03ツールの一覧表示と呼び出し
- 04リソースの一覧表示と読み取り
- 05ツールとリソースのミドルウェア
- 06リソーステンプレートとサブスクリプション
活用シーン
- 01最小限の設定でGo MCPサーバーを起動
- 02Goアプリケーションからツールを公開
- 03リソースとリソーステンプレートを提供
- 04ツールやリソースのハンドラーにミドルウェアを追加
MCP 対応
QilinはMCPサーバー実装用のGoフレームワークです。stdioとStreamable HTTPに対応し、ツール、リソース、テンプレート、サブスクリプション、ミドルウェアを提供します。プロンプト対応は未実装として記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Qilin 🌩️🐲🌩️ – Go 向け Model Context Protocol フレームワーク
🌟 主な特徴
| ⚡ 設定不要のサーバー | qilin.New().Start() で、STDIN/STDOUT 上で MCP サーバーを起動できます |
| 🤝 おなじみの操作感 | Go のよく知られた Web アプリケーションフレームワークに着想を得たハンドラーです。これらに慣れた開発者なら、すぐに使いこなせます。 |
| ⏩ ストリーミング可能な HTTP | ストリーミング可能な HTTP トランスポートをサポートします。 |
🚀 クイックスタート
go get github.com/miyamo2/qilin
package main
import (
"fmt"
"github.com/miyamo2/qilin"
"maps"
)
type OrderBeerRequest struct {
BeerName string `json:"beer_name" jsonschema:"title=Beer Name"`
Quantity int `json:"quantity" jsonschema:"title=Quantity of Beers"`
}
type OrderBeerResponse struct {
Amount float64 `json:"amount"`
}
var beers = map[string]string{
"IPA": "A hoppy beer with a bitter finish.",
"Stout": "A dark beer with a rich, roasted flavor.",
"Lager": "A light, crisp beer with a smooth finish.",
}
func main() {
q := qilin.New("beer hall", qilin.WithVersion("v0.1.0"))
q.Resource("menu_list",
"resources://beer_list",
func(c qilin.ResourceContext) error {
return c.JSON(maps.Keys(beers))
})
q.Tool("order_beer",
(*OrderBeerRequest)(nil),
func(c qilin.ToolContext) error {
var req OrderBeerRequest
if err := c.Bind(&req); err != nil {
return err
}
_, ok := beers[req.BeerName]
if !ok {
return fmt.Errorf("beer %s not found", req.BeerName)
}
amount := 8 * req.Quantity // Assume unit cost of all beers is $8.00.
return c.JSON(OrderBeerResponse{Amount: float64(amount)})
})
q.Start() // listen on stdio
}
詳しい使い方については、Qilin ユーザーガイドを参照してください。
🛤 ロードマップ
トランスポート
- Stdio
- ストリーミング可能な HTTP
機能
- ツール
- 一覧表示
- 呼び出し
- ミドルウェア
- リソース
- 一覧表示
- 読み取り
- ミドルウェア
- テンプレート
- 一覧変更通知
- サブスクリプション
- プロンプト
📜 ライセンス
Qilin はMIT ライセンスのもとで公開されています
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。