database_mcp_server/types.rs
1//! Request types for MCP tool parameters.
2//!
3//! Each struct maps to the JSON input schema of one MCP tool.
4
5use rmcp::schemars;
6use rmcp::schemars::JsonSchema;
7use serde::Deserialize;
8
9/// Request to list tables in a database.
10#[derive(Debug, Default, Deserialize, JsonSchema)]
11pub struct ListTablesRequest {
12 /// The database name to list tables from. Required. Use `list_databases` first to see available databases.
13 pub database_name: String,
14}
15
16/// Request to get a table's schema.
17#[derive(Debug, Default, Deserialize, JsonSchema)]
18pub struct GetTableSchemaRequest {
19 /// The database name containing the table. Required. Use `list_databases` first to see available databases.
20 pub database_name: String,
21 /// The table name to inspect. Use `list_tables` first to see available tables in the database.
22 pub table_name: String,
23}
24
25/// Request for `read_query` and `write_query` tools.
26#[derive(Debug, Default, Deserialize, JsonSchema)]
27pub struct QueryRequest {
28 /// The SQL query to execute.
29 pub query: String,
30 /// The database to run the query against. Required. Use `list_databases` first to see available databases.
31 pub database_name: String,
32}
33
34/// Request to create a database.
35#[derive(Debug, Default, Deserialize, JsonSchema)]
36pub struct CreateDatabaseRequest {
37 /// Name of the database to create. Must contain only alphanumeric characters and underscores.
38 pub database_name: String,
39}