Connect to an MCP serverYou initialize one negotiated MCP session over the transport that fits your deployment. Streamable HTTP is the normal current choice for a remote server.rustacademyacademy/topics/mcp-lifecycle-transportswebsite/content-src/academy/course.mjsacademyConnect to an MCP server
You initialize one negotiated MCP session over the transport that fits your deployment. Streamable HTTP is the normal current choice for a remote server.
AxMCPClient8 focused minutesNot started
Unit example (nearest native match)
See the idea in context
let context = AxExecutionContext::new(vec![mcp.clone()], vec![])?;
let catalog = mcp.lock().unwrap().inspect_catalog(false)?;
let mut program = ax("request:string -> answer:string")?.with_execution_context(context)?;
mcp.lock().unwrap().close()?;
Create the transport
Streamable HTTP connects the client to the remote URL.
Create one client session
AxMCPClient owns negotiation and the protocol lifecycle.
Use a namespace
orders keeps discovered names clear when several servers are attached.
Run itIn your own project
cargo add axllm
use axllm::{ai, ax};
use serde_json::json;
let llm = ai("openai", json!({"apiKey": std::env::var("OPENAI_API_KEY")?}))?;
let classify = ax("review:string -> sentiment:class \"positive, negative, neutral\"")?;
Set OPENAI_APIKEY in your environment before running provider-backed code.
In the ax repo
From a clone of the ax repo:
npm run example -- rust src/examples/rust/mcp/native_mcp_tools.rs