Kurd
Kurd
一个由 Rust 驱动、面向 Python 的高性能模型上下文协议(MCP)网关。
状态
Kurd 目前处于早期开发阶段。
在首个稳定版本发布之前,公共 API 和内部架构可能会发生变化。
亮点
Python 优先的开发者体验
Rust 驱动的原生核心
快速的 JSON-RPC 预处理
异步路由支持
使用 PyO3 构建的原生扩展
使用 Maturin 进行打包和分发
专为高吞吐量 MCP 工作负载设计
安装
pip install kurdKurd 目前处于早期开发阶段。可能尚未为所有 Python 版本和操作系统提供特定平台的 wheel 包。
快速开始
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 .venv在 Windows PowerShell 中激活它:
.\.venv\Scripts\Activate.ps1安装 Maturin:
python -m pip install maturin以开发模式构建并安装 Kurd:
maturin develop --release运行测试套件:
python -m pytest -q构建发布版 wheel 包:
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 类型支持
跨平台 wheel 包
自动化 CI/CD 发布
基准测试自动化
Linux、macOS 和 Windows 性能测试
设计目标
Kurd 的设计围绕以下几个核心原则:
Python 易用性
开发者应通过简单且熟悉的 Python API 与 Kurd 交互。
Rust 性能
只要能够带来可衡量的收益,性能敏感的协议处理就应由原生 Rust 代码负责。
最小化 Python/Rust 边界开销
数据应仅在必要时跨越 Python/Rust 边界。
应避免在 Rust 中解析数据后立即将其序列化回 JSON,再让 Python 重新解析。
MCP 原生架构
Kurd 旨在演进为 MCP 感知的网关,而不仅仅是通用的 JSON-RPC 路由器。
可衡量的性能
性能声明应得到可复现基准测试的支持,而非仅凭理论假设。
技术栈
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 error随着 MCP 协议支持变得更加完善,错误处理也将继续演进。
从源码构建
克隆仓库:
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 pyperf构建 Rust 扩展:
maturin develop --release运行测试:
python -m pytest -q构建可分发的 wheel 包:
maturin build --release生成的 wheel 包位于:
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将通过自动化 wheel 构建来增加对更多 Python 版本、操作系统和架构的支持。
贡献
Kurd 目前处于早期开发阶段。
随着公共 API 和架构趋于稳定,将添加贡献指南。
如有 bug、想法或技术讨论,请使用 GitHub issue 跟踪器:
https://github.com/sn391/kurd/issues安全
Kurd 尚未被视为生产就绪。
如果您发现安全漏洞,请避免在公开 issue 中发布敏感的漏洞利用细节。
随着项目接近生产就绪,将添加专门的安全策略和私密漏洞报告流程。
许可证
Kurd 以 MIT 许可证发布。
名称
Kurd 这个名字致敬库尔德人的身份认同与文化遗产。 Bezhi Kurd u Kurdistan
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 Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
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/sn391/kurd'
If you have feedback or need assistance with the MCP directory API, please join our Discord server