Skip to content

Commit 7286d96

Browse files
committed
feat: mySQL acl
1 parent 77ae9c9 commit 7286d96

File tree

2 files changed

+322
-204
lines changed

2 files changed

+322
-204
lines changed

mcp/src/tools/databaseSQL.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,22 @@ export function registerSQLDatabaseTools(server: ExtendedMcpServer) {
1919
description: "Execute a read-only SQL query on the SQL database",
2020
inputSchema: {
2121
sql: z.string().describe("SQL query statement (SELECT queries only)"),
22-
instanceId: z
23-
.string()
24-
.optional()
25-
.describe("Database instance ID (defaults to 'default')"),
2622
},
2723
annotations: {
2824
readOnlyHint: true,
2925
openWorldHint: true,
3026
category: CATEGORY,
3127
},
3228
},
33-
async ({ sql, instanceId = "default" }) => {
29+
async ({ sql }) => {
3430
try {
3531
const cloudbase = await getManager();
3632
const envId = await getEnvId(cloudBaseOptions);
3733

34+
// TODO: 考虑是否有支持指定其他 instance、schema 的需求
35+
const schemaId = envId;
36+
const instanceId = "default";
37+
3838
const result = await cloudbase.commonService("tcb").call({
3939
Action: "RunSql",
4040
Param: {
@@ -43,6 +43,7 @@ export function registerSQLDatabaseTools(server: ExtendedMcpServer) {
4343
DbInstance: {
4444
EnvId: envId,
4545
InstanceId: instanceId,
46+
Schema: schemaId,
4647
},
4748
},
4849
});
@@ -96,10 +97,6 @@ export function registerSQLDatabaseTools(server: ExtendedMcpServer) {
9697
.describe(
9798
"SQL statement (INSERT, UPDATE, DELETE, CREATE, ALTER, etc.)"
9899
),
99-
instanceId: z
100-
.string()
101-
.optional()
102-
.describe("Database instance ID (defaults to 'default')"),
103100
},
104101
annotations: {
105102
readOnlyHint: false,
@@ -109,11 +106,15 @@ export function registerSQLDatabaseTools(server: ExtendedMcpServer) {
109106
category: CATEGORY,
110107
},
111108
},
112-
async ({ sql, instanceId = "default" }) => {
109+
async ({ sql }) => {
113110
try {
114111
const cloudbase = await getManager();
115112
const envId = await getEnvId(cloudBaseOptions);
116113

114+
// TODO: 考虑是否有支持指定其他 instance、schema 的需求
115+
const schemaId = envId;
116+
const instanceId = "default";
117+
117118
const result = await cloudbase.commonService("tcb").call({
118119
Action: "RunSql",
119120
Param: {
@@ -122,6 +123,7 @@ export function registerSQLDatabaseTools(server: ExtendedMcpServer) {
122123
DbInstance: {
123124
EnvId: envId,
124125
InstanceId: instanceId,
126+
Schema: schemaId,
125127
},
126128
},
127129
});

0 commit comments

Comments
 (0)