Expand description
Server and capability discovery on the Nostr network 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.