Skip to main content

Provider

Struct Provider 

Source
pub struct Provider {
Show 33 fields pub name: String, pub description: String, pub base_url: String, pub auth_type: AuthType, pub auth_key_name: Option<String>, pub auth_header_name: Option<String>, pub auth_query_name: Option<String>, pub auth_value_prefix: Option<String>, pub extra_headers: HashMap<String, String>, pub oauth2_token_url: Option<String>, pub auth_secret_name: Option<String>, pub oauth2_basic_auth: bool, pub internal: bool, pub handler: String, pub mcp_transport: Option<String>, pub mcp_command: Option<String>, pub mcp_args: Vec<String>, pub mcp_url: Option<String>, pub mcp_env: HashMap<String, String>, pub cli_command: Option<String>, pub cli_default_args: Vec<String>, pub cli_env: HashMap<String, String>, pub cli_timeout_secs: Option<u64>, pub openapi_spec: Option<String>, pub openapi_include_tags: Vec<String>, pub openapi_exclude_tags: Vec<String>, pub openapi_include_operations: Vec<String>, pub openapi_exclude_operations: Vec<String>, pub openapi_max_operations: Option<usize>, pub openapi_overrides: HashMap<String, OpenApiToolOverride>, pub auth_generator: Option<AuthGenerator>, pub category: Option<String>, pub skills: Vec<String>,
}

Fields§

§name: String§description: String§base_url: String

Base URL for HTTP providers. Optional for MCP providers.

§auth_type: AuthType§auth_key_name: Option<String>§auth_header_name: Option<String>

Custom header name for auth_type = “header” (default: “X-Api-Key”). Examples: “X-Finnhub-Token”, “X-API-KEY”, “Authorization”

§auth_query_name: Option<String>

Custom query parameter name for auth_type = “query” (default: “api_key”).

§auth_value_prefix: Option<String>

Optional prefix for auth header value (e.g. “Token “, “Basic “). Used with auth_type = “header”. Value becomes: “{prefix}{key}”.

§extra_headers: HashMap<String, String>

Additional headers to include on every request for this provider. Examples: X-Goog-FieldMask, X-EBAY-C-MARKETPLACE-ID

§oauth2_token_url: Option<String>

Token URL for OAuth2 (relative to base_url or absolute)

§auth_secret_name: Option<String>

Second key name for OAuth2 client_secret

§oauth2_basic_auth: bool

If true, send OAuth2 credentials via Basic Auth header instead of form body. Some providers (e.g. Sovos) require this per RFC 6749 §2.3.1.

§internal: bool§handler: String§mcp_transport: Option<String>

MCP transport type: “stdio” or “http”

§mcp_command: Option<String>

Command to launch stdio MCP server (e.g., “npx”, “uvx”)

§mcp_args: Vec<String>

Arguments for stdio command (e.g., [“-y”, “@modelcontextprotocol/server-github”])

§mcp_url: Option<String>

URL for HTTP/Streamable HTTP MCP server

§mcp_env: HashMap<String, String>

Environment variables to pass to stdio subprocess

§cli_command: Option<String>

Command to run for CLI providers (e.g., “gsutil”, “gh”, “kubectl”)

§cli_default_args: Vec<String>

Default args prepended to every invocation

§cli_env: HashMap<String, String>

Environment variables for CLI. ${key} = string from keyring, @{key} = credential file

§cli_timeout_secs: Option<u64>

Default timeout in seconds (default: 120)

§openapi_spec: Option<String>

Path (relative to ~/.ati/specs/) or URL to OpenAPI spec (JSON or YAML)

§openapi_include_tags: Vec<String>

Only include operations with these tags

§openapi_exclude_tags: Vec<String>

Exclude operations with these tags

§openapi_include_operations: Vec<String>

Only include operations with these operationIds

§openapi_exclude_operations: Vec<String>

Exclude operations with these operationIds

§openapi_max_operations: Option<usize>

Maximum number of operations to register (for huge APIs)

§openapi_overrides: HashMap<String, OpenApiToolOverride>

Per-operationId overrides (hint, tags, description, response_extract, etc.)

§auth_generator: Option<AuthGenerator>

Optional auth generator for producing short-lived credentials at call time. Runs where secrets live (proxy server in proxy mode, local machine in local mode).

§category: Option<String>

Provider category for discovery (e.g., “finance”, “search”, “social”)

§skills: Vec<String>

Associated skill URLs (git repos) that teach agents how to use this provider’s tools. Each entry is a git URL, optionally with a #fragment for subdirectory.

Implementations§

Source§

impl Provider

Source

pub fn is_mcp(&self) -> bool

Returns true if this provider uses MCP protocol.

Source

pub fn is_openapi(&self) -> bool

Returns true if this provider uses OpenAPI spec-based tool discovery.

Source

pub fn is_cli(&self) -> bool

Returns true if this provider uses CLI handler.

Source

pub fn mcp_transport_type(&self) -> &str

Returns the MCP transport type, defaulting to “stdio”.

Trait Implementations§

Source§

impl Clone for Provider

Source§

fn clone(&self) -> Provider

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Provider

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Provider

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,