pub struct SqliteHandler { /* private fields */ }Expand description
SQLite file-based database handler.
Composes one [SqliteConnection] (which owns the pool and
the pool initialization logic) with the per-backend MCP tool router.
Implementations§
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub fn new(config: &DatabaseConfig) -> Self
pub fn new(config: &DatabaseConfig) -> Self
Creates a new SQLite handler.
Constructs the [SqliteConnection] (which builds the
lazy pool) and the MCP tool router. No file I/O happens here.
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub async fn drop_table(
&self,
__arg1: DropTableRequest,
) -> Result<MessageResponse, SqlError>
pub async fn drop_table( &self, __arg1: DropTableRequest, ) -> Result<MessageResponse, SqlError>
Drops a table from the database.
§Errors
Returns SqlError::ReadOnlyViolation in read-only mode,
SqlError::InvalidIdentifier for invalid names,
or SqlError::Query if the backend reports an error.
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub async fn explain_query(
&self,
__arg1: ExplainQueryRequest,
) -> Result<QueryResponse, SqlError>
pub async fn explain_query( &self, __arg1: ExplainQueryRequest, ) -> Result<QueryResponse, SqlError>
Returns the execution plan for a query.
Always uses EXPLAIN QUERY PLAN — SQLite does not support
EXPLAIN ANALYZE.
§Errors
Returns SqlError::Query if the backend reports an error.
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub async fn get_table_schema(
&self,
__arg1: GetTableSchemaRequest,
) -> Result<TableSchemaResponse, SqlError>
pub async fn get_table_schema( &self, __arg1: GetTableSchemaRequest, ) -> Result<TableSchemaResponse, SqlError>
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub async fn list_tables(
&self,
__arg1: ListTablesRequest,
) -> Result<ListTablesResponse, ErrorData>
pub async fn list_tables( &self, __arg1: ListTablesRequest, ) -> Result<ListTablesResponse, ErrorData>
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub async fn read_query(
&self,
__arg1: ReadQueryRequest,
) -> Result<ReadQueryResponse, SqlError>
pub async fn read_query( &self, __arg1: ReadQueryRequest, ) -> Result<ReadQueryResponse, SqlError>
Executes a read-only SQL query, paginating SELECT result rows.
Validates that the query is read-only, then dispatches on the
classified StatementKind: Select is wrapped in a subquery with
a server-controlled LIMIT/OFFSET; NonSelect (EXPLAIN under
the SQLite dialect) is executed as-is and returned in a single
page. A malformed cursor is rejected by the serde deserializer
before this method is called, producing JSON-RPC -32602.
§Errors
Returns SqlError::ReadOnlyViolation if the query is not
read-only, or SqlError::Query if the backend reports an error.
Source§impl SqliteHandler
impl SqliteHandler
Sourcepub async fn write_query(
&self,
__arg1: QueryRequest,
) -> Result<QueryResponse, SqlError>
pub async fn write_query( &self, __arg1: QueryRequest, ) -> Result<QueryResponse, SqlError>
Trait Implementations§
Source§impl Clone for SqliteHandler
impl Clone for SqliteHandler
Source§fn clone(&self) -> SqliteHandler
fn clone(&self) -> SqliteHandler
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SqliteHandler
impl Debug for SqliteHandler
Source§impl From<SqliteHandler> for Server
impl From<SqliteHandler> for Server
Source§fn from(handler: SqliteHandler) -> Self
fn from(handler: SqliteHandler) -> Self
Wraps a SqliteHandler in the type-erased MCP server.
Source§impl ServerHandler for SqliteHandler
impl ServerHandler for SqliteHandler
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 SqliteHandler
impl !RefUnwindSafe for SqliteHandler
impl Send for SqliteHandler
impl Sync for SqliteHandler
impl Unpin for SqliteHandler
impl UnsafeUnpin for SqliteHandler
impl !UnwindSafe for SqliteHandler
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