npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@bucketeer/docs-local-mcp-server

v1.3.0

Published

Local MCP Server to query Bucketeer documentation

Downloads

35

Readme

Bucketeer Docs Local MCP Server

Overview

This project provides a Model Context Protocol (MCP) server for Bucketeer documentation. It offers an interface for searching and retrieving content from Bucketeer's feature flag and experimentation platform documentation, enabling AI assistants to provide accurate information about Bucketeer's features and usage.

Environment Setup

Requirements

  • Node.js 18+
  • npm

Installation Steps

  1. Clone the repository:
git clone <repository-url>
cd bucketeer-docs-local-mcp-server
  1. Install dependencies:
npm install
  1. Build the project:
npm run build
  1. Build the document index:
npm run build:index

Starting the Server

npm start

Document Sources

The server automatically fetches and indexes documentation from the bucketeer-io/bucketeer-docs repository:

  • GitHub Repository Integration:

    • Automatically fetches .mdx files from the docs/ directory and all subdirectories
    • Processes frontmatter and markdown content for optimal search indexing
    • Caches fetched content using SHA hashes and only updates when files are modified
    • Supports recursive directory traversal to capture all documentation files
  • Intelligent Indexing:

    • Extracts keywords from titles, descriptions, headers, and content
    • Builds searchable index with relevance scoring based on keyword matches and full-text search
    • Optimized for Bucketeer-specific terminology (feature flags, experiments, SDKs, targeting, etc.)
    • Handles frontmatter extraction (title, description) from MDX files
  • Cache Management:

    • Files are cached locally in files/docs/ directory as JSON files
    • Document index is stored in files/index/document-index.json
    • GitHub cache stored in files/docs/github_cache.json with SHA-based change detection
    • Use npm run build:index:force to force rebuild the entire index

Using with npx

First-time Setup

  1. Build the document index:
npx @bucketeer/docs-local-mcp-server build-index
  1. Use in your MCP configuration as shown in the next section.

Updating the Index

To update the documentation index (e.g., when new documentation is available):

npx @bucketeer/docs-local-mcp-server build-index --force

Cursor and Claude Desktop Configuration

Configure the MCP Server by adding the following to your mcp.json or claude_desktop_config.json file, referring to the documentation for Cursor (https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers) and Claude Desktop (https://modelcontextprotocol.io/quickstart/user):

Option 1: Using npx (Recommended)

{
  "mcpServers": {
    "bucketeer-docs": {
      "type": "stdio",
      "command": "npx",
      "args": ["@bucketeer/docs-local-mcp-server"]
    }
  }
}

Option 2: Using local installation

{
  "mcpServers": {
    "bucketeer-docs": {
      "type": "stdio",
      "command": "npm",
      "args": ["start", "--prefix", "/path/to/bucketeer-docs-local-mcp-server"]
    }
  }
}

Usage

When the MCP server is running, the following tools are available:

1. search_docs - Search Bucketeer Documentation

  • Parameter: query (string) - The search query
  • Parameter: limit (number, optional) - Maximum number of results to return (default: 5)

Example:

{
  "name": "search_docs",
  "arguments": {
    "query": "feature flags SDK integration",
    "limit": 5
  }
}

Response: Returns an array of search results with title, URL, path, description, excerpt, and relevance score.

2. get_document - Get Specific Document Content

  • Parameter: path (string) - Document path obtained from search results

Example:

{
  "name": "get_document",
  "arguments": {
    "path": "getting-started/create-feature-flag"
  }
}

Response: Returns the full document content including title, description, URL, and complete markdown content.

Development Commands

  • npm run build - Compile TypeScript files to dist/ directory
  • npm run build:index - Build/update the document index from GitHub repository
  • npm run build:index:force - Force rebuild the entire index (ignores cache)
  • npx @bucketeer/docs-local-mcp-server build-index - Build index using npx
  • npx @bucketeer/docs-local-mcp-server build-index --force - Force rebuild index using npx
  • npm run dev:index - Build and update index in development mode
  • npm run dev - Build and start server in development mode
  • npm run lint - Run Biome linting
  • npm run lint:fix - Run Biome linting and fix linting errors

Configuration

The server is configured via src/config/index.ts:

  • siteName: "Bucketeer"
  • websiteUrl: "https://docs.bucketeer.io"
  • githubRepo: "https://github.com/bucketeer-io/bucketeer-docs"
  • docsDirectory: "docs" (directory in GitHub repo containing documentation)
  • searchLimitDefault: 5 (default number of search results)
  • useGithubSource: true (always uses GitHub as source)

File Structure

files/
├── docs/           # Cached JSON files from GitHub repository
├── index/          # Document search index
│   └── document-index.json
└── [created automatically when building index]

Architecture

The server consists of several key components:

  1. GithubDocumentFetcher: Recursively fetches .mdx files from the GitHub repository
  2. IndexManager: Builds and manages the searchable document index
  3. SearchService: Provides search functionality with keyword matching and full-text search
  4. MCP Server: Exposes tools via the Model Context Protocol

License

Apache License 2.0, see LICENSE.

Contributing

We would ❤️ for you to contribute to Bucketeer and help improve it! Anyone can use and enjoy it!

Please follow our contribution guide here.