gitbook-mcp
MCP server that exposes 39 tools for GitBook API automation, enabling AI agents to manage documentation, change requests, reviews, and Git Sync.
README
gitbook-mcp
MCP Server for full GitBook API automation. Exposes 39 tools that allow AI agents (Claude Code, Cursor, etc.) to manage documentation, change requests, reviews, and Git Sync programmatically.
Quickstart
# 1. Clone
git clone <your-repo-url>
cd gitbook-mcp
# 2. Install and build
npm install
npm run build
# 3. Configure
cp .env.example .env
# Edit .env with your token (see "Configuration" below)
# 4. Run
npm start
Configuration
Environment variables
| Variable | Required | Description |
|---|---|---|
GITBOOK_API_TOKEN |
Yes | GitBook API token |
GITBOOK_DEFAULT_ORG_ID |
No | Default organization ID |
GITBOOK_DEFAULT_SPACE_ID |
No | Default space ID |
GITBOOK_API_BASE_URL |
No | API base URL (default: https://api.gitbook.com/v1) |
Get your token
- Go to GitBook Developer Settings
- Create a new API Token
- Copy the token to your
.env
.env example
GITBOOK_API_TOKEN=gb_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GITBOOK_DEFAULT_SPACE_ID=
GITBOOK_DEFAULT_ORG_ID=
AI Agent Integration
Claude Code
Add to .mcp.json in your project root:
{
"mcpServers": {
"gitbook": {
"command": "node",
"args": ["/path/to/gitbook-mcp/dist/index.js"],
"env": {
"GITBOOK_API_TOKEN": "${GITBOOK_API_TOKEN}",
"GITBOOK_DEFAULT_ORG_ID": ""
}
}
}
}
Claude Code resolves ${GITBOOK_API_TOKEN} from shell environment variables. Add to your ~/.bashrc or ~/.zshrc:
export GITBOOK_API_TOKEN="your-token-here"
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"gitbook": {
"command": "node",
"args": ["/path/to/gitbook-mcp/dist/index.js"],
"env": {
"GITBOOK_API_TOKEN": "your-token-here",
"GITBOOK_DEFAULT_ORG_ID": ""
}
}
}
}
In Cursor,
${VAR}interpolation is not supported. Place the token directly in the JSON.
Other MCP clients
Any client compatible with MCP via stdio transport will work. The server reads stdin/stdout following the MCP protocol.
Tools
Spaces (6)
| Tool | Description |
|---|---|
get_space |
Get space details |
update_space |
Update title, visibility |
create_space |
Create new space in an org |
duplicate_space |
Duplicate an existing space |
list_spaces |
List spaces in an org |
search_space_content |
Search content within a space |
Pages (8)
| Tool | Description |
|---|---|
get_space_revision |
Full page tree of a space |
list_pages |
List pages (with pagination) |
get_page_by_id |
Read page by ID |
get_page_by_path |
Read page by URL path (e.g., getting-started/install) |
get_page_links |
Outgoing links from a page |
get_page_backlinks |
Pages linking to a page (backlinks) |
list_files |
List files (images, attachments) |
get_file |
File details and download URL |
Change Requests (6)
| Tool | Description |
|---|---|
create_change_request |
Create new CR (similar to PR/draft) |
list_change_requests |
List CRs of a space |
get_change_request |
CR details |
update_change_request |
Update CR title/status |
merge_change_request |
Merge CR into main content |
sync_change_request |
Sync CR with latest content |
Reviews (5)
| Tool | Description |
|---|---|
list_reviews |
List reviews of a CR |
submit_review |
Approve, request changes, or comment |
list_requested_reviewers |
List requested reviewers |
request_reviewers |
Request review from specific users |
remove_reviewer |
Remove reviewer from a CR |
Comments (6)
| Tool | Description |
|---|---|
list_comments |
List comments (space or CR) |
post_comment |
Post comment (supports markdown) |
update_comment |
Edit existing comment |
delete_comment |
Delete comment |
list_comment_replies |
List replies to a comment |
post_comment_reply |
Reply to a comment |
Git Sync (3)
| Tool | Description |
|---|---|
git_import |
Import content from a Git repo to a space |
git_export |
Export content from a space to a Git repo |
get_git_info |
Git Sync status and configuration |
Organizations (4)
| Tool | Description |
|---|---|
get_organization |
Organization details |
list_collections |
List collections in an org |
get_collection |
Collection details |
ask_ai |
Ask GitBook AI about the documentation |
Content Import (1)
| Tool | Description |
|---|---|
import_content |
Import content from a URL into the org |
Architecture
src/
├── index.ts # Entrypoint — stdio transport
├── server.ts # McpServer creation
├── config.ts # Environment variable loading
├── client/
│ ├── gitbook-client.ts # HTTP client for GitBook API v1
│ └── types.ts # API response types
├── tools/
│ ├── index.ts # Registration of all 39 tools
│ ├── spaces.ts # 6 tools
│ ├── pages.ts # 8 tools
│ ├── change-requests.ts # 6 tools
│ ├── reviews.ts # 5 tools
│ ├── comments.ts # 6 tools
│ ├── git-sync.ts # 3 tools
│ ├── organizations.ts # 4 tools
│ └── content-import.ts # 1 tool
├── schemas/
│ └── index.ts # Reusable Zod schemas
└── utils/
├── errors.ts # API error handling
└── pagination.ts # Pagination helpers
Scripts
| Command | Description |
|---|---|
npm run build |
Compile TypeScript to dist/ |
npm start |
Start MCP server via stdio |
npm run dev |
Compile in watch mode (development) |
npm run inspect |
Open MCP Inspector for debugging |
Requirements
- Node.js >= 18.0.0
- npm
Dependencies
| Package | Version | Usage |
|---|---|---|
@modelcontextprotocol/sdk |
^1.12.0 | Official MCP SDK |
zod |
^3.24.0 | Schema validation |
typescript |
^5.7.0 | (dev) Compilation |
Debug
MCP Inspector
npm run inspect
Opens a web interface to test tools interactively.
Error logs
The server sends formatted errors back to the MCP client. GitBook API errors include:
- HTTP status code
- Failed endpoint
- GitBook error message
Common issues
| Problem | Solution |
|---|---|
GITBOOK_API_TOKEN is required |
Set the environment variable or create the .env file |
GitBook API error 401 |
Invalid or expired token — generate a new one |
GitBook API error 403 |
Token lacks permission for the resource |
GitBook API error 404 |
Incorrect space/page/org ID |
Cannot find module dist/index.js |
Run npm run build first |
Update
cd ~/gitbook-mcp
git pull
npm install
npm run build
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.