pub struct SqliteAdapter { /* private fields */ }Expand description
SQLite file-based database adapter.
The connection pool is created with SqlitePoolOptions::connect_lazy_with,
which defers all file I/O until the first query. Connection errors
surface as tool-level errors returned to the MCP client.
Implementations§
Source§impl SqliteAdapter
impl SqliteAdapter
Sourcepub fn new(config: &DatabaseConfig) -> Self
pub fn new(config: &DatabaseConfig) -> Self
Creates a new SQLite adapter with a lazy connection pool.
Does not open the database file. The pool connects on-demand when the first query is executed.
Source§impl SqliteAdapter
impl SqliteAdapter
Sourcepub fn build_tool_router(&self) -> ToolRouter<Self>
pub fn build_tool_router(&self) -> ToolRouter<Self>
Builds the tool router, excluding write tools in read-only mode.
Source§impl SqliteAdapter
impl SqliteAdapter
Sourcepub fn tool_list_tables_tool_attr() -> Tool
pub fn tool_list_tables_tool_attr() -> Tool
Generated tool metadata function for list_tables
Sourcepub fn tool_list_tables(
&self,
) -> Pin<Box<dyn Future<Output = Result<Json<ListTablesResponse>, ErrorData>> + Send + '_>>
pub fn tool_list_tables( &self, ) -> Pin<Box<dyn Future<Output = Result<Json<ListTablesResponse>, ErrorData>> + Send + '_>>
List all tables in the connected SQLite database.
Sourcepub fn tool_get_table_schema_tool_attr() -> Tool
pub fn tool_get_table_schema_tool_attr() -> Tool
Generated tool metadata function for get_table_schema
Sourcepub fn tool_get_table_schema(
&self,
Parameters: Parameters<GetTableSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<TableSchemaResponse>, ErrorData>> + Send + '_>>
pub fn tool_get_table_schema( &self, Parameters: Parameters<GetTableSchemaRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<TableSchemaResponse>, ErrorData>> + Send + '_>>
Get column definitions (type, nullable, key, default) and foreign key relationships for a table.
Sourcepub fn tool_drop_table_tool_attr() -> Tool
pub fn tool_drop_table_tool_attr() -> Tool
Generated tool metadata function for drop_table
Sourcepub fn tool_drop_table(
&self,
Parameters: Parameters<DropTableRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
pub fn tool_drop_table( &self, Parameters: Parameters<DropTableRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<MessageResponse>, ErrorData>> + Send + '_>>
Drop a table from the database.
Sourcepub fn tool_read_query_tool_attr() -> Tool
pub fn tool_read_query_tool_attr() -> Tool
Generated tool metadata function for read_query
Sourcepub fn tool_read_query(
&self,
Parameters: Parameters<QueryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
pub fn tool_read_query( &self, Parameters: Parameters<QueryRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
Execute a read-only SQL query (SELECT, SHOW, DESCRIBE, USE, EXPLAIN).
Sourcepub fn tool_write_query_tool_attr() -> Tool
pub fn tool_write_query_tool_attr() -> Tool
Generated tool metadata function for write_query
Sourcepub fn tool_write_query(
&self,
Parameters: Parameters<QueryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
pub fn tool_write_query( &self, Parameters: Parameters<QueryRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
Execute a write SQL query (INSERT, UPDATE, DELETE, CREATE, ALTER, DROP).
Sourcepub fn tool_explain_query_tool_attr() -> Tool
pub fn tool_explain_query_tool_attr() -> Tool
Generated tool metadata function for explain_query
Sourcepub fn tool_explain_query(
&self,
Parameters: Parameters<ExplainQueryRequest>,
) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
pub fn tool_explain_query( &self, Parameters: Parameters<ExplainQueryRequest>, ) -> Pin<Box<dyn Future<Output = Result<Json<QueryResponse>, ErrorData>> + Send + '_>>
Return the execution plan for a SQL query.
Trait Implementations§
Source§impl Clone for SqliteAdapter
impl Clone for SqliteAdapter
Source§fn clone(&self) -> SqliteAdapter
fn clone(&self) -> SqliteAdapter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SqliteAdapter
impl Debug for SqliteAdapter
Source§impl ServerHandler for SqliteAdapter
impl ServerHandler for SqliteAdapter
fn get_info(&self) -> ServerInfo
async fn call_tool( &self, request: CallToolRequestParams, context: RequestContext<RoleServer>, ) -> Result<CallToolResult, ErrorData>
async fn list_tools( &self, _request: Option<PaginatedRequestParams>, _context: RequestContext<RoleServer>, ) -> Result<ListToolsResult, ErrorData>
fn enqueue_task( &self, _request: CallToolRequestParams, _context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CreateTaskResult, ErrorData>> + MaybeSendFuture
fn ping( &self, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn initialize( &self, request: InitializeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<InitializeResult, ErrorData>> + MaybeSendFuture
fn complete( &self, request: CompleteRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CompleteResult, ErrorData>> + MaybeSendFuture
fn set_level( &self, request: SetLevelRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn get_prompt( &self, request: GetPromptRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetPromptResult, ErrorData>> + MaybeSendFuture
fn list_prompts( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListPromptsResult, ErrorData>> + MaybeSendFuture
fn list_resources( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourcesResult, ErrorData>> + MaybeSendFuture
fn list_resource_templates( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourceTemplatesResult, ErrorData>> + MaybeSendFuture
fn read_resource( &self, request: ReadResourceRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ReadResourceResult, ErrorData>> + MaybeSendFuture
fn subscribe( &self, request: SubscribeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn unsubscribe( &self, request: UnsubscribeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn on_custom_request( &self, request: CustomRequest, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CustomResult, ErrorData>> + MaybeSendFuture
fn on_cancelled( &self, notification: CancelledNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_progress( &self, notification: ProgressNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_initialized( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_roots_list_changed( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_custom_notification( &self, notification: CustomNotification, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn list_tasks( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListTasksResult, ErrorData>> + MaybeSendFuture
fn get_task_info( &self, request: GetTaskInfoParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetTaskResult, ErrorData>> + MaybeSendFuture
fn get_task_result( &self, request: GetTaskResultParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetTaskPayloadResult, ErrorData>> + MaybeSendFuture
fn cancel_task( &self, request: CancelTaskParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CancelTaskResult, ErrorData>> + MaybeSendFuture
Auto Trait Implementations§
impl Freeze for SqliteAdapter
impl !RefUnwindSafe for SqliteAdapter
impl Send for SqliteAdapter
impl Sync for SqliteAdapter
impl Unpin for SqliteAdapter
impl UnsafeUnpin for SqliteAdapter
impl !UnwindSafe for SqliteAdapter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
fn handle_request( &self, request: <R as ServiceRole>::PeerReq, context: RequestContext<R>, ) -> Pin<Box<dyn Future<Output = Result<<R as ServiceRole>::Resp, ErrorData>> + Send + '_>>
fn handle_notification( &self, notification: <R as ServiceRole>::PeerNot, context: NotificationContext<R>, ) -> Pin<Box<dyn Future<Output = Result<(), ErrorData>> + Send + '_>>
fn get_info(&self) -> <R as ServiceRole>::Info
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more