macro_rules! declare_plugin_config {
($config_type:ty) => { ... };
}Expand description
Declare plugin configuration with automatic boilerplate generation
This macro generates:
- Static storage for the configuration (
OnceCell) get_config()function to access the configurationtry_get_config()function for optional accessplugin_configure()C ABI function for the framework
§Example
ⓘ
use mcp_plugin_api::*;
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
struct PluginConfig {
database_url: String,
max_connections: u32,
}
// Generate all configuration boilerplate
declare_plugin_config!(PluginConfig);
// Use in handlers
fn my_handler(args: &Value) -> Result<Value, String> {
let config = get_config();
// Use config.database_url, etc.
Ok(json!({"status": "ok"}))
}
declare_plugin! {
list_tools: generated_list_tools,
execute_tool: generated_execute_tool,
free_string: mcp_plugin_api::utils::standard_free_string,
configure: plugin_configure // Auto-generated by declare_plugin_config!
}