References to Catalog.Items
Total references found: 122
- Catalog.ItemKeys - Attributes.Item.Type - Type: types
- Catalog.ItemKeys.Form.ChoiceForm.Form - Items.List.Item.Data path - Type: types
- Catalog.Items - Attributes.PackageUnit.Choice parameter links - Ref
- Catalog.Items.Form.ItemForm.Form - Items.GroupTop.GroupMainAttributes.Code.Data path - Type: types
- CommonAttribute.Author - Content - metadata
- Configuration - Catalogs - catalogs
- DefinedType.typeItem - Type - Type: types
- EventSubscription.BeforeWrite_CatalogsLockDataModification - Source - Type: types
- Role.FullAccess.Rights - Role rights - object
- Subsystem.Settings.Subsystem.Items - Content - content
BSL Modules
- CommonModules/GetItemInfo/Module.bsl [Line 199; Line 369; Line 520]
- Catalogs/Items/Forms/ListForm/Module.bsl [Line 18; Line 19]
**包含的引用类型:**
- **元数据引用** - 属性、表单项、命令参数、类型描述
- **类型使用** - 定义类型、特征类型图表、类型组合
- **公共属性** - 包含在公共属性内容中的对象
- **事件订阅** - 订阅的源对象
- **角色** - 具有角色权限的对象
- **子系统** - 子系统内容
- **BSL 代码** - BSL 模块中的引用及行号
> **注意**:`find_references` 仅支持顶级元数据对象(例如 `Catalog.DataAreas`,`CommonModule.Saas`)。传递子对象 FQN(如 `Catalog.DataAreas.Attribute.DataAreaStatus`)将返回描述性错误,表明不支持子对象。使用 `rename_metadata_object` 或 `delete_metadata_object` 处理属性和嵌套对象。
### 元数据重构工具
#### 重命名元数据对象工具
**`rename_metadata_object`** - 重命名元数据对象或属性,并提供全面的重构支持。BSL 代码、表单和元数据中的所有引用将自动更新。
**工作流程:**
1. 不带 `confirm` 参数调用以预览所有更改点
2. 查看更改点索引,并可选择使用 `disableIndices` 参数跳过某些更改点
3. 带 `confirm = true` 参数调用以应用更改
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `objectFqn` | 是 | 要重命名的对象的 FQN。顶级:`Catalog.Products`。嵌套:`Document.SalesOrder.Attribute.Amount` |
| `newName` | 是 | 对象的新名称 |
| `confirm` | 否 | `true` 执行重命名。默认 `false` = 仅预览 |
| `disableIndices` | 否 | 可选更改点的逗号分隔索引,用于跳过某些更改点(例如 `'2,3,5'`) |
| `maxResults` | 否 | 预览中要显示的最大更改点数(默认:20,`0` = 无限制) |
**FQN 中支持的子类型:** `Attribute`,`TabularSection`,`Dimension`,`Resource`
#### 删除元数据对象工具
**`delete_metadata_object`** - 删除元数据对象或属性。BSL 代码、表单和其他元数据中的引用将自动清理。
**工作流程:**
1. 不带 `confirm` 参数调用以预览受影响的引用和问题
2. 带 `confirm = true` 参数调用以应用删除
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `objectFqn` | 是 | 要删除的对象的 FQN(例如 `Catalog.Products`,`Document.SalesOrder.Attribute.Amount`) |
| `confirm` | 否 | `true` 执行删除。默认 `false` = 仅预览 |
#### 添加元数据属性工具
**`add_metadata_attribute`** - 通过 BM 写入事务向元数据对象添加新属性。属性将使用默认属性创建。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `parentFqn` | 是 | 父对象的 FQN(例如 `Catalog.Products`,`Document.SalesOrder`) |
| `attributeName` | 是 | 新属性的名称 |
**支持的父类型:** `Catalog`,`Document`,`ExchangePlan`,`ChartOfCharacteristicTypes`,`ChartOfAccounts`,`ChartOfCalculationTypes`,`BusinessProcess`,`Task`,`DataProcessor`,`Report`,`InformationRegister`,`AccumulationRegister`,`AccountingRegister`
### 标签管理工具
#### 获取标签工具
**`get_tags`** - 获取项目中定义的所有标签列表。标签是用户定义的用于组织元数据对象的标签。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
**返回:** 带有标签名称、颜色、描述和分配对象数量的 Markdown 表格。
#### 按标签获取对象工具
**`get_objects_by_tags`** - 获取按标签过滤的元数据对象。返回具有任何指定标签的对象。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `tags` | 是 | 用于过滤的标签名称数组(例如 `["Important", "NeedsReview"]`) |
| `limit` | 否 | 每个标签的最大对象数(默认:100) |
**返回:** 每个标签的 Markdown 部分,包括:
- 标签颜色和描述
- 分配给标签的对象 FQN 表格
- 找到的总对象数摘要
### 应用程序管理工具
#### 获取应用程序工具
**`get_applications`** - 获取项目的应用程序(信息库)列表。返回应用程序 ID、名称、类型和当前更新状态。用于获取 `update_database` 和 `debug_launch` 工具的应用程序 ID。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
#### 更新数据库工具
**`update_database`** - 更新数据库(信息库)配置。支持完整和增量更新模式。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `applicationId` | 是 | 从 `get_applications` 获取的应用程序 ID |
| `fullUpdate` | 否 | 如果为 true - 完全重新加载,如果为 false - 增量更新(默认:false) |
| `autoRestructure` | 否 | 如果需要,自动应用重构(默认:true) |
#### 调试启动工具
**`debug_launch`** - 以调试模式启动应用程序。启动前自动更新数据库,并查找现有的启动配置。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `applicationId` | 是 | 从 `get_applications` 获取的应用程序 ID |
| `updateBeforeLaunch` | 否 | 如果为 true - 启动前更新数据库(默认:true) |
**注意:**
- 首先需要在 EDT 中创建启动配置(运行 → 运行配置...)
- 如果不存在配置,则返回可用配置列表
- `updateBeforeLaunch = true` 如果数据库已经是最新的,则跳过更新
### BSL 代码分析工具
#### 列出模块工具
**`list_modules`** - 列出 EDT 项目中的所有 BSL 模块。可以按元数据类型或特定对象名称过滤。返回模块路径、类型和父对象。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `metadataType` | 否 | 过滤:`all`,`documents`,`catalogs`,`commonModules`,`informationRegisters`,`accumulationRegisters`,`reports`,`dataProcessors`,`exchangePlans`,`businessProcesses`,`tasks`,`constants`,`commonCommands`,`commonForms`,`webServices`,`httpServices`(默认:`all`) |
| `objectName` | 否 | 要列出模块的特定元数据对象名称(例如 `Products`) |
| `nameFilter` | 否 | 模块路径的子字符串过滤(不区分大小写) |
| `limit` | 否 | 最大结果数(默认:200,最大:1000) |
#### 获取模块结构工具
**`get_module_structure`** - 获取 BSL 模块的结构:所有过程/函数及其签名、行号、区域、执行上下文(`&AtServer`,`&AtClient`)、导出标志和参数。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `modulePath` | 是 | 相对于 `src/` 文件夹的路径(例如 `CommonModules/MyModule/Module.bsl`) |
| `includeVariables` | 否 | 包括模块级变量声明(默认:`false`) |
| `includeComments` | 否 | 包括方法的文档注释(默认:`false`) |
**返回:** Markdown 格式的内容,包括:
- 模块摘要(过程/函数计数、总行数)
- 区域列表及其行范围
- 方法表:类型、名称、导出、上下文、行号、参数、区域、描述(当 `includeComments = true` 时)
- 变量表:名称、导出标志、行号、区域(当 `includeVariables = true` 时)
#### 读取模块源代码工具
**`read_module_source`** - 从 EDT 项目中读取 BSL 模块源代码。返回带有行号的源代码。支持读取完整文件或特定行范围。每次调用最多 5000 行。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `modulePath` | 是 | 相对于 `src/` 文件夹的路径(例如 `CommonModules/MyModule/Module.bsl` 或 `Documents/SalesOrder/ObjectModule.bsl`) |
| `startLine` | 否 | 起始行号(从 1 开始,包含)。如果省略,则从开头读取 |
| `endLine` | 否 | 结束行号(从 1 开始,包含)。如果省略,则读取到末尾 |
#### 写入模块源代码工具
**`write_module_source`** - 将 BSL 源代码写入 1C 元数据对象模块。模式包括:搜索替换(基于内容的查找和替换,默认)、替换(替换整个文件)、追加(添加到末尾)。指定模块路径或对象名称 + 模块类型。写入前自动检查 BSL 语法。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `modulePath` | 否* | 相对于 `src/` 文件夹的路径(例如 `Documents/MyDoc/ObjectModule.bsl`)。替代 `objectName + moduleType` |
| `objectName` | 否* | 完整对象名称(例如 `Document.MyDoc`,`CommonModule.MyModule`)。支持俄文名称 |
| `moduleType` | 否 | 模块类型:`ObjectModule`(默认),`ManagerModule`,`FormModule`,`CommandModule`,`RecordSetModule` |
| `source` | 是 | 要写入的 BSL 源代码。对于 `searchReplace`:替换 `oldSource` 的新代码。对于 `replace`:完整的模块内容。对于 `append`:要添加的代码 |
| `oldSource` | 否** | 要查找并替换的现有代码(`searchReplace` 模式必需)。必须与文件中的一个位置完全匹配。作为你已读取当前文件内容的证明 |
| `mode` | 否 | 写入模式:`searchReplace`(默认),`replace`,`append` |
| `formName` | 否 | 表单名称,当 `moduleType = FormModule` 时必需 |
| `commandName` | 否 | 命令名称,当 `moduleType = CommandModule` 时必需 |
| `skipSyntaxCheck` | 否 | 跳过 BSL 语法验证(默认:`false`)。检查 `Procedure/EndProcedure`,`Function/EndFunction`,`If/EndIf`,`While/EndDo`,`For/EndDo`,`Try/EndTry` 是否平衡 |
*`modulePath` 或 `objectName` 必须提供一个。
**`searchReplace` 模式必需。
**注意:**
- **基于内容的编辑**:`searchReplace` 模式在文件中查找 `oldSource` 并将其替换为 `source`。如果 `oldSource` 未找到或匹配多个位置,操作将安全失败。这消除了多次编辑时行号漂移的问题
- 如果模块文件不存在,则在 `replace` 模式下创建新文件
- 保留 UTF - 8 BOM 编码
- 语法检查验证完整的结果文件,而不仅仅是插入的片段
#### 读取方法源代码工具
**`read_method_source`** - 按名称读取 BSL 模块中的特定过程/函数。返回带有行号和签名的方法源代码。如果未找到方法,则返回所有可用方法的列表。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `modulePath` | 是 | 相对于 `src/` 文件夹的路径(例如 `CommonModules/MyModule/Module.bsl`) |
| `methodName` | 是 | 要读取的过程/函数名称(不区分大小写) |
**返回:** 方法源代码,包括:
- 方法类型(过程/函数)、签名、导出标志
- 行范围和行数
- 带有行号的源代码
#### 代码搜索工具
**`search_in_code`** - 在项目的所有 BSL 模块中进行全文搜索。支持纯文本和正则表达式模式、大小写敏感、匹配上下文行和文件路径过滤。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `query` | 是 | 搜索字符串或正则表达式模式 |
| `caseSensitive` | 否 | 大小写敏感搜索(默认:`false`) |
| `isRegex` | 否 | 将查询视为正则表达式(默认:`false`) |
| `maxResults` | 否 | 返回带有上下文的最大匹配数(默认:100,最大:500) |
| `contextLines` | 否 | 每个匹配前后的上下文行数(默认:2,最大:5) |
| `fileMask` | 否 | 按模块路径子字符串过滤(例如 `CommonModules` 或 `Documents/SalesOrder`) |
| `outputMode` | 否 | 输出模式:`full`(带上下文的匹配,默认),`count`(仅总计数,快速),`files`(带匹配计数的文件列表,无上下文) |
| `metadataType` | 否 | 按元数据类型过滤:`documents`,`catalogs`,`commonModules`,`informationRegisters`,`accumulationRegisters`,`reports`,`dataProcessors`,`exchangePlans`,`businessProcesses`,`tasks`,`constants`,`commonCommands`,`commonForms`,`webServices`,`httpServices` |
#### 获取方法调用层次结构工具
**`get_method_call_hierarchy`** - 查找方法调用层次结构:谁调用此方法(调用者)或此方法调用什么(被调用者)。使用基于 BM 索引的语义 BSL 分析,而不是文本搜索。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `modulePath` | 是 | 相对于 `src/` 文件夹的路径(例如 `CommonModules/MyModule/Module.bsl`) |
| `methodName` | 是 | 过程/函数名称(不区分大小写) |
| `direction` | 否 | `callers`(谁调用此方法,默认)或 `callees`(此方法调用什么) |
| `limit` | 否 | 最大结果数(默认:100,最大:500) |
**注意:**
- 需要 EMF 模型(BSL AST) — 在文本回退模式下不起作用
- `callers` 使用 IReferenceFinder 在整个项目中搜索
- `callees` 遍历方法的 AST 以查找所有调用
### 转到定义工具
**`go_to_definition`** - 导航到符号的定义。将方法调用(如 `CommonModuleName.MethodName`)解析为实际定义,包括源代码、签名和位置。还可以解析元数据对象 FQN(如 `Catalog.Products`)。支持英文和俄文元数据类型名称。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `symbol` | 是 | 要查找定义的符号。格式:`ModuleName.MethodName`(公共模块中的方法),`MethodName`(上下文中的方法,需要 `modulePath`),`Catalog.Products`(元数据对象 FQN)。也支持俄文元数据类型名称 |
| `modulePath` | 否 | 相对于 `src/` 文件夹的上下文模块路径(例如 `Documents/SalesOrder/ObjectModule.bsl`)。当符号是未限定的方法名称时必需 |
| `includeSource` | 否 | 在响应中包含方法源代码(默认:`true`) |
**返回:** Markdown 格式的内容,包括:
- 方法签名、导出标志、行范围
- 带有行号的源代码(当 `includeSource = true` 时)
- 用于导航的文件路径
- 对于元数据对象:FQN、同义词、可用模块
### 获取符号信息工具
**`get_symbol_info`** - 获取 BSL 模块中特定位置的符号的类型和悬停信息。返回推断类型、签名和文档 — 与 EDT 鼠标悬停时显示的信息相同。有助于理解动态类型 BSL 代码中的变量类型。
**参数:**
| 参数 | 是否必需 | 描述 |
|-----------|----------|-------------|
| `projectName` | 是 | EDT 项目名称 |
| `filePath` | 是 | 相对于项目 `src/` 文件夹的 BSL 文件路径(例如 `CommonModules/MyModule/Module.bsl`) |
| `line` | 是 | 行号(从 1 开始) |
| `column` | 是 | 列号(从 1 开始) |
**返回:** 包含符号信息的 Markdown。使用多级方法:
1. **编辑器悬停**(最佳):返回推断类型、方法签名、文档 — 与 IDE 悬停工具提示相同
2. **EObject 分析**(回退):返回结构信息 — 符号类型、名称、签名、导出标志、行范围
3. **EMF 模型**(最后手段):基本节点信息,无需打开编辑器
**使用场景:**
- 确定变量的推断类型(BSL 是动态类型)
- 在调用位置获取方法签名和文档
- 检查通过点符号访问的对象的属性类型
- 理解平台方法参数类型
### 输出格式
- **Markdown 工具**:`list_projects`,`get_project_errors`,`get_bookmarks`,`get_tasks`,`get_problem_summary`,`get_check_description` - 以 `mimeType: text/markdown` 的嵌入式资源形式返回 Markdown
- **JSON 工具**:`get_configuration_properties`,`clean_project`,`revalidate_objects` - 以 `structuredContent` 形式返回 JSON
- **文本工具**:`get_edt_version` - 返回纯文本
</details>
### API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/mcp` | POST | MCP JSON - RPC(初始化、工具/列表、工具/调用) |
| `/mcp` | GET | 服务器信息 |
| `/health` | GET | 健康检查 |
### 元数据标签
使用自定义标签组织元数据对象,以便更轻松地导航和过滤。
#### 为什么使用标签?
标签有助于:
- 跨不同元数据类型对相关对象进行分组(例如,特定功能的所有对象)
- 在大型配置中快速查找对象
- 过滤导航器,专注于项目的特定区域
- 通过版本控制与团队共享对象组织
#### 入门
**为对象分配标签:**
1. 在导航器中右键单击任何元数据对象
2. 从上下文菜单中选择 **标签**
3. 勾选要分配的标签,或选择 **管理标签...** 创建新标签

**管理标签:**
在管理标签对话框中,你可以:
- 使用自定义名称、颜色和描述创建新标签
- 编辑现有标签(名称、颜色、描述)
- 删除标签
- 查看项目的所有可用标签

#### 在导航器中查看标签
带标签的对象在导航器树中以标签作为后缀显示:

**启用/禁用标签显示:**
- **窗口 → 首选项 → 常规 → 外观 → 标签装饰**
- 切换 “元数据标签装饰器”
#### 按标签过滤导航器
过滤整个导航器,仅显示具有特定标签的对象:
1. 点击导航器工具栏中的标签过滤按钮(或右键单击 → **标签 → 按标签过滤...**)
2. 选择一个或多个标签
3. 点击 **设置** 应用过滤

导航器将仅显示:
- 具有任何所选标签的对象
- 包含匹配对象的父文件夹
**清除过滤:** 点击对话框中的 **关闭** 或再次使用工具栏按钮。
#### 标签的键盘快捷键
使用键盘快捷键快速切换所选对象的标签:
| 快捷键 | 操作 |
|----------|--------|
| **Ctrl + Alt + 1** | 切换第 1 个标签 |
| **Ctrl + Alt + 2** | 切换第 2 个标签 |
| **...** | ... |
| **Ctrl + Alt + 9** | 切换第 9 个标签 |
| **Ctrl + Alt + 0** | 切换第 10 个标签 |
**特性:**
- 适用于多个所选对象
- 支持跨项目选择(每个对象使用其自己项目的标签)
- 再次按下相同的快捷键可移除标签(切换行为)
- 标签顺序可在管理标签对话框中配置(上移/下移按钮)
**自定义快捷键:** 窗口 → 首选项 → 常规 → 键 → 搜索 “切换标签”
#### 过滤未标记的对象
查找尚未标记的元数据对象:
1. 打开按标签过滤对话框(工具栏按钮或标签 → 按标签过滤...)
2. 勾选 **“仅显示未标记的对象”** 复选框
3. 点击 **设置**
导航器将仅显示没有分配标签的对象,便于识别需要分类的对象。
#### 多选标签分配
一次为多个对象分配或移除标签:
1. 在导航器中选择多个对象(Ctrl + 点击或 Shift + 点击)
2. 右键单击 → **标签**
3. 选择一个标签以切换所有所选对象的标签状态
**行为:**
- ✓ 勾选 = 所有所选对象都有此标签
- ☐ 未勾选 = 没有所选对象有此标签
- 当对象来自不同项目时,只有来自具有该标签的项目的对象会受到影响
#### 标签过滤视图
对于跨多个项目的高级过滤,使用标签过滤视图:
**窗口 → 显示视图 → 其他 → MCP 服务器 → 标签过滤**
此视图提供:
- **左面板**:从工作区的所有项目中选择标签
- **右面板**:查看所有匹配对象,并支持搜索和导航
- **搜索**:使用正则表达式按对象名称过滤结果
- **双击**:直接导航到对象
#### 标签存储位置
标签存储在每个项目的 `.settings/metadata-tags.yaml` 文件中。此文件:
- 可以提交到版本控制(对 VCS 友好)
- 在重命名或删除对象时自动更新
- 使用 YAML 格式,易于阅读
**示例:**
```yaml
assignments:
CommonModule.Utils:
- Utils
Document.SalesOrder:
- Important
- Sales
tags:
- color: '#FF0000'
description: Critical business logic
name: Important
- color: '#00FF00'
description: ''
name: Utils
- color: '#0066FF'
description: Sales department documents
name: Sales
元数据组
使用自定义组组织导航器树,为元数据对象创建逻辑文件夹结构。
为什么使用组?
组有助于:
- 在导航器树中创建自定义文件夹层次结构
- 按业务领域、功能或任何逻辑结构组织对象
- 通过嵌套组更快地导航大型配置
- 将分组对象与未分组对象分开
入门
创建组:
- 在导航器中右键单击任何元数据文件夹(例如,目录、公共模块)
- 从上下文菜单中选择 新建组...
- 输入组名称和可选描述
- 点击 确定 创建组
创建组对话框:
将对象添加到组:
- 在导航器中右键单击任何元数据对象
- 选择 添加到组...
- 从列表中选择目标组
从组中移除对象:
- 在组内右键单击对象
- 选择 从组中移除
在导航器中查看组
分组对象在导航器树中显示在其组文件夹内:
关键特性:
- 组是针对每个元数据集合(目录、公共模块、文档等)创建的
- 组内的对象仍然可以通过标准 EDT 导航访问
- 未分组的对象显示在列表末尾
组操作
| 操作 |
操作方法 |
| 创建组 |
右键单击文件夹 → 新建组... |
| 将对象添加到组 |
右键单击对象 → 添加到组... |
| 从组中移除 |
右键单击组内的对象 → 从组中移除 |
| 复制组名称 |
选择组 → Ctrl + C |
| 删除组 |
右键单击组 → 删除 |
| 重命名组 |
右键单击组 → 重命名... |
组存储位置
组存储在每个项目的 .settings/groups.yaml 文件中。此文件:
- 可以提交到版本控制(对 VCS 友好)
- 使用 YAML 格式,易于阅读
- 在重命名或删除对象时自动更新
示例:
groups:
- name: "Products & Inventory"
description: "Product and inventory catalogs"
path: Catalog
order: 0
children:
- Catalog.ItemKeys
- Catalog.Items
- Catalog.ItemSegments
- Catalog.Units
- Catalog.UnitsOfMeasurement
- name: "Organization"
description: "Organization structure catalogs"
path: Catalog
order: 1
children:
- Catalog.Companies
- Catalog.Stores
- name: "Core Functions"
description: "Core shared functions used across the application"
path: CommonModule
order: 0
children:
- CommonModule.CommonFunctionsClient
- CommonModule.CommonFunctionsServer
- CommonModule.CommonFunctionsClientServer
- name: "Localization"
description: "Multi-language support modules"
path: CommonModule
order: 1
children:
- CommonModule.Localization
- CommonModule.LocalizationClient
- CommonModule.LocalizationServer
- CommonModule.LocalizationReuse
🔧 技术细节
状态栏控件
MCP 服务器状态栏通过交互式控件实时显示执行状态。
状态指示器:
- 🟢 绿色 - 服务器运行,空闲
- 🟡 黄色闪烁 - 工具正在执行
- ⚪ 灰色 - 服务器停止
用户信号控件 - 在工具执行期间向 AI 代理发送信号
工具执行期间:
- 显示工具名称(例如
MCP: update_database)
- 以 MM:SS 格式显示已用时间
- 点击访问控制菜单
当工具正在执行时,你可以向 AI 代理发送信号以中断 MCP 调用:
| 按钮 |
描述 |
使用场景 |
| 取消操作 |
停止 MCP 调用并通知代理 |
当你想取消长时间运行的操作时 |
| 重试 |
告诉代理重试操作 |
当 EDT 出现错误且你想再次尝试时 |
| 在后台继续 |
通知代理操作正在长时间运行 |
当你希望代理定期检查状态时 |
| 咨询专家 |
停止并要求代理与你协商 |
当你需要提供指导时 |
| 发送自定义消息... |
向代理发送自定义消息 |
用于任何自定义指令 |
工作原理:
- 点击按钮时,会出现一个对话框,显示将发送给代理的消息
- 你可以在发送前编辑消息
- MCP 调用立即中断,并将控制权返回给代理
- EDT 操作在后台继续运行
- 代理收到如下响应:
USER SIGNAL: Your message here
Signal Type: CANCEL
Tool: update_database
Elapsed: 20s
Note: The EDT operation may still be running in background.