Token导航 LogoToken导航TokenDH.com
Kodegen MCP Client logo
数据服务未说明官方级别未说明来源级核验

Kodegen MCP Client

MCP Server

一个用于与MCP服务器交互的Rust客户端库,专为KODEGEN.ᴀɪ数据库查询和模式探索工具设计。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
类型安全Rust数据分析

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cyrup-ai

提供方

cyrup-ai

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

编码器-mcp-client

![License](LICENSE.md) ![Rust](https://www.rust-lang.org)

用于与以下对象交互的Rust客户端库 MCP(模型上下文协议) 服务器,专为 KODEGEN.017424- 数据库查询和模式探索工具。

特性

类型安全MCP客户端

  • 适用于所有100+KODEGEN工具的强类型响应结构
  • 编译时类型检查 call_tool_typed()
  • 对两者的支持 camelCasesnake_case 字段名称

🚀 异步高效

  • 基于Tokio构建,用于高性能异步操作
  • 克隆客户端句柄成本低廉(内部基于Arc)
  • 具有合理默认值的可配置超时

🔌 多个传输

  • HTTP/SSE(服务器发送事件)
  • 流式HTTP
  • 运输选择方便

🛡️ 稳健的错误处理

  • 具有上下文的全面错误类型
  • 清除调试错误消息
  • 带有操作详细信息的超时跟踪

安装

添加到您的 Cargo.toml:

[dependencies]
kodegen_mcp_client = "0.1"

要求:

  • 锈蚀夜间工具链
  • Tokio异步运行时

快速开始

use kodegen_mcp_client::{create_streamable_client, tools, X_SESSION_PWD, X_SESSION_GITROOT};
use reqwest::header::{HeaderMap, HeaderValue};
use serde_json::json;

#[tokio::main]
async fn main() -> Result> {
    // Build session context headers
    let mut headers = HeaderMap::new();
    let cwd = std::env::current_dir()?;
    headers.insert(X_SESSION_PWD, HeaderValue::from_str(&cwd.to_string_lossy())?);
    // Add git root if available
    if let Some(git_root) = find_git_root(&cwd) {
        headers.insert(X_SESSION_GITROOT, HeaderValue::from_str(&git_root.to_string_lossy())?);
    }

    // Create client connection with session headers
    let (client, _conn) = create_streamable_client("http://localhost:8000/mcp", headers).await?;

    // List available tools
    let tools = client.list_tools().await?;
    println!("Available tools: {}", tools.len());

    // Call a tool with JSON arguments
    let result = client.call_tool(
        tools::LIST_SCHEMAS,
        json!({}),
    ).await?;

    println!("Result: {:?}", result);

    Ok(())
}

fn find_git_root(start: &std::path::Path) -> Option {
    let mut current = start.to_path_buf();
    loop {
        if current.join(".git").exists() {
            return Some(current);
        }
        if !current.pop() {
            return None;
        }
    }
}

使用示例

类型安全工具调用

使用强类型响应而不是手动JSON解析:

use kodegen_mcp_client::responses::StartSearchResponse;
use kodegen_mcp_client::tools;

// Type-safe tool call with automatic deserialization
let response: StartSearchResponse = client
    .call_tool_typed(tools::START_SEARCH, json!({
        "path": "/project",
        "pattern": "*.rs",
        "searchType": "files"
    }))
    .await?;

// Use the typed response
println!("Search session ID: {}", response.session_id);

可克隆的客户端句柄

客户端句柄的克隆成本很低,可以跨任务共享:

use reqwest::header::HeaderMap;

let (client, _conn) = create_streamable_client(url, HeaderMap::new()).await?;

// Clone the client for concurrent operations
let client2 = client.clone();
tokio::spawn(async move {
    client2.list_tools().await
});

// Original client still works
client.call_tool(tools::READ_FILE, args).await?;

自定义超时

use reqwest::header::HeaderMap;
use tokio::time::Duration;

let (client, _conn) = create_streamable_client(url, HeaderMap::new()).await?;

// Set custom timeout (default is 10 minutes)
let client = client.with_timeout(Duration::from_secs(60));

GitHub集成

use kodegen_mcp_client::responses::{GitHubIssuesResponse, GitHubIssue};

let response: GitHubIssuesResponse = client
    .call_tool_typed(tools::LIST_ISSUES, json!({
        "owner": "myorg",
        "repo": "myrepo",
        "state": "open"
    }))
    .await?;

for issue in response.issues {
    println!("#{}: {}", issue.number, issue.title);
}

数据库操作

use kodegen_mcp_client::tools;

// Execute SQL query
let result = client.call_tool(tools::EXECUTE_SQL, json!({
    "query": "SELECT * FROM users WHERE active = true",
    "database": "production"
})).await?;

// Get table schema
let schema = client.call_tool(tools::GET_TABLE_SCHEMA, json!({
    "table_name": "users",
    "schema": "public"
})).await?;

建筑

手柄+连接方式

该库使用双结构模式进行资源管理:

  • KodegenClient:用于执行MCP操作的克隆手柄成本低廉

- 跨异步任务自由克隆和共享 - 包裹 Arc 内部用于高效克隆 - 线程安全且可共享

  • KodegenConnection:不可克隆的生命周期管理器

- 只要连接保持活动状态,就必须保持 - 提供 close() 用于优雅关机 - 断开连接时自动取消连接

use reqwest::header::HeaderMap;

let (client, _conn) = create_streamable_client(url, HeaderMap::new()).await?;
// client: Clone freely
// _conn: Hold until shutdown desired (auto-cleanup on drop)

可用工具类别

该库提供对100+KODEGEN的类型安全访问。ᴀ多种类别的工具:

  • 文件系统 (14个工具):文件操作、搜索、目录管理
  • 终端 (5个工具):命令执行、流程管理
  • 数据库 (7个工具):模式探索、查询执行、连接池
  • Git (20个工具):存储库操作、分支、提交、工作树
  • GitHub (25个工具):问题、PR、评论、代码搜索、存储库
  • 克劳德特工 (5个工具):多代理编排、生成、通信
  • 网络爬虫 (4个工具):网站爬行、搜索、内容提取
  • 配置 (2个工具):服务器配置管理
  • 提示 (4个工具):模板管理和渲染
  • 顺序思维 (1个工具):思维链推理

所有工具名称在 tools 模块。

错误处理

该库提供了具有上下文的全面错误类型:

use kodegen_mcp_client::ClientError;

match client.call_tool(tools::READ_FILE, args).await {
    Ok(result) => println!("Success: {:?}", result),
    Err(ClientError::Timeout(msg)) => eprintln!("Timeout: {}", msg),
    Err(ClientError::ParseError(msg)) => eprintln!("Parse error: {}", msg),
    Err(ClientError::Connection(msg)) => eprintln!("Connection failed: {}", msg),
    Err(e) => eprintln!("Other error: {}", e),
}

错误变体:

  • Protocol:MCP协议错误
  • Timeout:操作超时(包括持续时间)
  • ParseError:响应反序列化失败
  • Connection:传输连接失败
  • ServiceError, InitError, Io, JoinError:低级错误

运输选项

流式HTTP(推荐)

use kodegen_mcp_client::create_streamable_client;
use reqwest::header::HeaderMap;

let (client, conn) = create_streamable_client("http://localhost:8000/mcp", HeaderMap::new()).await?;

HTTP/SSE(服务器发送事件)

use kodegen_mcp_client::transports::http::create_http_client;

let (client, conn) = create_http_client("http://localhost:8000/mcp").await?;

发展

建筑

cargo build              # Debug build
cargo build --release    # Release build

测试

cargo test               # Run all tests
cargo test --lib         # Library tests only

装订和格式化

cargo clippy             # Run linter
cargo fmt                # Format code

文档

cargo doc --open         # Build and open docs

许可证

根据Apache 2.0或MIT条款双重许可。

许可证.md 了解详情。

链接

______________________________________________________________________

版权所有©2025大卫·枫树/KODEGEN。ᴀɪ

目录标签

目录标签

类型安全Rust数据分析Rust库本地部署数据库查询模式探索异步处理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP