mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-24 05:16:09 +00:00
fix: delete description
This commit is contained in:
@@ -83,7 +83,6 @@ class MCPRouterGroup(group.RouterGroup):
|
|||||||
'name': data['name'],
|
'name': data['name'],
|
||||||
'mode': 'sse',
|
'mode': 'sse',
|
||||||
'enable': data.get('enable', False),
|
'enable': data.get('enable', False),
|
||||||
'description': data.get('description',''),
|
|
||||||
'extra_args': {
|
'extra_args': {
|
||||||
'url':data.get('url',''),
|
'url':data.get('url',''),
|
||||||
'headers':data.get('headers',{}),
|
'headers':data.get('headers',{}),
|
||||||
@@ -118,7 +117,6 @@ class MCPRouterGroup(group.RouterGroup):
|
|||||||
data = await quart.request.json
|
data = await quart.request.json
|
||||||
update_data = {
|
update_data = {
|
||||||
'enable': data.get('enable', server.enable),
|
'enable': data.get('enable', server.enable),
|
||||||
'description': data.get('description', server.description),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extra_args = server.extra_args or {}
|
extra_args = server.extra_args or {}
|
||||||
@@ -175,7 +173,6 @@ class MCPRouterGroup(group.RouterGroup):
|
|||||||
'name': server.name,
|
'name': server.name,
|
||||||
'mode': server.mode,
|
'mode': server.mode,
|
||||||
'enable': server.enable,
|
'enable': server.enable,
|
||||||
'description': server.description,
|
|
||||||
'extra_args': server.extra_args or {},
|
'extra_args': server.extra_args or {},
|
||||||
}, self.ap)
|
}, self.ap)
|
||||||
await session.initialize()
|
await session.initialize()
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ class MCPServer(Base):
|
|||||||
|
|
||||||
uuid = sqlalchemy.Column(sqlalchemy.String(255), primary_key=True, unique=True)
|
uuid = sqlalchemy.Column(sqlalchemy.String(255), primary_key=True, unique=True)
|
||||||
name = sqlalchemy.Column(sqlalchemy.String(255), nullable=False)
|
name = sqlalchemy.Column(sqlalchemy.String(255), nullable=False)
|
||||||
description = sqlalchemy.Column(sqlalchemy.Text, nullable=True)
|
|
||||||
enable = sqlalchemy.Column(sqlalchemy.Boolean, nullable=False, default=False)
|
enable = sqlalchemy.Column(sqlalchemy.Boolean, nullable=False, default=False)
|
||||||
mode = sqlalchemy.Column(sqlalchemy.String(255), nullable=False) # stdio, sse
|
mode = sqlalchemy.Column(sqlalchemy.String(255), nullable=False) # stdio, sse
|
||||||
extra_args = sqlalchemy.Column(sqlalchemy.JSON, nullable=False, default={})
|
extra_args = sqlalchemy.Column(sqlalchemy.JSON, nullable=False, default={})
|
||||||
|
|||||||
@@ -396,39 +396,44 @@ export default function PluginConfigPage() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载服务器数据用于编辑
|
|
||||||
async function loadServerForEdit(serverName: string) {
|
async function loadServerForEdit(serverName: string) {
|
||||||
try {
|
try {
|
||||||
const resp = await httpClient.getMCPServer(serverName);
|
const resp = await httpClient.getMCPServer(serverName);
|
||||||
const server = resp.server;
|
const server = resp.server ?? resp; // 有的接口包了一层,有的直接返回对象
|
||||||
|
|
||||||
// 填充表单数据
|
console.log('Loaded server for edit:', server);
|
||||||
form.setValue('name', server.name);
|
|
||||||
form.setValue('url', server.config.url || '');
|
|
||||||
form.setValue('timeout', server.config.timeout || 30);
|
|
||||||
form.setValue('ssereadtimeout', 300); // 默认值,如果后端有返回则使用后端的
|
|
||||||
|
|
||||||
// 填充 headers 作为 extra_args
|
// 填充表单数据
|
||||||
if (server.config.headers) {
|
form.setValue('name', server.name);
|
||||||
const headers = Object.entries(server.config.headers).map(
|
form.setValue('url', server.extra_args?.url || '');
|
||||||
([key, value]) => ({
|
form.setValue('timeout', server.extra_args?.timeout || 30);
|
||||||
key,
|
form.setValue('ssereadtimeout', 300);
|
||||||
type: 'string' as const,
|
|
||||||
value: String(value),
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
setExtraArgs(headers);
|
|
||||||
form.setValue('extra_args', headers);
|
|
||||||
}
|
|
||||||
|
|
||||||
setEditingServerName(serverName);
|
// 填充 headers
|
||||||
setIsEditMode(true);
|
if (server.extra_args?.headers) {
|
||||||
setMcpSSEModalOpen(true);
|
const headers = Object.entries(server.extra_args.headers).map(
|
||||||
} catch (error) {
|
([key, value]) => ({
|
||||||
console.error('Failed to load server:', error);
|
key,
|
||||||
toast.error(t('mcp.loadFailed'));
|
type: 'string' as const,
|
||||||
|
value: String(value),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
setExtraArgs(headers);
|
||||||
|
form.setValue('extra_args', headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//在这里返回mcp里的tools
|
||||||
|
const tools = await httpClient.getMCPTools(server.name);
|
||||||
|
|
||||||
|
setEditingServerName(serverName);
|
||||||
|
setIsEditMode(true);
|
||||||
|
setMcpSSEModalOpen(true);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to load server:', error);
|
||||||
|
toast.error(t('mcp.loadFailed'));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
async function handleFormSubmit(value: z.infer<typeof formSchema>) {
|
async function handleFormSubmit(value: z.infer<typeof formSchema>) {
|
||||||
const extraArgsObj: Record<string, string | number | boolean> = {};
|
const extraArgsObj: Record<string, string | number | boolean> = {};
|
||||||
@@ -895,6 +900,7 @@ export default function PluginConfigPage() {
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
|
|||||||
@@ -319,6 +319,7 @@ export interface ApiRespMCPServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface MCPServer {
|
export interface MCPServer {
|
||||||
|
extra_args: any;
|
||||||
name: string;
|
name: string;
|
||||||
mode: 'stdio' | 'sse';
|
mode: 'stdio' | 'sse';
|
||||||
enable: boolean;
|
enable: boolean;
|
||||||
|
|||||||
Reference in New Issue
Block a user