UNPKG

@mseep/mcp-bookstack

Version:

[![smithery badge](https://smithery.ai/badge/@yellowgg2/mcp-bookstack)](https://smithery.ai/server/@yellowgg2/mcp-bookstack)

208 lines (147 loc) 4.73 kB
# BookStack MCP Server [![smithery badge](https://smithery.ai/badge/@yellowgg2/mcp-bookstack)](https://smithery.ai/server/@yellowgg2/mcp-bookstack) A Model Context Protocol (MCP) server that provides tools for searching pages from BookStack. This server interacts with the BookStack API and provides structured data for pages with clean HTML-to-text conversion. ## Features - Search pages from BookStack with customizable queries - Get structured data including titles, URLs, and content - Configurable pagination (page number and count) - HTML-to-text conversion for clean content reading - Clean error handling and validation ## Installation ### Installing via Smithery To install mcp-bookstack for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@yellowgg2/mcp-bookstack): ```bash npx -y @smithery/cli install @yellowgg2/mcp-bookstack --client claude ``` ### Installing Manually 1. Clone the repository: ```bash git clone https://github.com/yellowgg2/mcp-bookstack.git cd mcp-bookstack ``` 2. Install dependencies: ```bash npm install ``` 3. Configure your environment: Create a `.env` file with your BookStack API credentials or provide them in the MCP settings configuration file: ``` BOOKSTACK_API_TOKEN=your_token BOOKSTACK_API_URL=your_bookstack_url BOOKSTACK_API_KEY=your_api_key ``` 4. Build the server: ```bash npm run build ``` 5. Add to your MCP settings configuration file (location depends on your system): For VSCode Claude extension: ```json { "mcpServers": { "bookstack": { "command": "node", "args": ["/path/to/mcp-bookstack/build/app.js"], "env": { "BOOKSTACK_API_URL": "your_bookstack_url", "BOOKSTACK_API_TOKEN": "your_token", "BOOKSTACK_API_KEY": "your_api_key" } } } } ``` ## Usage The server provides a tool called `search_pages` that can be used to search pages from BookStack. ### Tool: search_pages Parameters: - `query` (string): Query to search for pages - Default: "" (empty string) - `page` (number): Page number to return - Range: 1-10 - Default: 1 - `count` (number): Number of pages to return - Range: 1-30 - Default: 10 Example usage: ```typescript use_mcp_tool with: server_name: "bookstack" tool_name: "search_pages" arguments: { "query": "knowledge base", "page": 1, "count": 5 } ``` Sample output: ``` # Page Title Page content in plain text format... Source: https://your-bookstack-url/page-url ``` ## Integrating with Claude To use this MCP server with Claude, you'll need to: 1. Have the Claude desktop app or VSCode Claude extension installed 2. Configure the MCP server in your settings 3. Use Claude's natural language interface to interact with BookStack ### Configuration For the Claude desktop app, VSCode Claude extension, and Cursor, add the server configuration to: ```json // ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) // %APPDATA%\Claude\claude_desktop_config.json (Windows) { "mcpServers": { "bookstack": { "command": "node", "args": ["/path/to/mcp-bookstack/build/app.js"], "env": { "BOOKSTACK_API_URL": "your_bookstack_url", "BOOKSTACK_API_TOKEN": "your_token", "BOOKSTACK_API_KEY": "your_api_key" } } } } ``` ### Example Interactions Once configured, you can interact with Claude using natural language to search BookStack pages. Examples: - "Search for documentation about API usage in our BookStack knowledge base" - "Find information about deployment in our internal docs" - "Look up security guidelines in BookStack" Claude will automatically use the appropriate parameters to search for the pages you want. ## Page Response Structure Each page response includes: - Title of the page - Full content of the page (converted from HTML to plain text) - Source URL to the original page The HTML-to-text conversion handles: - HTML entity decoding - Line breaks and paragraph formatting - List items with bullet points - Removal of HTML tags - Whitespace normalization ## Development The server is built using: - TypeScript - Model Context Protocol SDK - Axios for API requests - Zod for data validation - dotenv for environment configuration To modify the server: 1. Make changes to `src/app.ts` 2. Rebuild: ```bash npm run build ``` ## Error Handling The server includes robust error handling for: - API connection failures - Authentication issues - Invalid parameter values - Data parsing errors Errors are returned with appropriate error codes and descriptive messages. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License MIT License - feel free to use this in your own projects.