@growi/mcp-server
OfficialThe @growi/mcp-server connects AI models to GROWI wikis, enabling search, retrieval, creation, and management of wiki content across one or multiple GROWI instances.
Page Management
Search pages (full-text search via Elasticsearch)
Create, update, delete (bulk/recursive), rename/move, and duplicate pages
Get page content, metadata, recent pages, root/child page listings
Publish/unpublish pages to control visibility
Suggest save paths based on content analysis
Tag Management
Get, update, list, and search tags
Comments
Get, add, and remove comments on pages
Revision Management
List revisions, get revision details, and retrieve diffs (diffs require GROWI v7.5.6+)
Share Link Management
Create share links (with optional expiry), get share links for a page, delete all share links or a specific one by ID
User Information
Get recent pages created/updated by a specific user
Multi-App Support
All tools accept an optional
appNameparameter to target a specific GROWI instance when multiple apps are configured via numbered environment variables.
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., "@@growi/mcp-serversearch for 'Q4 roadmap' in the company wiki"
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.
@growi/mcp-server
A Model Context Protocol (MCP) server that connects AI models to GROWI wiki content. Enables LLMs to search and retrieve information from your organization's knowledge base for accurate, context-aware responses. Supports connections to multiple GROWI apps.
Key Features
🔍 GROWI page search and retrieval
📝 Page management
🏷️ Tag management
📋 Comment management
🔗 Share link management
Related MCP server: WikiJS MCP Server
Supported GROWI Versions
GROWI v7.3.x or higher recommended
Some features are also available starting from GROWI v7.2.5 and later
Agent Skills
This repository also provides Agent Skills — reusable workflow definitions that AI coding agents can load to interact with GROWI more effectively.
Available Skills
growi-mcp-setup — Walks you through setting up the GROWI MCP server. After the skill is installed, it guides you from configuring UTCP Code-Mode through verifying the connection.
growi-smart-save — Save content to GROWI with intelligent path suggestions. The agent calls the
suggest-pathtool, presents destination candidates, and guides the user through page naming and visibility settings.
Quick Start (Recommended)
The fastest way to start using GROWI. Once you install the skill, the rest of the setup (connecting the MCP server, configuring UTCP Code-Mode, verifying connectivity) is guided by the AI agent.
1. Install the Skill
Install the skill for your agent.
Claude Desktop (Cowork)
Go to Customize > Personal Plugins (click the + icon)
Click Browse Plugins > select the Personal tab
Click the + icon next to Local Upload
Select Add marketplace from GitHub
Enter the repository URL and click Sync:
https://github.com/growilabs/growi-mcp-serverClaude Code
Add this repository as a plugin marketplace, then install the plugin:
/plugin marketplace add growilabs/growi-mcp-server
/plugin install mcp-client-skillsGemini CLI
Install as a Gemini CLI extension (includes both MCP tools and skills):
gemini extensions install https://github.com/growilabs/growi-mcp-serverUpdate with:
gemini extensions update growi-mcp-serverExtensions installed from a release earlier than v1.7.1 cannot start the MCP server: only the bundled skills work and the GROWI tools never show up. Existing installs do not switch over on their own, so rungemini extensions update growi-mcp-server to pick up the fix.
Skills.sh (Vercel)
Works with Claude Code, Gemini CLI, Cursor, Codex, GitHub Copilot, and many other agents:
npx skills add growilabs/growi-mcp-serverUpdate with:
npx skills updateManual Installation
Download skills directly from the repository and place them in your agent's skills directory:
Copy the desired skill directory from
skills/in this repositoryPlace it in your agent's skills directory:
Claude Code:
.claude/skills/<skill-name>/SKILL.mdGemini CLI:
.gemini/skills/<skill-name>/SKILL.mdOther agents:
.agents/skills/<skill-name>/SKILL.md
2. Restart Your Agent
After installation, restart (or reload) your agent so the skill is recognized.
3. Ask the AI to Set Up
Tell your agent "set up GROWI", and the growi-mcp-setup skill will start and guide you from the MCP server connection settings through verifying connectivity.
If you want to configure the MCP server directly without the skill, seeUse the MCP Server Directly.
Use the MCP Server Directly
You can also register the MCP server directly with your agent instead of using the skill. Use this for a minimal setup, or as a fallback when skill-based setup is not available.
Supports simultaneous connections to multiple GROWI apps. Each app is configured using numbered environment variables.
Single App Configuration Example
{
"mcpServers": {
"growi": {
"command": "npx",
"args": ["-y", "@growi/mcp-server"],
"env": {
"GROWI_APP_NAME_1": "main",
"GROWI_BASE_URL_1": "https://your-growi-instance.com",
"GROWI_API_TOKEN_1": "your_growi_api_token"
}
}
}
}Multiple Apps Configuration Example
{
"mcpServers": {
"growi": {
"command": "npx",
"args": ["-y", "@growi/mcp-server"],
"env": {
"GROWI_DEFAULT_APP_NAME": "staging",
"GROWI_APP_NAME_1": "production",
"GROWI_BASE_URL_1": "https://wiki.example.com",
"GROWI_API_TOKEN_1": "token_for_production",
"GROWI_APP_NAME_2": "staging",
"GROWI_BASE_URL_2": "https://wiki-staging.example.com",
"GROWI_API_TOKEN_2": "token_for_staging",
"GROWI_APP_NAME_3": "development",
"GROWI_BASE_URL_3": "https://wiki-dev.example.com",
"GROWI_API_TOKEN_3": "token_for_development"
}
}
}
}For skill-based setup (recommended), seeQuick Start.
Available Tools (Features)
Page Management
searchPages- Search pages by keywordscreatePage- Create a new pageupdatePage- Update an existing page (full-body replace; returns the new revision ID)editPage- Edit parts of a page with string replacements without sending the whole body (supports dry-run diff preview)deletePages- Delete pages (bulk operation supported)duplicatePage- Duplicate a page (including child pages)renamePage- Change page name and pathgetPageOutline- Get the heading outline of a page (heading tree with line ranges and sizes, without the body); also detects setext-style (underline) headingsgetPageSection- Read only a part of a page, addressed by heading text or line rangegetPageWholeContents- Get the full markdown body of a pagegetPage- Deprecated, will be removed in 2.0.0. Alias ofgetPageWholeContentskept for backward compatibility; usegetPageOutline,getPageSection, orgetPageWholeContentsinsteadgetPageInfo- Get detailed page informationgetRecentPages- Get list of recently updated pagesgetPageListingRoot- Get root page listgetPageListingChildren- Get child pages of specified pagepageListingInfo- Get summary information of page listingspublishPage/unpublishPage- Set page publish/unpublish status
Tag Management
getPageTag- Get tags of a pageupdateTag- Update tags of a pagegetTagList- Get list of tagssearchTags- Search tags
Comments & Discussions
getComments- Get comments of a pageaddComment- Add a comment to a pageremoveComment- Remove a comment from a page
Revision Management
listRevisions- Get page edit history (revision bodies are omitted; bodyLength is returned instead)getRevision- Get details of a specific revisionlistRevisionChanges- List the authenticated user's consecutive-edit runs across all pages (requires GROWI v7.5.6 or later)getRevisionDiffs- Get unified diffs for a batch of revision pairs (requires GROWI v7.5.6 or later)
Share Links
createShareLink- Create a share linkgetShareLinks- Get share links of a pagedeleteShareLinks- Delete share linksdeleteShareLinkById- Delete a specific share link
User Information
getUserRecentPages- Get recent pages of a specific user
Vault Commands
Besides serving MCP tools, the package provides commands for working with a local clone of a GROWI
Vault (the wiki exposed as a read-only git endpoint). They exist so an agent can search the wiki as
plain files — the growi-smart-save skill uses them for its high-accuracy destination search.
# Clone the Vault on first run, refresh it afterwards, and print where it is
npx @growi/mcp-server vault-sync --app-name main [--dest <dir>] [--no-user]
# Print the clone directory without touching the network
npx @growi/mcp-server vault-path --app-name main
# Decode on-disk Vault file names into GROWI page paths
npx @growi/mcp-server vault-decode '旧%3A old page.md'The instance is named by its app name, and its base URL and credential come from the same
configuration the MCP server uses — including GROWI_HTTP_AUTH_* when the instance sits behind a
reverse proxy — so no token is ever passed on the command line. Requires git 2.31+ (2.35+ for
--no-user). Exit codes: 0 the clone is usable, 1 a usage or environment problem, 2 a git
failure or an unusable clone.
Configuration Options
Environment Variables
Variable Name | Required | Description | Default Value |
| ✅ | GROWI app identifier name (N is an integer) | - |
| ✅ | Base URL of GROWI instance (N is an integer) | - |
| ✅ | GROWI API access token (N is an integer) | - |
| Username for HTTP auth (Basic) in front of GROWI, e.g. a reverse proxy. Required together with the password. | - | |
| Password for HTTP auth (Basic) in front of GROWI. Required together with the username. | - | |
| Default app name to use | First configured app |
Multiple Apps Configuration Notes
Use integer values (1, 2, 3...) for each app configuration (sequential numbering is not required)
Combination of
GROWI_APP_NAME_N,GROWI_BASE_URL_N, andGROWI_API_TOKEN_Nis requiredApp names, base URLs, and API tokens must each be unique
If
GROWI_DEFAULT_APP_NAMEis omitted, the first configured app becomes the defaultThe app specified in
GROWI_DEFAULT_APP_NAMEwill be used as the default app when the LLM does not explicitly include an app name in the prompt
HTTP Auth (Basic) for Proxied GROWI
When a GROWI instance sits behind HTTP authentication (e.g. a reverse proxy enforcing Basic auth), set both GROWI_HTTP_AUTH_USERNAME_{N} and GROWI_HTTP_AUTH_PASSWORD_{N} for that app. You only provide a username and password; the Basic Authorization header is built for you.
Set both or neither — providing only one fails fast with a clear error.
When configured, the proxy credentials go in the
Authorizationheader and the GROWI API token (GROWI_API_TOKEN_{N}) is sent via theX-GROWI-ACCESS-TOKENheader instead. Without it, the defaultBearertoken scheme is unchanged.Only Basic auth is supported for now; Digest support is planned. The variable names are scheme-agnostic so they can be reused when Digest lands.
Developer Information
Requirements
Node.js 18 or higher
pnpm (recommended)
GROWI instance (for development and testing)
Getting Started
Clone the repository
git clone https://github.com/growilabs/growi-mcp-server.git
cd growi-mcp-serverInstall dependencies
pnpm installSet up environment variables
cp .env.example .env.local
# Edit .env.local to enter GROWI connection informationStart the development server
# Test with MCP CLI
pnpm dev:cli
# Develop with MCP Inspector
pnpm dev:inspectBuild and Test
# Build
pnpm build
# Lint
pnpm lint
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage
# Run in production
pnpm startMCP Server Configuration
Build
pnpm buildMCP Server Configuration (Single App)
{
"mcpServers": {
"growi": {
"command": "node",
"args": ["/Users/username/projects/growi-mcp-server/dist/index.js"],
"env": {
"GROWI_APP_NAME_1": "main",
"GROWI_BASE_URL_1": "https://your-growi-instance.com",
"GROWI_API_TOKEN_1": "your_growi_api_token"
}
}
}
}MCP Server Configuration (Multiple Apps)
{
"mcpServers": {
"growi": {
"command": "node",
"args": ["/Users/username/projects/growi-mcp-server/dist/index.js"],
"env": {
"GROWI_DEFAULT_APP_NAME": "production",
"GROWI_APP_NAME_1": "production",
"GROWI_BASE_URL_1": "https://wiki.example.com",
"GROWI_API_TOKEN_1": "production_token",
"GROWI_APP_NAME_2": "staging",
"GROWI_BASE_URL_2": "https://wiki-staging.example.com",
"GROWI_API_TOKEN_2": "staging_token"
}
}
}
}Set the absolute path to the built output in "args"
Troubleshooting
When unable to connect to GROWI
Check connectivity
curl -v http://app:3000/_api/v3/healthcheckIf the
apphostname cannot be resolved, check the devcontainer network and verify it includesgrowi_devcontainer_defaultThe
.devcontainer/devcontainer.jsonfile sets--networkinrunArgs, so rebuilding the container should apply this settingTo add manually, run the following:
Run
docker networkcommand on the docker host machine
docker network connect growi_devcontainer_default growi-mcp-server-dev
Contributing
Contributions to the project are welcome!
How to Contribute
Issue Reports: Bug reports and feature requests via GitHub Issues
Pull Requests:
Fork and create a branch
Implement changes
Add tests (if applicable)
Create a pull request
Development Guidelines
Coding Standards: Use Biome
Commit Messages: Follow Conventional Commits
Changesets: If your pull request changes anything users can observe, run
pnpm changesetto record the impact level and a user-facing description, and commit the generated.changeset/*.mdwith your PR. Internal-only changes don't need one.
License
This project is released under the MIT License.
Related Links
GROWI Official Site - Open source wiki platform
Model Context Protocol - Standard protocol for AI and tool integration
GROWI SDK TypeScript - GROWI API TypeScript SDK
FastMCP - MCP server development framework
Notice
This MCP server is under development. APIs may change without notice. Please test thoroughly before using in production environments.
Available Tools
31 toolsaddCommentA
Add a comment to a page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the page to add a comment to | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| comment | Yes | Comment body text | |
| revisionId | No | ID of the revision to attach the comment to (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is a write operation (readOnlyHint=false) but not destructive or idempotent. The description adds no extra behavioral context beyond the annotations, such as side effects or response 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 is front-loaded and easy to parse.
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 creation tool, the description is adequate but does not cover return value or confirmation behavior. Given no output schema, additional context about the response would improve completeness.
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 the schema fully documents parameters. The description does not add additional meaning beyond what the schema provides.
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') and the resource ('comment to a page'), distinguishing it from sibling tools like removeComment and getComments. The verb-resource pair is specific 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?
No guidance is provided on when to use this tool versus alternatives like updating a comment (not available) or other operations. There is no discussion of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
createPageBIdempotent
Create a new page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| path | Yes | ||
| grant | No | ||
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| pageTags | No | ||
| grantUserGroupIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only and not destructive, and is idempotent. The description adds no further behavioral details, such as what happens on duplicate paths or any side effects. It is adequate but does not exceed what annotations provide.
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 clear sentence, front-loaded with the core action. No unnecessary words, but could be expanded without losing conciseness.
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?
No output schema, and the description omits return value details, uniqueness constraints, or error conditions. Given 6 parameters and a creation task, the description is insufficient 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?
Schema description coverage is only 17%, and the description adds no meaning to any of the 6 parameters. For a tool with low schema coverage, the description should compensate but fails to do so.
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 'Create a new page in GROWI' clearly states verb (create) and resource (page), distinguishing it from sibling tools like updatePage or renamePage.
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. No exclusions, prerequisites, or context about typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deletePagesBDestructive
Delete pages in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| isCompletely | No | Whether to completely delete the pages | |
| isRecursively | No | Whether to delete child pages recursively | |
| isAnyoneWithTheLink | No | Whether to delete pages accessible by anyone with the link | |
| pageIdToRevisionIdMap | Yes | Map of page IDs to their revision IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true, so the description adds no extra behavioral context. It doesn't contradict annotations. While it aligns with the destructive nature, it omits details like irreversibility or permission requirements, but given annotations, this is minimal but acceptable.
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, achieving high conciseness. However, it lacks structure or examples that could improve clarity.
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 has 5 parameters, nested objects, and destructive behavior, the description is insufficiently complete. It fails to explain the meaning of key parameters like pageIdToRevisionIdMap or the implications of boolean flags, leaving an agent underinformed.
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 all parameters described in the input schema. The description does not elaborate on parameters beyond 'Delete pages'. Since high coverage reduces burden, 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 verb 'Delete' and the resource 'pages in GROWI', making the tool's purpose straightforward. However, it does not differentiate from sibling delete tools like 'deleteShareLink' or 'deleteShareLinks', so it could be more specific.
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, nor does it mention any prerequisites or conditions. It simply states what it does without context for optimal use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicatePageBIdempotent
Duplicate a page. Can recursively duplicate the page with its descendants.
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ||
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| isRecursively | No | ||
| pageNameInput | No | ||
| onlyDuplicateUserRelatedResources | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds recursion behavior beyond annotations. However, annotations claim idempotentHint=true while duplication is typically non-idempotent, creating a contradiction not addressed in description. No disclosure of effects on source page or permissions.
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?
Extremely concise with two succinct sentences. Front-loaded with main action, then recursion detail. 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?
Despite having 5 parameters and a mutation operation, description is minimal. No output schema, no explanation of return value, permissions, or side effects. Incomplete for correct agent 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?
Schema coverage is low (20%), and description provides no parameter explanations. Critical params like pageNameInput, isRecursively, onlyDuplicateUserRelatedResources are left undocumented, leaving the agent to infer meaning.
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 'Duplicate a page' with recursion option, providing a specific verb and resource. It distinguishes from siblings like createPage (creates new empty page) and renamePage.
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 vs alternatives. Does not mention when not to use, e.g., for simple copying or moving, or exclusions like permission requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCommentsARead-onlyIdempotent
Get comments for a page revision in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the page to get comments for | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| revisionId | No | ID of the revision to get comments for (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so description adds minimal value beyond 'Get comments for a page revision'. No extra behavioral traits disclosed beyond 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?
Single sentence, no wasted words, front-loaded with key information. Perfectly 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?
Simple read tool with annotations covering safety; description is sufficient but could hint at return format (e.g., list of comments). Lacks output schema, but overall adequate.
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%, and description does not add meaning beyond the schema. Baseline 3 is appropriate since schema already documents parameters adequately.
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?
Description clearly states verb 'Get', resource 'comments', and scope 'for a page revision in GROWI'. It distinguishes itself from sibling tools like getPage which retrieves the page itself, not comments.
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. Sibling tools include getRevision, getPage, etc., but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPageARead-onlyIdempotent
Get page data about the specific GROWI page
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path of the GROWI page | |
| pageId | No | ID of the GROWI page | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint, so the description adds little beyond confirming data retrieval. It does not elaborate on pagination, error handling, or behavioral traits not covered by annotations. No contradictions.
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 unnecessary words. It is efficient and front-loaded, meeting the need for conciseness.
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 an output schema, the description does not clarify what 'page data' includes (e.g., content, metadata). The tool is simple, but with many sibling tools, more detail would help distinguish. Annotations and schema are rich, but completeness is moderate.
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 clear parameter descriptions for pageId, path, and appName. The description adds no further meaning beyond 'page data', which is generic. Baseline 3 applies since schema does the heavy lifting.
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 'Get page data about the specific GROWI page', which identifies the verb and resource. However, it does not distinguish from sibling tools like 'getPageInfo', which might overlap, so it lacks specificity to differentiate.
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 on when to use this tool over alternatives. The description is minimal and does not mention prerequisites or context where this tool is suitable. Implicitly, it is for retrieving page data, but no exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPageInfoARead-onlyIdempotent
Get summary information about a specific GROWI page
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ID of the GROWI page | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true, idempotentHint true, and destructiveHint false, so the safety profile is clear. The description adds the qualifier 'summary information' which hints at the scope of data returned but does not disclose additional behavioral traits.
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, clear sentence with no fluff. It is appropriately front-loaded.
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 presence of rich annotations and the simplicity of the tool (2 params, read-only), the description is adequate. However, it could briefly mention what 'summary information' typically includes, especially since no output schema is provided.
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?
Both parameters have descriptions in the schema (100% coverage). The description adds no further semantic information about parameters beyond what is in the schema.
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 verb 'get' and the resource 'summary information about a specific GROWI page'. The title from annotations reinforces this. It distinguishes from sibling 'getPage' by specifying 'summary'.
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 usage guidance is provided. The description does not mention when to prefer this tool over alternatives like getPage, nor does it specify context for when summary vs full page is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPageListingChildrenBRead-onlyIdempotent
Get children pages for a specified page by ID or path in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Page ID to get children for (optional) | |
| path | No | Page path to get children for (optional) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety profile is clear. The description adds no behavioral context beyond what annotations provide (e.g., no mention of auth, rate limits, or side effects).
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 sentence with no unnecessary words. It is front-loaded with the action and resource. However, it could be slightly more structured to improve readability.
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 read-only tool with 3 optional parameters and no output schema, the description is adequate but incomplete. It does not explain the return format (e.g., list of children) or whether children are immediate or recursive. More context would help agent 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?
Schema coverage is 100%, meaning all parameters have descriptions in the schema. The description echoes the schema's mention of ID and path but does not add new meaning or constraints beyond what is already structured.
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 children pages'), the resource ('pages'), and the method ('by ID or path in GROWI'). It distinguishes from sibling tools like 'getPage' (single page) and 'getPageListingRoot' (root listing).
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 vs alternatives, such as 'getPageListingRoot' or 'getPage'. No explicit context for choosing between ID or path is given, and no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPageListingRootARead-onlyIdempotent
Get root page listing information from GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, nondestructive, idempotent behavior. Description adds the resource scope but no extra behavioral details beyond what annotations provide.
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 concise sentence with no unnecessary words, appropriately sized 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?
The description covers the basic purpose but does not explain the return value; however, given the single optional parameter and annotations, it is nearly complete.
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 one optional parameter described. Description does not add further parameter meaning beyond the schema.
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 'Get root page listing information from GROWI' uses a specific verb and resource, clearly distinguishing from sibling tools like getPageListingChildren.
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; no exclusions or context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPageTagBRead-onlyIdempotent
Get tags for a specific page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | Page ID to get tags for | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation. Description adds no further behavioral context beyond the 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?
Single sentence, no wasted words, front-loaded with the key action.
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 getter, the description is adequate. However, without an output schema, indicating the return format could improve completeness.
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 covers both parameters fully with descriptions. Description does not add meaning beyond the schema.
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?
Description clearly states it gets tags for a specific page. However, it does not differentiate from sibling tools like getTagList or searchTags.
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. The description simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRecentPagesBRead-onlyIdempotent
Get recently updated pages from GROWI with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (optional) | |
| limit | No | Number of pages to retrieve per page (optional) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| includeWip | No | Whether to include work-in-progress pages (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no new behavioral context such as return format, sorting order, or side effects. The mention of 'pagination support' is already implied by the parameters.
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 with no superfluous words. It efficiently conveys the core purpose.
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?
Despite good annotations, the description lacks details about the return format (e.g., what fields each page object contains) and the ordering of results. It does not explain the behavior of optional parameters like includeWip, leaving ambiguity for the agent.
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 the schema already documents all parameters. The description adds no additional meaning beyond restating that pagination is supported, which is already evident from the parameter names.
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 verb (Get) and resource (recently updated pages from GROWI) and mentions pagination support, distinguishing it from siblings like getUserRecentPages which filter by user.
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 on when to use this tool versus alternatives like getUserRecentPages or searchPages. The description only implies usage for retrieving recent pages but does not exclude cases where filtering by user or keyword would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRevisionBRead-onlyIdempotent
Get detailed information about a specific revision in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Revision ID to get details for | |
| pageId | Yes | Page ID that the revision belongs to | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, etc. Description adds minimal context about 'detailed information' but no behavioral details like error handling or required permissions.
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?
Single sentence, front-loaded, no unnecessary words. Efficient and clear.
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?
No output schema, but description fails to explain what 'detailed information' includes or the response format. For a single-revision query, more context is needed.
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 has 100% coverage with descriptions for all parameters. Description does not add any parameter info beyond the schema, so baseline of 3.
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?
Clearly states getting detailed info about a specific revision in GROWI, with explicit verb and resource. Distinguishes from sibling listRevisions which lists multiple.
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 over alternatives like listRevisions or getPage. Does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRevisionDiffsARead-onlyIdempotent
Compute unified diffs for a batch of revision pairs (up to 20) in GROWI. Authorization is checked independently per pair: inaccessible pairs return status "forbidden" and structurally invalid pairs return status "invalid" without failing the whole batch
| Name | Required | Description | Default |
|---|---|---|---|
| pairs | Yes | Revision pairs to compute diffs for (up to 20 pairs) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| contextLines | No | Number of context lines in the unified diff output (0-20, default 3, optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral context beyond annotations: batch size limit, independent authorization, specific error statuses ('forbidden', 'invalid'), and partial failure semantics. No contradiction with 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?
Two well-structured sentences. The first states the core function with limit, the second explains error handling. No unnecessary words, front-loaded with key information.
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?
Missing description of the output format (e.g., unified diff text or structure). With no output schema, the description should clarify what the tool returns. Annotations cover safety and idempotency, but output details are omitted.
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 clear parameter descriptions. The description adds value by explaining the batch behavior and error handling for the pairs parameter, which is not fully captured by the schema alone.
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?
Clearly states the action ('compute unified diffs'), resource ('revision pairs'), batch size limit (up to 20), and system (GROWI). Distinguishes from siblings like getRevision and listRevisions.
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?
Provides explicit guidance on batch behavior: independent authorization per pair and specific error statuses without failing the whole batch. Lacks explicit when-not or alternatives, but the error handling description is valuable for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTagListARead-onlyIdempotent
Get list of tags in GROWI with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of tags to retrieve per page (optional) | |
| offset | No | Offset for pagination (optional) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds the behavioral trait of pagination support, which is not in annotations, providing useful context.
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 extraneous information, earning its place effectively.
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 tool with three optional parameters and no output schema, the description is sufficiently complete, though it could mention the return format but is not necessary.
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 clear parameter descriptions for limit, offset, and appName. The description reinforces pagination but does not add new meaning beyond the schema.
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 verb 'Get', the resource 'list of tags', and the context 'GROWI with pagination support', distinguishing it from siblings like searchTags and updateTag.
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 listing all tags with pagination, but does not explicitly state when to use this tool vs searchTags for filtering or updateTag for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUserRecentPagesBRead-onlyIdempotent
Get recently created pages by a specific user in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID to get recent pages for | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the read-only nature is clear. The description adds context about user specificity but does not detail behavior like error handling, return format, or pagination. No contradiction with 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 sentence that efficiently conveys the tool's purpose. Every word is meaningful, and there is no superfluous 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?
With no output schema, the description should mention what the tool returns (e.g., list of pages, metadata). It also omits details like ordering, limits, or error conditions. Given the complexity of sibling tools, more context would be beneficial.
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%, so the schema already documents both parameters. The description mentions 'specific user' which aligns with the 'id' parameter but adds no additional meaning beyond the schema descriptions.
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), the resource (recently created pages), and the scope (by a specific user). It distinguishes from sibling tools like getRecentPages (all users) and getPage (single page).
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 such as getRecentPages, getPage, or other user-specific tools. The description does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRevisionChangesARead-onlyIdempotent
List the authenticated user's consecutive-edit runs across all pages in GROWI. Each entry includes the baseline (from) and final (to) revision of the run with page accessibility flags, ordered for stable incremental sync with cursor pagination
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of run entries to return (1-100, default 20, optional) | |
| since | No | Inclusive lower bound on revision createdAt (ISO 8601, optional) | |
| cursor | No | Opaque pagination cursor returned in the `next` field of a prior response (optional) | |
| toDate | No | End of the date range (inclusive, ISO 8601, optional). Must not be earlier than `fromDate` | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| fromDate | No | Start of the date range (inclusive, ISO 8601, optional). Combined with `since`: the effective lower bound is the later of the two values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only, idempotent, and non-destructive. The description adds behavioral context: the structure of runs (baseline/final), page accessibility flags, and ordering for stable sync. This complements rather than contradicts 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?
Two sentences efficiently convey the tool's core purpose and output details without extraneous information.
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?
No output schema exists, but the description provides a high-level structure of entries (baseline/final revision, flags) and implies pagination via 'cursor'. Additional detail on exact response fields would be beneficial, but current info is sufficient for basic 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?
Schema coverage is 100% with descriptions for all 6 parameters. The description does not add significant meaning beyond what the schema provides, 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 it lists consecutive-edit runs across all pages, distinguishing it from other revision-related siblings. It specifies the content of each entry (baseline/final revision with page accessibility flags) and ordering for incremental sync.
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 emphasizes stable incremental sync with cursor pagination, indicating a primary use case. It lacks explicit guidance on when not to use or alternatives, but the context of siblings makes the purpose clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listRevisionsARead-onlyIdempotent
List revisions for a page in GROWI with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of revisions to retrieve per page (optional) | |
| offset | No | Offset for pagination (optional) | |
| pageId | Yes | Page ID to get revisions for | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the pagination support behavior, which is beyond what annotations provide. No contradictions.
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?
Single sentence, front-loaded with core purpose, no unnecessary words. Ideal conciseness.
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 no output schema, the description could mention what is returned (list of revision objects). It does not, but the name and pagination hint partially compensate. Adequate but not complete.
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 is 3. The description does not add parameter-specific meaning beyond the schema, only a general mention of pagination.
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 verb 'List' and the resource 'revisions for a page' with pagination support. It distinguishes from sibling tools like getRevision (single revision) and getPage (page details).
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 on when to use this tool versus alternatives like getRevision. The description does not mention exclusions or conditions, leaving the agent to infer from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pageListingInfoBRead-onlyIdempotent
Get summary information for pages in GROWI by IDs or path
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path of the page to get summary information for (One of `pageIds` or `path` must be provided) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| pageIds | No | Array of page IDs to get summary information for (One of `pageIds` or `path` must be provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds minimal behavioral context beyond stating it returns 'summary information', which is already implied by the name.
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 is front-loaded with the core action.
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?
While the tool is simple and has no output schema, the description omits details about the structure or content of the 'summary information', which could help the agent understand what to expect.
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 the schema already explains the parameters. The description's mention of 'by IDs or path' aligns with the schema but does not add extra meaning.
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 summary information'), the resource ('pages'), and the input method ('by IDs or path'). However, it does not explicitly differentiate from sibling tools like getPage or getPageInfo, which may return full 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 description provides no guidance on when to use this tool versus alternatives like getPage or getPageInfo. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publishPageBIdempotent
Publish a page by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ||
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false, but the description adds no behavioral context. It doesn't explain what 'publish' entails (e.g., visibility changes, permission requirements, or side effects).
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 unnecessary words. It is concise but could benefit from a bit more detail without being 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?
Given the simplicity of the tool and the presence of annotations, the description is too minimal. It fails to explain the concept of publishing, prerequisites, or the result, and does not differentiate from 25 sibling tools.
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 has 50% description coverage (appName described, pageId not). The tool description does not clarify the pageId parameter beyond what the schema already provides, so it adds minimal value.
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 (publish) and the resource (a page by its ID). It distinguishes from sibling 'unpublishPage' and other mutation tools like 'createPage' and 'updatePage'.
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. Siblings include createPage, updatePage, renamePage, duplicatePage, unpublishPage, etc., but no conditions or preferences are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
removeCommentADestructive
Remove a comment from a page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| commentId | Yes | ID of the comment to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, indicating the tool modifies state. The description does not add further behavioral context (e.g., whether removal is permanent, cascading effects, or error handling). Since annotations cover the key trait, the description's added value is minimal.
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 with no fluff. Every word is necessary, making it easy for an agent to parse quickly.
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 (two parameters, no output schema) and the presence of annotations indicating destructive behavior, the description is complete enough. No additional context seems necessary for correct invocation.
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%—both parameters have descriptions in the schema. The tool description does not add additional meaning beyond what the schema already provides, such as clarifying the format of commentId or behavior when the comment does not exist.
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 ('Remove') and the target ('a comment from a page in GROWI'), which distinguishes it from siblings like addComment (adds) and getComments (lists). The verb+resource combination is specific 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 implies usage (when you want to delete a comment) but provides no guidance on when not to use it or alternatives. For example, it does not mention that the comment must exist or that removal is permanent, nor does it suggest using addComment to re-add if needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renamePageB
Rename or move a page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Current path of the page (optional) | |
| pageId | Yes | ID of the page to rename | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| revisionId | No | Revision ID of the page (optional, deprecated) | |
| newPagePath | No | New path for the page (optional) | |
| isRecursively | No | Whether to rename child pages recursively | |
| updateMetadata | No | Whether to update page metadata | |
| isRenameRedirect | No | Whether to create a redirect from the old path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states 'rename or move', failing to disclose behavioral traits such as redirect creation (though a parameter exists), permission requirements, or side effects. This is insufficient for a mutation tool.
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 sentence, which is very concise and to the point. However, it lacks front-loading of key details; the length is appropriate but could be slightly expanded without losing conciseness.
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 8 parameters, no output schema, and no annotations, the description is insufficiently complete. It does not explain return values, error scenarios, or the overall behavior beyond the basic purpose.
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 each parameter having a description in the schema. The tool description adds no additional meaning beyond the schema, so a 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 clearly states the tool's purpose: 'Rename or move a page in GROWI'. It uses a specific verb and resource, and distinguishes it from sibling tools like createPage or deletePages by focusing on renaming/moving.
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 like duplicatePage or updatePage. The description does not mention prerequisites, context, or exclusions, leaving the agent without explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchPagesCRead-onlyIdempotent
Search pages in GROWI using Elasticsearch
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| path | No | ||
| limit | No | ||
| offset | No | ||
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds no extra behavioral context beyond mentioning Elasticsearch.
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 very concise but too terse; it lacks essential detail about the tool's parameters and usage, making it insufficiently informative.
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 5 parameters and no output schema, the description is far from complete. It fails to explain search behavior, filtering, or expected return values.
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 only 20%, and the description does not explain the purpose of parameters like q, path, offset, or limit. No additional semantics provided.
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 searches pages using Elasticsearch, which is a specific verb and resource. It distinguishes from siblings like getPage and searchTags by mentioning full-text search via Elasticsearch, though it doesn't explicitly differentiate.
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 such as getPage or searchTags. The description lacks context for optimal use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchTagsBRead-onlyIdempotent
Search for tags in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query for tags (optional) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate these. However, it adds no additional behavioral details beyond the bare search 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 sentence, front-loaded, and contains no unnecessary words. It is appropriately concise, though it could be slightly expanded with more context.
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 search tool with two optional parameters and no output schema, the description is marginally complete. It lacks details on search behavior (e.g., fuzzy match, case sensitivity, pagination) but annotations cover safety.
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 descriptions cover both parameters (100% coverage). The description does not add any extra meaning or context about the parameters beyond what the schema already provides.
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 it searches for tags in GROWI. It is a specific verb+resource combination. However, it does not explicitly differentiate from the sibling tool getTagList, which lists all tags.
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 like getTagList or searchPages. There is no mention of appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggestPathARead-onlyIdempotent
Get suggested save paths for content in GROWI. Analyzes the content body and returns directory path candidates with grant (permission) constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The content body to analyze for path suggestions (GROWI AI will extract keywords from this) | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by mentioning 'grant (permission) constraints' as a behavioral output detail. However, it does not disclose further behavioral traits like response format or potential limitations beyond the 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 concise, two sentences long, and front-loaded with the core purpose. Every sentence adds value: first states the action, second adds the behavioral context.
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 covers the essential functionality for a simple tool with two parameters and no output schema. It could be more complete by elaborating on the output format or examples, but it adequately informs an agent for selection.
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 both parameters (100% coverage). The main description adds no additional parameter semantics beyond what the schema gives, thus meeting the baseline of 3 without further enrichment.
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 explicitly states 'Get suggested save paths for content in GROWI' and explains it analyzes content body and returns directory path candidates with permission constraints. This clearly distinguishes it from sibling tools like createPage or renamePage.
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 suggesting save paths but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the extensive sibling list. Usage is inferred but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpublishPageBIdempotent
Unpublish a page by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | ||
| appName | No | GROWI app name to operate on (optional, uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent behavior and non-destructiveness. The description adds no further behavioral context, such as side effects, permissions, or state changes 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 sentence with no redundant information. It is front-loaded and efficient.
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 simple schema (2 params, no output schema) and annotations, the description is adequate for a straightforward operation. However, it lacks context about effects on page state, children, or relation to sibling tools like 'publishPage'.
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 50% (only 'appName' described). The description does not add meaning for 'pageId' or clarify parameter usage. It relies on the schema for semantic details.
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 ('unpublish') and resource ('page'), clearly stating the action. It distinguishes from sibling tools like 'publishPage' and avoids ambiguity.
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 (e.g., 'publishPage', 'deletePages'). No context on prerequisites or exclusions is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updatePageBDestructive
Update an existing page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| wip | No | Whether the page is work in progress | |
| body | Yes | New content of the page | |
| grant | No | Grant level for the page (0-5) | |
| pageId | Yes | ID of the page to update | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| revisionId | Yes | Current revision ID of the page (required for version control) | |
| overwriteScopesOfDescendants | No | Whether to overwrite grant settings of descendant pages | |
| userRelatedGrantUserGroupIds | No | IDs of the user groups to grant access to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false. The description adds no extra behavioral context (e.g., what happens to attachments, history, or concurrent edits). It does not contradict 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. While efficient, it could incorporate more details without becoming verbose. 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?
With 8 parameters, 3 required, and no output schema, the description provides minimal context. Missing details on return value, error handling, side effects, or prerequisites. Annotations partially compensate but not fully.
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 each parameter has a description. The tool description does not add further meaning beyond the schema (e.g., how grant interacts with user groups). 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 action ('Update') and resource ('existing page') within the system ('GROWI'), effectively distinguishing it from siblings like createPage or deletePages.
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 over alternatives (e.g., renamePage, publishPage) or when not to use it. The description lacks context on prerequisites or workflow positioning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateTagBIdempotent
Update tags for a page in GROWI
| Name | Required | Description | Default |
|---|---|---|---|
| tags | Yes | Array of tag names to set for the page | |
| pageId | Yes | Page ID to update tags for | |
| appName | No | GROWI app name to operate on (optional, uses default if not specified) | |
| revisionId | Yes | Revision ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds no behavioral context beyond annotations. Annotations indicate non-read-only, non-destructive, idempotent, open-world behavior; description merely says 'update tags'.
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?
Single concise sentence that is front-loaded and contains no superfluous 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?
No output schema and no return value explanation. Mutation tool with 4 parameters; description lacks details on side effects, concurrency, or replacement behavior.
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 descriptions cover 100% of parameters. Description does not add further meaning, 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?
Description uses specific verb 'Update' and resource 'tags for a page', clearly distinguishing it from sibling tools like getPageTag (retrieve tags) or createPage.
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. Does not mention conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.7.0- Added
getRevisionDiffs - Added
listRevisionChanges
3 tool updates
v1.5.0- Added
addComment - Added
removeComment - Changed
renamePage2 fields changed- changed
Input schema / properties / revisionId / descriptionPrevious value: -"Revision ID of the page"New value: +"Revision ID of the page (optional, deprecated)" - changed
Input schema / requiredPrevious value: -[ - "pageId", - "revisionId" -]New value: +[ + "pageId" +]
27 tool updates
v1.3.1- First observed
createPage - First observed
createShareLink - First observed
deletePages - First observed
deleteShareLinkById - First observed
deleteShareLinks - First observed
duplicatePage - First observed
getComments - First observed
getPage - First observed
getPageInfo - First observed
getPageListingChildren - First observed
getPageListingRoot - First observed
getPageTag - First observed
getRecentPages - First observed
getRevision - First observed
getShareLinks - First observed
getTagList - First observed
getUserRecentPages - First observed
listRevisions - First observed
pageListingInfo - First observed
publishPage - First observed
renamePage - First observed
searchPages - First observed
searchTags - First observed
suggestPath - First observed
unpublishPage - First observed
updatePage - First observed
updateTag
TDQS
Every tool has a clear and distinct purpose. For example, getPage, getPageInfo, getPageListingChildren, and getPageTag all target different aspects of a page. Similarly, share link operations are separate from comment operations. There is no discernible overlap.
Most tools follow a consistent verb_noun pattern in camelCase (e.g., createPage, deleteShareLink, getComments). One outlier is 'pageListingInfo' which lacks a verb, deviating from the pattern. Overall, the naming is largely consistent and predictable.
With 31 tools, the count exceeds the 25+ threshold identified as 'too many' in the scale. While the domain (a wiki system) may require many operations, this number feels heavy and could overwhelm an agent, leading to potential miselection.
The tool set covers most lifecycle operations for pages, comments, share links, tags, and revisions. A minor gap is the lack of an update comment tool, but agents can work around this by using removeComment and addComment. Otherwise, the surface is well-rounded.
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
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Search your knowledge bases from any AI assistant using hybrid RAG.
Shared company knowledge, workflows, and connected apps for the AIs your team already uses.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to search and retrieve content from WikiJS knowledge bases, allowing integration with your Wiki through simple search and retrieval tools.4416MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search, retrieve, and optionally edit pages in a WikiJS knowledge base via the Model Context Protocol.401MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants like Claude and Codex to read, write, search, and traverse Markdown notes stored in a self-hosted knowledge base.4MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to search, retrieve, and summarize content from workplace tools including Google Drive, Notion, Slack, and Confluence through secure Model Context Protocol.-
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/growilabs/growi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server