Expand description
Server discovery for the ContextVM protocol.
Discover MCP servers and their capabilities (tools, resources, prompts) published as Nostr events on relays.
§Example
use contextvm_sdk::discovery;
use contextvm_sdk::signer;
let keys = signer::generate();
let relay_pool = contextvm_sdk::RelayPool::new(keys).await?;
let relays = vec!["wss://relay.damus.io".to_string()];
relay_pool.connect(&relays).await?;
let client = relay_pool.client();
let servers = discovery::discover_servers(client, &relays).await?;
for server in &servers {
println!("Found server: {} ({:?})", server.pubkey, server.server_info.name);
let tools = discovery::discover_tools(client, &server.pubkey_parsed, &relays).await?;
println!(" Tools: {:?}", tools);
}Structs§
- Server
Announcement - A discovered server announcement.
Functions§
- discover_
prompts - Discover prompts published by a specific server (kind 11320).
- discover_
prompts_ typed - Discover prompts and parse them into rmcp typed descriptors.
- discover_
resource_ templates - Discover resource templates published by a specific server (kind 11319).
- discover_
resource_ templates_ typed - Discover resource templates and parse them into rmcp typed descriptors.
- discover_
resources - Discover resources published by a specific server (kind 11318).
- discover_
resources_ typed - Discover resources and parse them into rmcp typed descriptors.
- discover_
servers - Discover MCP servers by fetching kind 11316 announcement events from relays.
- discover_
tools - Discover tools published by a specific server (kind 11317).
- discover_
tools_ typed - Discover tools and parse them into rmcp typed descriptors.