kontext-dev 0.2.2

Rust SDK for accessing Kontext-Dev MCP servers.
Documentation

Kontext-Dev SDK (Rust)

Rust SDK for authenticating MCP clients against Kontext and handling hosted integration-connect flows.

Install

[dependencies]
kontext-dev = "0.2.1"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

Quickstart (PKCE + MCP Gateway Token)

use kontext_dev::{KontextDevClient, KontextDevConfig, DEFAULT_RESOURCE, DEFAULT_SCOPE, DEFAULT_SERVER_NAME};

#[tokio::main]
async fn main() -> Result<(), kontext_dev::KontextDevError> {
    let client = KontextDevClient::new(KontextDevConfig {
        server: Some("https://api.kontext.dev".to_string()),
        mcp_url: None,
        token_url: None,
        client_id: "your-application-client-id".to_string(),
        client_secret: None,
        scope: DEFAULT_SCOPE.to_string(),
        server_name: DEFAULT_SERVER_NAME.to_string(),
        resource: DEFAULT_RESOURCE.to_string(),
        integration_ui_url: Some("https://app.kontext.dev".to_string()),
        integration_return_to: None,
        open_connect_page_on_login: true,
        auth_timeout_seconds: 300,
        token_cache_path: None,
    });

    // Opens browser if needed, caches tokens, and returns
    // an mcp-gateway resource token.
    let session = client.authenticate_mcp().await?;

    // Use this for MCP streamable-http transport.
    let mcp_url = client.mcp_url()?;
    println!("MCP URL: {mcp_url}");
    println!("Bearer {}", session.gateway_token.access_token);

    Ok(())
}

Integration Connect URL

let url = client
    .create_integration_connect_url(&session.gateway_token.access_token)
    .await?;
println!("Open this URL to connect integrations: {url}");

What This SDK Provides

  • Browser PKCE login for OAuth authorization code flow.
  • RFC 8693 token exchange (identity -> mcp-gateway by default).
  • Token caching to avoid repeated browser logins.
  • Hosted integration connect helpers:
    • POST /mcp/connect-session
    • POST /mcp/integrations/:id/oauth/init
    • GET /mcp/integrations/:id/oauth/connection

Legacy Compatibility

Legacy client-credentials helpers remain available for migration:

  • request_access_token
  • build_mcp_url (appends access_key=...)

New integrations should prefer bearer tokens with KontextDevClient::authenticate_mcp.