GitBook MCP by usefulapi
Server Details
Read spaces, collections, pages and content; search docs and manage GitBook organization spaces.
- Status
- Healthy
- Uptime
- 82.5% over 65 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 14 tools
Each tool combines a distinct resource (collection, space, page, user, change_request, comment) with a distinct action (get, list, search, create, update). The only near-pairs, gitbook_search_space vs gitbook_search_organization, are clearly scoped by description. No two tools could be reasonably confused.
All 14 tools follow a strict gitbook_<verb>_<noun> snake_case pattern with no deviations. The verb set (get, list, search, create, update) is used uniformly and predictably across resources.
14 tools sit comfortably in the well-scoped 3-15 range. Each tool maps to a concrete REST endpoint and earns its place; there is no redundant or filler tool.
The surface is heavily read-oriented: pages, spaces, and collections only support get/list with no create/update/delete, and comments only support list. Change requests have create/list/update but no get-single, merge, or close, leaving notable lifecycle gaps for a documentation platform.
Available Tools
14 toolsgitbook_create_change_requestCreate change requestBDestructiveInspect
Create a new draft change request (branch) in a space. Safe: creates a draft; publishes nothing. GitBook REST: POST /spaces/{spaceId}/change-requests.
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | The space id. | |
| subject | No | A title/subject for the change request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, yet the description asserts 'Safe: creates a draft; publishes nothing.' That directly negates the structured safety signal the agent relies on, which is a contradiction rather than added context. Useful details (no publish, POST endpoint) do not offset telling the agent the opposite of what the annotation says.
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?
Three short, front-loaded sentences with no filler; the core effect is stated first and the REST endpoint is appended. The 'Safe' framing occupies space but misleads, which is a small structural cost rather than verbosity.
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 two-parameter creation tool with no output schema and an annotation set that the description partly conflicts with, the definition is adequate on mechanics but silent about the return value (the created change request id) and about access requirements, leaving real gaps.
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 both spaceId and subject are already documented in the schema; the description only echoes 'in a space' and says nothing about subject. Baseline 3 applies when the schema carries parameter semantics.
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?
States a specific verb and resource ('Create a new draft change request (branch)') plus the scope ('in a space'), and the parenthetical '(branch)' disambiguates it from siblings like gitbook_update_change_request and gitbook_list_change_requests. An agent can select it correctly without opening the schema.
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 clause 'creates a draft; publishes nothing' implies when this is appropriate (proposing edits without touching published content), but there is no explicit when-to-use or when-not-to-use guidance relative to siblings such as update_change_request or direct page editing. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_get_collectionGet collectionARead-onlyInspect
Get a collection by its ID. GitBook REST: GET /collections/{collectionId}.
| Name | Required | Description | Default |
|---|---|---|---|
| collectionId | Yes | The collection id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the underlying REST verb/path, which is mildly useful orientation, but adds no context about failure modes (e.g., what happens with an unknown ID) or auth/rate constraints.
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 tight sentences: the purpose is front-loaded and the endpoint reference is a compact secondary clause. Nothing is padding.
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 one-parameter read-only lookup with an annotation-covered safety profile and no output schema, the definition is essentially sufficient. The only minor gap is no note about behavior on a missing/invalid collectionId.
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% and the single parameter (collectionId) is fully documented in the schema, so the baseline of 3 applies. The description adds no format, sourcing, or constraint detail 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 states a specific verb (Get) and resource (collection) scoped by a singular identifier ('by its ID'), which cleanly separates it from the sibling gitbook_list_collections. It stops short of naming that sibling explicitly, so it is clear but not sibling-differentiating at the highest level.
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?
Usage is only implied: 'by its ID' suggests it is the single-record lookup to use once an ID is known, in contrast to list_collections. There is no explicit when-to-use/when-not statement, prerequisites, or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_get_current_userGet current userARead-onlyInspect
Get the profile of the authenticated GitBook user. GitBook REST: GET /user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe, non-mutating read, so the description does not need to restate safety. It adds only the REST endpoint mapping (GET /user), which is mild implementation context; it says nothing about auth requirements beyond the word 'authenticated' or about what the profile payload contains.
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 short sentences, front-loaded with the purpose, followed by a compact REST mapping. Every word earns its place and nothing is padded.
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 zero-parameter read whose annotations already declare readOnlyHint, the definition is nearly complete. The only omission is a hint about the shape of the returned profile, which matters slightly since no output schema exists to document it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate. The description correctly implies no input is needed by framing it as 'the authenticated user'.
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?
States a specific verb (Get) and resource (profile of the authenticated GitBook user), so there is no ambiguity about what is returned. No sibling tool covers user identity, so differentiation is inherent rather than explicitly stated, which keeps it just short of a 5.
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?
Usage is implied by the phrase 'authenticated GitBook user' — it is the obvious call when the agent needs to know who it is acting as. There is no explicit when-to-use statement, no prerequisites, and no mention of alternatives, but none exist among the siblings, so the gap is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_get_pageGet pageARead-onlyInspect
Get a single page's content from a space by its page ID. GitBook REST: GET /spaces/{spaceId}/content/page/{pageId}.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format — 'document' (structured, default) or 'markdown'. | |
| pageId | Yes | The page id. | |
| spaceId | Yes | The space id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safe read-only profile, so the description only needs to add context. It adds the underlying REST endpoint mapping (GET /spaces/{spaceId}/content/page/{pageId}), but says nothing about not-found behavior or what 'content' excludes.
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 compact sentences with zero filler; the capability statement is front-loaded and the endpoint mapping is a useful trailing detail.
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 read-only single-resource fetch with full schema coverage and annotations, the description covers purpose and scope adequately. Minor gaps remain around return shape and error conditions, but no output schema is expected to carry those.
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 spaceId, pageId, and the format enum are already fully documented in the schema. The description adds no parameter detail beyond what the schema provides, so the baseline 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?
States a specific verb (Get), resource (a single page's content), and scoping (from a space, by page ID), which separates it from the list_pages and search siblings. It does not name an alternative explicitly, so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by its page ID' implies the caller must already hold a page identifier, which hints at when this applies versus listing or searching. However, no explicit when-to-use, prerequisites, or named alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_get_spaceGet spaceBRead-onlyInspect
Get full details of a space by its ID. GitBook REST: GET /spaces/{spaceId}.
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | The space id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already tells the agent this is a safe read, and the description adds nothing behavioral beyond it — no note on what 'full details' includes, whether the call fails on unknown IDs, or any permission scope. The only addition (the REST endpoint GET /spaces/{spaceId}) is API trivia rather than behavioral 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?
Two short sentences, action front-loaded, no filler. The REST endpoint mapping is the only arguably optional clause and it is kept terse.
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 single-parameter read tool with annotations covering the safety profile, the definition is nearly sufficient. The one remaining gap is that no output schema exists, so the description could say what 'full details' returns, but this is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented in the schema as 'The space id.' The description's 'by its ID' merely restates the schema, adding no format, source, or acquisition guidance. Baseline 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?
States a specific verb and resource ('Get full details of a space') and pins the lookup key ('by its ID'), which implicitly separates it from the list_/search_ siblings. It does not name any sibling explicitly, so differentiation is inferred rather than stated.
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 'by its ID' phrasing implies you should call this when you already hold a spaceId, but there is no explicit when-to-use guidance, no mention of gitbook_search_space for name-based lookup, and no statement of what to do if the ID is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_list_change_requestsList change requestsBRead-onlyInspect
List change requests for a space. GitBook REST: GET /spaces/{spaceId}/change-requests.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. | |
| status | No | Filter by change-request status, e.g. 'open', 'merged', 'draft'. | |
| spaceId | Yes | The space id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds only the REST endpoint mapping, which confirms but does not extend the read semantics; it says nothing about default page size, ordering, or total-count behavior that an agent listing results would benefit from.
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 tight sentences: the action and scope come first, the endpoint mapping second. Nothing is redundant or padded.
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 list tool with full schema coverage and a readOnly annotation, the description is essentially sufficient. The only modest omissions are pagination/ordering expectations, which are not strictly required to invoke it correctly.
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 page, limit, status, and spaceId are all documented in the schema itself. The description adds no format or semantics beyond the schema, which is the expected baseline when the schema carries the load.
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?
States a specific verb (List) and resource (change requests) with scope ('for a space') and even maps it to the underlying REST endpoint, so the agent knows exactly which operation this is. It does not explicitly differentiate itself from siblings like gitbook_get_change_request or gitbook_search_space, which keeps it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of alternatives (e.g. search_space for cross-space lookups), and no note about pagination or filtering behavior in practice. The 'for a space' phrasing weakly implies spaceId is the selector, but nothing routes the agent between this and its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_list_collectionsList collectionsBRead-onlyInspect
List all collections in an organization. GitBook REST: GET /orgs/{organizationId}/collections.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. | |
| nested | No | Include nested (sub-)collections in the response. | |
| organizationId | Yes | The organization id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds no further behavioral context: no mention of pagination behavior, default page/limit values, sorting, or what the response contains beyond the raw REST path.
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 compact sentences with the operation front-loaded. The trailing REST endpoint reference is somewhat redundant for an agent but does anchor the tool to a concrete API route without wasting much space.
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 list tool with full schema coverage and readOnlyHint annotations, the definition is nearly complete. No output schema exists, but the description does not need to explain returns; only pagination semantics are left implicit in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (page, limit, nested, organizationId) are already documented in the schema. The description adds nothing beyond the schema, which makes the baseline 3 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?
States a specific verb and resource with scope: 'List all collections in an organization'. It clearly differs from the singular gitbook_get_collection and from other list_* siblings by resource, though it never names an alternative explicitly.
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 offers no when-to-use conditions, prerequisites (e.g. required permissions or org membership), or alternatives to this tool versus get_collection or list_spaces. Usage is only inferable 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.
gitbook_list_commentsList commentsBRead-onlyInspect
List top-level comments posted on a space. GitBook REST: GET /spaces/{spaceId}/comments.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. | |
| status | No | Filter by comment status. | |
| spaceId | Yes | The space id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe read, and the description adds the useful nuance that only top-level comments are returned. However, it says nothing about pagination semantics, default page size, or whether the status filter has a default, so it clears the lowered annotated bar without adding much.
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, zero filler, and the purpose is front-loaded before the endpoint detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-only list call, but with no output schema it could say more about the shape of returned comments, and the free-form 'status' parameter is left unexplained in both schema and description.
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 page, limit, status, and spaceId are already documented. The description adds no extra meaning beyond the schema — notably it does not explain what values 'status' accepts, which the schema also leaves as a bare string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List top-level comments posted on a space') and even scopes it to top-level comments rather than replies. It is unambiguous, though there are no comment-oriented siblings to differentiate against, so the sibling-routing component of a 5 is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor on prerequisites such as needing a valid spaceId or whether replies can be retrieved some other way. The REST endpoint reference is descriptive, not prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_list_organizationsList organizationsARead-onlyInspect
List the organizations the authenticated user belongs to. GitBook REST: GET /orgs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares this is a safe read, so the description carries a lighter burden. It adds the REST mapping (GET /orgs) and the auth scope, but says nothing about pagination behavior or result ordering despite having page/limit 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?
Two brief sentences, zero waste. The scope constraint and the endpoint mapping are front-loaded and immediately actionable.
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, annotated, read-only list endpoint with fully documented parameters, the description covers what an agent needs to select and call it. The only gap is that no output schema exists and the description does not hint at the returned shape, which is minor for a low-risk list call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both page ('1-based page number') and limit ('Results per page') fully documented in the schema. The description adds no syntax, defaults, or range information beyond that, so the baseline 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?
States a specific verb and resource ('List the organizations') and scopes it to the authenticated user, which lets an agent distinguish it from the space/collection/change-request siblings at a glance. It stops short of explicitly naming a sibling it is not, so it lands at 4 rather than 5.
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 'organizations the authenticated user belongs to' clause is implied usage guidance: it tells the agent this returns only the caller's orgs, not all orgs in the instance. There is no explicit when-to-use/when-not or named alternative, so it is minimum-viable at 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_list_pagesList pagesARead-onlyInspect
List all pages in a space with their hierarchy and metadata. GitBook REST: GET /spaces/{spaceId}/content/pages.
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | The space id. | |
| computed | No | Include computed properties in the response. | |
| metadata | No | Include page metadata in the response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this as a safe, non-mutating read. The description adds that results are hierarchical and carry metadata, plus the underlying REST route, but says nothing about pagination, result limits, or ordering. With annotations covering the safety profile, this is an adequate but thin addition.
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 short sentences with the core capability front-loaded, followed by the REST route as a compact reference. No filler or redundancy.
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 usefully signals what comes back (hierarchy and metadata), which is the key thing an agent needs to know. The only gap is pagination/volume behavior for a list endpoint in a potentially large space.
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 all three parameters are already documented in the schema. The description's mention of 'metadata' loosely maps to the metadata flag but adds no format or default details beyond the schema. Baseline 3 applies when the schema carries the burden.
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 names a specific verb (List), resource (pages), and scope (all pages in a space), and adds that hierarchy and metadata are included. This is readily distinguishable from gitbook_get_page (single page) and from the list_* siblings targeting other resources.
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?
Usage is only implied by the scope wording: an agent can infer 'use this to enumerate all pages of a space.' There is no explicit statement of when to prefer this over gitbook_get_page or gitbook_search_space, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_list_spacesList spacesBRead-onlyInspect
List all spaces in an organization. GitBook REST: GET /orgs/{organizationId}/spaces.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. | |
| organizationId | Yes | The organization id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the underlying REST endpoint (GET /orgs/{organizationId}/spaces), which is real but marginal context, and it omits pagination behavior — notably the word 'all' sits awkwardly against the page/limit 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?
Two brief sentences, purpose front-loaded, zero redundancy. Every clause carries 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?
For a simple read-only list with full schema coverage and no output schema, the description is nearly sufficient. The remaining gap is pagination semantics — the description says 'all' without noting that results are paged, which an agent relying on page/limit should know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with page, limit and organizationId all documented in the schema, so the baseline is 3. The description adds nothing about parameter formats or defaults beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all spaces in an organization'), which is enough for an agent to separate it from gitbook_get_space and gitbook_list_collections. It does not explicitly name the sibling tools or clarify how it differs from gitbook_search_space, but the verb+resource pairing is 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 gives no when-to-use guidance and no alternatives: it never says to prefer gitbook_get_space for a single space or gitbook_search_space for filtered lookups. Usage must be inferred entirely 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.
gitbook_search_organizationSearch organizationBRead-onlyInspect
Search content across an entire organization. GitBook REST: GET /orgs/{organizationId}/search.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. | |
| query | Yes | The full-text search query (required). | |
| organizationId | Yes | The organization id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description's 'GET /orgs/{organizationId}/search' corroborates that this is a read-only operation. However, it says nothing about pagination behavior despite exposing page/limit, nor about what content is indexed or whether results span spaces and collections.
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 short sentences with no padding, and the purpose is front-loaded before the API mapping. The REST endpoint reference is mildly useful for cross-referencing docs, though it is not essential.
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 four-parameter search tool with no output schema, the description leaves the result shape, paging semantics, and result-scope unstated. Annotations cover the safety profile, but an agent still lacks enough to know what comes back or how paging behaves.
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 all four parameters (query, organizationId, page, limit) are already documented in the schema. The description adds no syntax, format, or semantic detail beyond that, so the baseline 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?
States a specific verb+resource ('Search content') and scopes it to 'an entire organization', which implicitly distinguishes it from the sibling gitbook_search_space. It is clear what the tool does, though it never names the alternative explicitly.
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 scope phrase 'across an entire organization' implies when org-wide search is appropriate versus space-scoped search, but there is no explicit when-to-use, when-not-to-use, or alternative-naming guidance. Usage must be inferred from the scope wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_search_spaceSearch spaceARead-onlyInspect
Full-text search across all pages in a space. GitBook REST: GET /spaces/{spaceId}/search.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number. | |
| limit | No | Results per page. | |
| query | Yes | The full-text search query (required). | |
| spaceId | Yes | The space id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered, and the 'GET /spaces/{spaceId}/search' reference is consistent with a read. Beyond that the description adds little: no pagination behavior (page/limit exist), no result ordering, no rate limits, and no note on what is matched (title vs body). Adequate but thin for a search endpoint.
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 short sentences with zero filler; the capability statement is front-loaded and the REST reference is a compact secondary detail. Nothing is redundant with the name or title.
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 is the only place return shape could be described, and it says nothing about what results contain or how pagination is signalled. Annotations plus the fully documented schema cover safety and inputs, so it is minimally complete but leaves a real gap for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so spaceId, query, page, and limit are already documented in the schema. The description adds no syntax, matching-mode, or pagination semantics beyond it, so the baseline 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?
States a specific verb and resource with scope: 'Full-text search across all pages in a space.' An agent immediately knows this is content search scoped to one space. It does not, however, distinguish itself from the sibling gitbook_search_organization, which is the main source of ambiguity between the two search tools.
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 space-scoped phrasing implies when this tool is appropriate (finding pages by content within a known space), but there is no explicit when-to-use/when-not statement and the sibling gitbook_search_organization is never named as the alternative for org-wide search. Usage is inferable rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitbook_update_change_requestUpdate change requestADestructiveInspect
Update a change request's subject or status. Edits draft metadata only. GitBook REST: PATCH /spaces/{spaceId}/change-requests/{changeRequestId}.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | A new status for the change request. | |
| spaceId | Yes | The space id. | |
| subject | No | A new title/subject for the change request. | |
| changeRequestId | Yes | The change request id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. The description adds useful blast-radius context by saying only draft metadata is edited, which tells the agent this does not publish or alter live content. It still omits whether the change is reversible and what permissions/validation the endpoint enforces, so it is a modest value-add rather than a rich disclosure.
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?
Three short sentences, front-loaded with the action and scope, then the endpoint. Every sentence earns its place with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 params, no output schema, and only a destructiveHint annotation, the description covers what can be changed and the endpoint. It leaves notable gaps: no indication of valid status values (the schema has no enum for a clearly enumerable field) and no note on the response or side effects of the destructive update.
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%, and the required spaceId/changeRequestId are documented in the schema, so the schema carries the burden. The description names the two mutable fields (subject, status) and the REST path, but adds no format, allowed status values, or validation detail 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?
States a specific verb (Update), resource (change request), and the exact editable fields (subject or status), which cleanly separates it from the sibling create/list/get operations. The PATCH endpoint reference reinforces the mutation semantics.
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?
'Edits draft metadata only' gives an implied scope for when this tool is appropriate, but there is no explicit when-to-use vs. alternatives guidance (e.g., use update vs. create_change_request, or that publishing is out of scope). The agent must infer the routing from the name.
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.
14 tool updates
- Changed
gitbook_create_change_request1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_get_collection1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_get_current_user1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_get_page1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_get_space1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_list_change_requests1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_list_collections1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_list_comments1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_list_organizations1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_list_pages1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_list_spaces1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_search_organization1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_search_space1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gitbook_update_change_request1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
14 tool updates
- First observed
gitbook_create_change_request - First observed
gitbook_get_collection - First observed
gitbook_get_current_user - First observed
gitbook_get_page - First observed
gitbook_get_space - First observed
gitbook_list_change_requests - First observed
gitbook_list_collections - First observed
gitbook_list_comments - First observed
gitbook_list_organizations - First observed
gitbook_list_pages - First observed
gitbook_list_spaces - First observed
gitbook_search_organization - First observed
gitbook_search_space - First observed
gitbook_update_change_request
Related MCP Connectors
Read Kisi places, doors, users, groups, access rights and access logs (no unlocking).
Read teams, spaces, lists and tasks; create, update and comment on tasks and track time.
Read Bettermode community spaces, members and posts; full-text search across your community.
Read and write knowledge-base articles, categories, snippets, glossary, readers, and search data.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides programmatic access to GitBook's API, enabling AI assistants to search, retrieve, and analyze documentation content across organizations, spaces, and collections with 12 tools and 6 AI-powered prompts.22 npm25MIT
- AlicenseNot gradedqualityDmaintenanceRead-only MCP server for accessing GitBook content, including spaces, pages, and search, through AI assistants.22 npmMIT
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to search, read, create, edit, and archive documents, manage collections and threaded comments, and discover backlinks in a documentation workspace, with automatic rate-limit handling.-
- FlicenseNot gradedqualityCmaintenanceEnables users to read, create, and edit Feishu Docx/Wiki pages and browse knowledge spaces through user-authorized Feishu credentials.-
Glama MCP Gateway
Add one secure layer between your agents and this server.