bwiki-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bwiki-mcp编辑Main Page页面,内容添加'==新章节==\n这是新内容',摘要写'添加新章节'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BWIKI MCP Server
专为 BWIKI 编辑优化的 MCP (Model Context Protocol) 服务器。基于 Playwright 构建,自动处理 CodeMirror 编辑器,提供语义化的 BWIKI 操作工具。
✨ 特性
🎯 BWIKI 专用工具 - 13 个语义化工具,专为 BWIKI 操作设计
🔧 自动处理 CodeMirror - 无需手动处理编辑器类型判断
📁 智能分类管理 - 自动插入到正确位置,避免重复
🔐 持久化登录 - 支持浏览器数据目录保存登录状态
🌐 跨平台 - 支持 Windows、macOS、Linux
Related MCP server: mcp-mediawiki-crunchtools
📦 安装
# 克隆仓库
git clone https://github.com/你的用户名/bwiki-mcp.git
cd bwiki-mcp
# 安装依赖
npm install
# 构建
npm run build⚙️ 配置
环境变量
变量名 | 描述 | 默认值 |
| 浏览器用户数据目录(持久化登录) | 无 |
| 无头模式 |
|
| BWIKI 基础 URL |
|
Trae IDE / Claude Desktop 配置
在 MCP 配置文件中添加:
{
"mcpServers": {
"bwiki-mcp": {
"command": "node",
"args": ["/path/to/bwiki-mcp/dist/cli.js"],
"env": {
"BWIKI_USER_DATA_DIR": "/path/to/bwiki-mcp/browser-data",
"BWIKI_BASE_URL": "https://wiki.biligame.com/你的wiki名称"
}
}
}
}🛠️ 可用工具
工具名称 | 功能描述 |
| 导航到 BWIKI 页面 |
| 编辑页面内容(自动处理 CodeMirror) |
| 为页面添加分类标记 |
| 获取页面 Wiki 源码 |
| 获取页面分类列表 |
| 获取文件信息 |
| 点击页面元素 |
| 执行 JavaScript 代码 |
| 截取页面截图 |
| 获取页面 HTML 快照 |
| 获取当前 URL |
| 等待元素出现 |
| 在输入框中输入文本 |
📖 使用示例
编辑页面
// 使用 bwiki_edit_page 工具
{
"pageName": "Main Page",
"content": "== 新章节 ==\n这是新内容",
"summary": "添加新章节"
}添加分类
// 使用 bwiki_add_category 工具
{
"pageName": "文件:Example.png",
"category": "游戏UI组件",
"summary": "添加分类标记"
}获取页面内容
// 使用 bwiki_get_content 工具
{
"pageName": "User:用户名/Sandbox"
}🏗️ 项目结构
bwiki-mcp/
├── src/
│ ├── index.ts # MCP 服务器主入口
│ ├── cli.ts # 命令行入口
│ └── tools/
│ └── bwiki-tools.ts # BWIKI 专用工具实现
├── dist/ # 编译输出
├── package.json
├── tsconfig.json
└── README.md🔧 开发
# 开发模式(自动编译)
npm run dev
# 构建
npm run build⚠️ 安全提示
browser-data/ 目录包含浏览器登录状态和 Cookies,不要分享给他人!
首次使用时:
创建
browser-data目录运行工具时会打开浏览器窗口
手动登录 BWIKI
登录状态会自动保存
📄 许可证
🙏 致谢
Microsoft Playwright MCP - 浏览器自动化基础
Model Context Protocol - MCP 协议规范
Available Tools
13 toolsbwiki_add_categoryA
为BWIKI页面添加分类标记。智能插入到正确位置,避免重复。
| Name | Required | Description | Default |
|---|---|---|---|
| summary | No | 编辑摘要 | |
| category | Yes | 分类名称,如 '游戏UI组件' | |
| pageName | Yes | 页面名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the transparency burden. It adds useful behavioral details: '智能插入到正确位置' (intelligently inserts into the correct position) and '避免重复' (avoids duplicates). However, it does not disclose edit effects, permission requirements, or behavior when the category already exists beyond duplicate avoidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that front-loads the primary action and adds two valuable behavioral clauses. Every phrase earns its place with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with full schema coverage, the description is largely complete: it states the purpose and key behavior (smart placement, duplicate avoidance). It lacks when-to-use guidance, but this is minor given the low complexity and rich schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3 applies. The description does not add extra parameter semantics beyond what the schema already provides for pageName, category, and summary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add a category marker) and the target (BWIKI page), using a specific verb and resource. It distinguishes from sibling tools such as bwiki_edit_page and bwiki_get_categories, as no other sibling covers category addition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives like bwiki_edit_page. The description implies usage for adding categories but lacks exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_clickC
在BWIKI页面上点击元素。
| Name | Required | Description | Default |
|---|---|---|---|
| waitFor | No | 等待元素出现 | |
| selector | Yes | CSS选择器或元素描述 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral details, but it only says 'click element'. It does not explain whether waitFor is necessary, how missing selectors are handled, whether clicks trigger navigation, or if events are native or simulated. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no wasted words. However, it is under-specified for a tool with no annotations or output schema, making it too minimal to be fully helpful despite being concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description should provide comprehensive context. It only offers a basic statement, omitting return behavior, error cases, and differences from sibling tools, leaving the agent without enough information to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, fully documenting both selector and waitFor. The tool description adds no extra meaning to the parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('click') and resource ('element on BWIKI page'), making the tool's purpose unambiguous. It distinguishes from sibling tools like bwiki_type or bwiki_navigate, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It lacks relevant context, such as using bwiki_wait_for_selector for dynamic content or bwiki_evaluate for custom JS clicks, and does not mention prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_edit_pageB
编辑BWIKI页面内容。自动处理CodeMirror编辑器,支持追加模式。
| Name | Required | Description | Default |
|---|---|---|---|
| append | No | 是否追加内容而非替换 | |
| content | Yes | 新的页面内容 | |
| summary | No | 编辑摘要 | |
| pageName | Yes | 页面名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions automatic handling of CodeMirror and append mode but does not state that content is replaced by default, whether the operation is reversible, or any side effects. This is a mutating tool, and critical behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core purpose ('编辑BWIKI页面内容') and includes only essential additional context (CodeMirror handling, append support). Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what the tool returns or what to expect after invocation. It does not mention any result, error behavior, or prerequisites. While the core action is clear, the lack of outcome information leaves the description incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description's mention of append mode adds little beyond the schema's description of the 'append' parameter. It does not introduce new semantic meaning for other parameters, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool edits BWIKI page content, with a specific verb and resource. It also mentions automatic handling of the CodeMirror editor and support for append mode, which distinguishes it from sibling tools like bwiki_get_content and bwiki_navigate. The purpose is unambiguous and directly supports correct selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating it handles page editing automatically, but it does not explicitly mention when to use this tool versus alternatives or any exclusions. The append-mode hint gives some context, but there is no explicit comparison to sibling tools or conditions for non-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_evaluateA
在BWIKI页面上执行JavaScript代码。用于高级操作如直接操作CodeMirror。
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 要执行的JavaScript代码 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It only states that it executes JavaScript, but fails to mention potential side effects, page state modifications, or that arbitrary code could cause navigation or data changes. Given the power of this tool, the lack of these disclosures is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and directly states purpose and a use case. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a code execution tool with no output schema and no annotations, the description is adequate for selection but sparse on invocation details. It does not explain return values, error handling, or safety considerations. The example helps, but a more comprehensive description would improve completeness for such a powerful tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the only parameter ('code' as JavaScript code to execute), achieving 100% coverage. The description adds the usage context of operating on BWIKI and mentions CodeMirror, but does not add new parameter-level detail beyond the schema, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute JavaScript code on the BWIKI page.' It uses a specific verb ('execute') and identifies the resource (JavaScript on the page), distinguishing it from sibling tools like bwiki_navigate and bwiki_click by being the only one that deals with script execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool: 'Used for advanced operations such as directly manipulating CodeMirror.' This gives a concrete use case and implies it is for tasks beyond standard interactions, though it does not explicitly list alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_get_categoriesA
获取BWIKI页面已有的分类列表。
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | Yes | 页面名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It uses 'get' which implies a read-only operation, but it does not explicitly state it avoids modification, nor does it disclose any error conditions or return format details. The behavior is minimally transparent but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that directly states the action and object. There is zero wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema, the description is nearly complete: it names the resource and the intended result ('分类列表'). It lacks explicit mention of return shape or potential errors, but the simplicity of the tool keeps the gap small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (pageName described as '页面名称'). The description adds no extra semantic detail beyond the schema, so it meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving the existing category list of a BWIKI page. It distinguishes from siblings like bwiki_add_category (adds categories) and bwiki_get_content (gets page content).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It doesn't mention checking categories before adding, nor any prerequisites or exclusions. The context is only implied by the tool's name and simple operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_get_contentA
获取BWIKI页面的Wiki源码内容。
| Name | Required | Description | Default |
|---|---|---|---|
| pageName | Yes | 页面名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'get the Wiki source content' without mentioning whether this is a read-only operation, whether the page must exist, what happens on error, or the exact return format. The description is too minimal to provide meaningful transparency beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the tool's purpose. There is no wasted wording, and it is appropriately front-loaded for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one well-documented parameter and no output schema. However, the description lacks any mention of the return value, error handling, or behavioral context. It is adequate for a basic getter but not fully complete given the absence of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single 'pageName' parameter described as '页面名称' (page name). The description adds no additional semantic meaning about the parameter beyond what the schema already provides. Since the schema is self-explanatory, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the Wiki source content of a BWIKI page, using a specific verb ('获取') and resource ('Wiki源码内容'). This distinguishes it from sibling tools like bwiki_snapshot (which likely takes a snapshot) and bwiki_get_categories (which gets categories).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting wiki source content but does not explicitly state when to use this tool versus alternatives like bwiki_snapshot or bwiki_evaluate. There are no exclusions or alternative recommendations, so it relies on the tool's name and description to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_get_file_infoA
获取BWIKI文件信息,包括URL、描述和分类。
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | 文件名 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that this is a fetch operation ('获取') and lists the returned data. It does not explicitly state read-only safety or permissions, but the verb implies a non-mutating operation, which is adequate for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words, clearly conveying the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema. The description lists the returned fields but omits details on return format or potential errors. It is adequate for basic use but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 'fileName' described as '文件名'. The tool description adds no further meaning to the parameter, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb '获取' (get) with a clear resource ('BWIKI文件信息') and enumerates the content (URL, description, category). This distinguishes it from sibling tools like get_content and get_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for retrieving file information, providing sufficient context for when to use it. It does not explicitly mention alternatives or exclusions, but the context is unambiguous given the sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_get_urlA
获取当前页面URL。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It states the core behavior (get current page URL) which is adequate for a simple read operation, but it does not mention any side effects, return format, or potential error conditions. This is acceptable for a trivial getter but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's purpose without redundant words. It earns its place and is maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 params, no annotations, no output schema), the description is nearly complete: it clearly identifies what the tool does. However, it could mention the return value type (e.g., full URL string) to be fully self-contained, but that's a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the empty schema fully describes this. The description does not need to add parameter details. Baseline for 0 parameters is 4, and the description is consistent with this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('获取' = get) and the specific resource ('当前页面URL' = current page URL), distinguishing it from sibling tools like get_content, get_categories, and get_file_info by its focus on the URL. It is concise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it implies use for retrieving the current page URL, it does not explicitly state any exclusions, prerequisites, or alternative tool comparisons, leaving the agent to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_screenshotC
截取BWIKI页面截图。
| Name | Required | Description | Default |
|---|---|---|---|
| fullPage | No | 是否截取整个页面 | |
| savePath | No | 保存路径 | |
| selector | No | 截取特定元素 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the screenshot is saved to savePath, returned as data, or if any side effects occur. This leaves the agent uncertain about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It effectively communicates the core purpose in a front-loaded manner, ideal for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the schema covers parameter details, the description lacks contextual information about the return value or how the screenshot is delivered (saved vs. returned). With no output schema, this is a notable gap, and the brevity leaves the agent without enough context to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all three parameters (fullPage, savePath, selector), so the baseline is appropriate. The tool description adds no additional parameter semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action with a specific verb and resource: '截取BWIKI页面截图' (capture a BWIKI page screenshot). However, it does not differentiate from the sibling tool bwiki_snapshot, which could be almost synonymous, so it misses the chance to distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives such as bwiki_snapshot or bwiki_get_content. The description only states the action without any context, exclusions, or recommended scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_snapshotA
获取BWIKI页面的HTML快照,用于元素定位。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states the action and purpose, but does not mention whether it is read-only, whether it waits for page load, or any side effects. This is a gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence in Chinese, front-loaded with the action and resource, and ends with the purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is somewhat minimal. It does not mention that the snapshot is taken from the current browser page or any prerequisites, but it is adequate for a simple read-only operation. Lacks some context for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so the description cannot add parameter details. With zero parameters, the baseline is 4, and there is nothing more the description needs to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (HTML snapshot of BWIKI page) and the verb (获取/get), and adds the purpose of element positioning. It is distinct from unrelated siblings like navigate or edit, though it could more explicitly differentiate from get_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '用于元素定位' (for element positioning) provides clear context for when to use this tool. It does not name alternatives or exclusions, but the purpose is specific enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_typeC
在输入框中输入文本。
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 要输入的文本 | |
| clear | No | 是否先清空输入框 | |
| selector | Yes | CSS选择器 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does not mention whether the optional 'clear' flag is used, whether typing simulates real keystrokes, if input events are triggered, or what happens after typing. This is a notable gap for a mutating action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no wasted words. It is front-loaded with the primary action, though it could have included more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too incomplete for the tool's complexity. It omits behavior around the 'clear' parameter, return values (the tool has no output schema), and usage context. An agent would be under-informed about side effects and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents all three parameters (selector, text, clear) with descriptions, so the schema already provides the necessary parameter semantics. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the core action clearly: 'Enter text in the input box.' It distinguishes from sibling actions like bwiki_click or bwiki_navigate by specifying the typing action, though it does not explicitly mention the selector parameter that targets the input element.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites like ensuring the element is visible or waiting for it. The description is purely declarative with no contextual instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bwiki_wait_for_selectorB
等待特定元素出现在页面上。
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | 超时时间(毫秒),默认30000 | |
| selector | Yes | CSS选择器 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the core waiting behavior but does not disclose what happens on timeout, whether it polls, what it returns, or any side effects. This is a significant gap for a tool that may block execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. It is front-loaded with the core purpose. It could earn a 5 but loses a point for being under-specified in terms of behavior and usage, which is penalized elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters, no output schema, and no annotations. The description is minimal and does not explain the return value, timeout behavior, or error handling. Given the simplicity of the tool, one might expect at least a mention of what happens when the timeout is exceeded. This is incomplete for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover 100% of the parameters (selector and timeout). The main description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '等待特定元素出现在页面上' clearly states the tool's purpose: waiting for a specific element to appear on the page. The verb 'wait' and resource 'specific element' are specific, and the tool is clearly distinct from sibling tools like click, type, and navigate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios where waiting is needed before other actions, nor does it exclude any cases. There is no comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear, distinct purpose: navigation, content retrieval/editing, category management, file info, and browser interaction primitives. The only potentially confusing pair is snapshot vs. screenshot, but the descriptions clearly distinguish HTML source from image capture.
All tools share the 'bwiki_' prefix and follow a verb-based naming pattern. Getter functions use 'get_<noun>', while actions are single verbs like 'click', 'type', 'evaluate', 'navigate'. This makes tool names predictable and easy to remember.
13 tools is well-scoped for a wiki automation server, covering content operations, category management, file lookup, and page interaction. It is neither too sparse nor overloaded, with each tool earning its place.
The surface covers the core wiki editing workflow: navigate, read, edit, add categories, and get file info. Browser automation tools (click, type, evaluate, wait, screenshot) enable advanced interactions. Missing page creation/deletion may be a minor gap, but edit_page likely handles page creation and the absence of delete is not critical for typical wiki editing.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for developer documentation, generated by doc2mcp.
MCP server for doc2mcp documentation, generated by doc2mcp.
MCP server for skill documentation, generated by doc2mcp.
MCP server for dev documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseAqualityDmaintenanceThis MCP server provides complete MediaWiki markup syntax documentation by dynamically fetching and consolidating information from official MediaWiki help pages. It enables LLMs to access up-to-date and comprehensive MediaWiki syntax information.1MIT
- AlicenseBqualityCmaintenanceA secure MCP server for interacting with MediaWiki instances, allowing users to search, read, create, and manage wiki content like pages, categories, and files. It supports both public and private wikis with comprehensive authentication for full read and write operations.19AGPL 3.0
- AlicenseAqualityAmaintenanceMCP server for MediaWiki wikis. Search, read, edit, and manage wiki content from AI assistants. Includes formatting, link checking, revision history, and markdown conversion.4320MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables full management of WikiJS instances, supporting operations like page creation, searching, and updating. It also provides tools for knowledge graph exploration, content summarization, and retrieval of wiki statistics.34MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/putaojuju/bwiki-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server