Kurd
Kurd
Python向けの高性能Model Context Protocol (MCP)ゲートウェイで、Rustを採用しています。
ステータス
Kurdは現在、開発初期段階にあります。
公開APIと内部アーキテクチャは、最初の安定版リリース前に変更される可能性があります。
Related MCP server: MCPilot
ハイライト
Pythonファーストの開発者体験
Rustを採用したネイティブコア
高速なJSON-RPC前処理
非同期ルーティングのサポート
PyO3で構築されたネイティブ拡張
Maturinによるパッケージングと配布
高スループットなMCPワークロード向けに設計
インストール
pip install kurdKurdは現在、開発初期段階にあります。すべてのPythonバージョンとオペレーティングシステムで、プラットフォーム固有のホイールがまだ利用できない場合があります。
クイックスタート
from kurd import Router
router = Router()
@router.tool(name="ping")
async def ping(value: int):
return value + 1JSON-RPCディスパッチ
KurdはJSON-RPCリクエストを、登録された非同期Pythonツールにルーティングできます。
import asyncio
from kurd import Router
router = Router()
@router.tool(name="add")
async def add(a: int, b: int):
return a + b
async def main():
response = await router.dispatch(
'{"jsonrpc":"2.0","id":1,"method":"add","params":{"a":2,"b":3}}'
)
print(response)
asyncio.run(main())応答の例:
{
"jsonrpc": "2.0",
"result": 5,
"id": "1"
}アーキテクチャ
KurdはPythonとRustのハイブリッドアーキテクチャを採用しています。
Python API
|
v
Kurd Router
|
v
PyO3
|
v
Rust Core
|
v
JSON-RPC ProcessingPythonは開発者向けAPIを提供し、パフォーマンスが重要な解析と前処理はRustコアが処理します。
パフォーマンス
初期のローカルマイクロベンチマークでは、KurdのRust JSON-RPC前処理パスが、同等の純Python実装よりも優れたパフォーマンスを発揮できることが示されています。
現在の測定値は実験的なものであり、本番環境でのパフォーマンスを保証するものとして解釈すべきではありません。
ベンチマークは、pyperfなどのツールを使用して実行されています:
スループット
平均レイテンシ
p50レイテンシ
p95レイテンシ
p99レイテンシ
PythonとRustの前処理パフォーマンス
再現可能なベンチマーク結果は、プロジェクトが成熟するにつれて公開される予定です。
開発
KurdにはPythonとRustが必要です。
推奨される開発環境:
Python 3.12+
Rust stable
Maturin
PyO3仮想環境を作成します:
python -m venv .venvWindows PowerShellでアクティブにします:
.\.venv\Scripts\Activate.ps1Maturinをインストールします:
python -m pip install maturinKurdを開発モードでビルドしてインストールします:
maturin develop --releaseテストスイートを実行します:
python -m pytest -qリリースホイールをビルドします:
maturin build --releaseプロジェクト構造
kurd-mcp/
├── kurd/
│ ├── __init__.py
│ ├── router.py
│ └── _kurd.*
│
├── src/
│ └── lib.rs
│
├── tests/
│
├── benchmarks/
│
├── Cargo.toml
├── pyproject.toml
├── README.md
└── LICENSEベンチマーク
Kurdには、Rustの前処理パスを同等の純Python処理と比較することに焦点を当てたベンチマーク作業が含まれています。
ローカルでのpyperf測定の例:
Python: 5.92 us
Rust: 2.26 us
Speedup: 2.62xこれらの数値は予備的なローカルマイクロベンチマークであり、本番環境でのパフォーマンスを保証するものではありません。
パフォーマンスは、以下によって異なる場合があります:
CPUアーキテクチャ
Pythonのバージョン
オペレーティングシステム
ペイロードサイズ
バッチサイズ
システム負荷
コンパイラ設定
Rustの最適化レベル
将来のベンチマークには、再現可能なクロスプラットフォーム測定が含まれる予定です。
ロードマップ
計画されている開発分野は次のとおりです:
MCPネイティブルーティング
ストリーミング可能なHTTPトランスポート
接続管理
リクエストルーティング
並行性制御
バックプレッシャー
タイムアウトとキャンセル
アップストリームのヘルスチェック
可観測性
構造化エラー処理
改善されたPython型サポート
クロスプラットフォームホイール
自動化されたCI/CDリリース
ベンチマークの自動化
Linux、macOS、Windowsでのパフォーマンステスト
設計目標
Kurdは、いくつかの中核となる原則に基づいて設計されています:
Pythonの人間工学
開発者は、シンプルで使い慣れたPython APIを通じてKurdを操作できる必要があります。
Rustのパフォーマンス
パフォーマンスが重要なプロトコル処理は、測定可能なメリットがある場合は常に、ネイティブのRustコードで処理する必要があります。
Python/Rust境界のオーバーヘッドを最小限に
データは、必要な場合にのみPython/Rust境界を越える必要があります。
Rustでデータを解析し、それをすぐにJSONにシリアライズしてPythonに再度解析させることは避ける必要があります。
MCPネイティブアーキテクチャ
Kurdは、単なる汎用JSON-RPCルーターに留まらず、MCP対応ゲートウェイへと進化することを目的としています。
測定可能なパフォーマンス
パフォーマンスの主張は、理論上の仮定ではなく、再現可能なベンチマークによって裏付けられる必要があります。
技術スタック
Kurdは現在、以下を使用しています:
Python
Rust
PyO3
Maturin
Tokio
Serde
serde_json
pytest
pyperf
Python API
公開APIは、Pythonフレンドリーなままであることを目的としています。
例:
from kurd import Router
router = Router()
@router.tool()
async def multiply(a: int, b: int):
return a * bリクエストは、ルーターを介してディスパッチできます:
response = await router.dispatch(
"""
{
"jsonrpc": "2.0",
"id": 1,
"method": "multiply",
"params": {
"a": 4,
"b": 5
}
}
"""
)エラー処理
Kurdは現在、基本的なJSON-RPCエラー応答をサポートしています:
-32700 Parse error
-32601 Method not found
-32602 Invalid params
-32603 Internal errorMCPプロトコルのサポートがより完全になるにつれて、エラー処理も進化し続けます。
ソースからのビルド
リポジトリをクローンします:
git clone https://github.com/sn391/kurd.git
cd kurd仮想環境を作成します:
python -m venv .venvアクティブにします:
.\.venv\Scripts\Activate.ps1開発用依存関係をインストールします:
python -m pip install --upgrade pip
python -m pip install maturin pytest pyperfRust拡張機能をビルドします:
maturin develop --releaseテストを実行します:
python -m pytest -q配布可能なホイールをビルドします:
maturin build --release生成されたホイールは、次の場所に配置されます:
target/wheels/テスト
次のコマンドで完全なテストスイートを実行します:
python -m pytest -q現在のテストでは、次のような領域をカバーしています:
パッケージのインポート
Rust拡張機能の利用可能性
有効なJSON解析
無効なJSON解析
パラメータ抽出
ルーターディスパッチ
メソッドが見つからない場合の処理
無効なパラメータ
内部エラー
プロジェクトの開発に伴い、追加の統合テストとトランスポートテストが追加される予定です。
パッケージレイアウト
Kurdは、PythonとRustのハイブリッドパッケージです。
Pythonパッケージは、開発者向けAPIを公開します:
kurd/
├── __init__.py
├── router.py
└── _kurd.*ネイティブ拡張機能はRustで実装されています:
src/
└── lib.rsプライベートなネイティブモジュールは、内部的に次のように公開されます:
kurd._kurdユーザーは通常、以下で公開されている公開APIを介して操作する必要があります:
import kurdプライベートなネイティブ実装の詳細に直接依存するのではなく。
互換性
このプロジェクトは現在、主に以下を使用して開発およびテストされています:
Python 3.12
Windows x86-64
Rust stable追加のPythonバージョン、オペレーティングシステム、アーキテクチャのサポートは、自動化されたホイールビルドを通じて追加される予定です。
貢献
Kurdは現在、開発の初期段階にあります。
公開APIとアーキテクチャが安定化するにつれて、貢献ガイドラインが追加される予定です。
バグ、アイデア、技術的な議論については、GitHubのイシュートラッカーを使用してください:
https://github.com/sn391/kurd/issuesセキュリティ
Kurdはまだ本番環境に対応しているとは見なされていません。
セキュリティの問題を発見した場合は、公開イシューに機密性の高いエクスプロイトの詳細を公開しないでください。
専用のセキュリティポリシーと非公開の脆弱性報告プロセスは、プロジェクトが本番環境への準備が整うにつれて追加される予定です。
ライセンス
KurdはMITライセンスの下でリリースされています。
名前
Kurdという名前は、クルド人のアイデンティティと遺産に敬意を表しています。 Bezhi Kurd u Kurdistan
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA lightweight, fast MCP server that provides onchain capabilities for the LLMs and Agents.34 npm253MIT
- FlicenseCqualityDmaintenanceA powerful gateway for the Model Context Protocol (MCP) that unifies AI toolchains by federating multiple MCP servers, wrapping REST APIs as MCP tools, and supporting multiple transport methods with an admin dashboard.1-
- AlicenseNot gradedqualityDmaintenanceEnables building lightweight MCP servers where Rust handles transport, routing, and schema validation while Python defines tool behavior using type hints, with support for stdio and HTTP transports.MIT
- AlicenseAqualityAmaintenanceSemantic tool-routing gateway for MCP servers that cuts 70-90% of context tokens, with RBAC, API-key auth, response caching, hot-reload config, and a real-time observability dashboard.313MIT