Skip to main content

Module discovery

Module discovery 

Source
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§

ServerAnnouncement
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.