vtcode-core 0.19.1

Core library for VTCode - a Rust-based terminal coding agent
Documentation
use std::collections::HashMap;

use vtcode_core::config::mcp::{
    McpClientConfig, McpProviderConfig, McpStdioServerConfig, McpTransportConfig,
};
use vtcode_core::mcp_client::McpClient;

#[tokio::test]
#[ignore]
async fn context7_list_tools_smoke() {
    let provider = McpProviderConfig {
        name: "context7".to_string(),
        transport: McpTransportConfig::Stdio(McpStdioServerConfig {
            command: "npx".to_string(),
            args: vec!["-y".to_string(), "@upstash/context7-mcp@latest".to_string()],
            working_directory: None,
        }),
        env: HashMap::new(),
        enabled: true,
        max_concurrent_requests: 1,
    };

    let mut config = McpClientConfig::default();
    config.enabled = true;
    config.providers = vec![provider];

    let mut client = McpClient::new(config);
    client.initialize().await.unwrap();

    let tools = client.list_tools().await.unwrap();
    assert!(
        !tools.is_empty(),
        "context7 should expose at least one tool"
    );
}