1pub mod actions;
2pub mod auth;
3pub mod config;
4pub mod errors;
5pub mod http;
6pub mod lockfree_pool;
7pub mod metrics;
8pub mod pool;
9pub mod protocol;
10pub mod server;
11pub mod ssrf;
12pub mod tls;
13pub mod tools;
14pub mod validation;
15
16use clap::Parser;
17
18#[derive(Parser, Debug)]
19#[command(name = "MCP PostgreSQL Server")]
20#[command(about = "High-performance Model Context Protocol server for PostgreSQL", long_about = None)]
21pub struct Args {
22 #[arg(short, long)]
24 pub database_url: Option<String>,
25
26 #[arg(short = 'H', long, default_value = "127.0.0.1")]
28 pub host: String,
29
30 #[arg(short = 'p', long, default_value = "3000")]
32 pub port: u16,
33
34 #[arg(long, default_value = "3001")]
36 pub http_port: u16,
37
38 #[arg(long)]
40 pub min_connections: Option<u32>,
41
42 #[arg(long)]
44 pub max_connections: Option<u32>,
45
46 #[arg(short, long, default_value = "info")]
48 pub log_level: String,
49
50 #[arg(long)]
52 pub enable_metrics: bool,
53
54 #[arg(long, default_value = "9090")]
56 pub metrics_port: u16,
57
58 #[arg(long)]
60 pub stdio: bool,
61
62 #[arg(long, default_value = "unrestricted")]
64 pub access_mode: config::AccessMode,
65
66 #[arg(long)]
70 pub auth_token: Option<String>,
71
72 #[arg(long)]
75 pub allow_url_import: bool,
76}