Skip to main content
Glama
Kitbag MCP

Kitbag MCP

by syedtaj7

Kitbag MCP is a single, open-source Model Context Protocol server that bundles a curated library of 50+ high-value utility tools β€” document converters, OCR processors, web scrapers, data formatters, and AI developer utilities β€” all in one place.

Instead of installing, configuring, and paying to host a dozen single-purpose MCP servers, install Kitbag MCP once and selectively enable only the modules you need. It runs entirely on your machine: zero hosting costs, no API keys, no server setup.


πŸ“– Table of Contents


Related MCP server: IteraTools MCP

πŸš€ Quick Start (Zero Config)

Run instantly using npx (Node.js required):

npx kitbag-mcp

Expose Specific Modules (Saves LLM Context Tokens)

To prevent your AI agents from getting overwhelmed by tool options, enable only what you need:

# Enable PDF and Web scraping modules only
npx kitbag-mcp --enabled-modules pdf,web

βš™οΈ Supported Clients Setup

1. Claude Desktop

Add this entry to your claude_desktop_config.json:

{
  "mcpServers": {
    "kitbag-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "kitbag-mcp",
        "--enabled-modules",
        "pdf,web,image,data,utility,ai"
      ]
    }
  }
}

2. Cursor

  1. Go to Settings β†’ Beta Features β†’ MCP.

  2. Click + Add New MCP Server.

  3. Configure:

    • Name: Kitbag MCP

    • Type: stdio

    • Command: npx -y kitbag-mcp --enabled-modules pdf,web,data,utility

3. Windsurf

Add this entry to your mcp_config.json:

{
  "mcpServers": {
    "kitbag-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "kitbag-mcp"
      ],
      "env": {
        "KITBAG_ENABLED_MODULES": "pdf,web,data,utility"
      }
    }
  }
}

πŸŽ›οΈ Configuration Flags & Environment Variables

Kitbag MCP can be configured through CLI flags, environment variables, or a JSON config file β€” whichever fits your workflow.

Configuration Source

Example Usage

CLI Flags

--enabled-modules pdf,web or --enabled-tools utility.qr_generate

Env Variables

KITBAG_ENABLED_MODULES=pdf,web or KITBAG_ENABLED_TOOLS=utility.qr_generate

JSON Config

A kitbag-config.json file in the current working directory, or via --config /path/to/config.json

kitbag-config.json schema:

{
  "enabledModules": ["pdf", "web", "image", "data", "utility", "ai", "developer"],
  "enabledTools": [],
  "defaultTimeoutMs": 30000,
  "maxPayloadSizeBytes": 52428800
}

πŸ—ΊοΈ Tool Category Index

Category

Prefix

Tools

Focus

πŸ“„ PDF

pdf.*

6

Parsing, conversion, merging, splitting

🌐 Web

web.*

7

Scraping, feeds, sitemaps, DNS

πŸ“Έ Image & OCR

image.*

5

Resizing, compression, OCR, EXIF

πŸ“Š Data

data.*

8

CSV / JSON / XML / YAML conversion

πŸ’» Developer

developer.*

11

Formatting, linting, diffing, decoding

πŸ› οΈ Utility

utility.*

12

Crypto, QR, networking, archives

🧠 AI

ai.*

1

Text chunking for LLM ingestion


πŸ“š Complete Tool Directory

πŸ“„ PDF Tools (pdf.*)

High-performance local PDF parsers and manipulators.

Tool Name

Description

Example Agent Prompt

pdf.convert_to_text

Extract raw text from a PDF document.

"Extract the text from reports/invoice.pdf"

pdf.convert_to_markdown

Parse PDF and format it into clean Markdown.

"Convert layout of guide.pdf to markdown"

pdf.extract_images

Extract raw image assets embedded inside a PDF.

"Extract all images from slide_deck.pdf"

pdf.extract_tables

Extract structured table data from PDF pages.

"Pull out all tables from financial_report.pdf"

pdf.merge

Merge multiple PDF files together in order.

"Merge doc1.pdf and doc2.pdf into a single file"

pdf.split

Split specific page ranges from a PDF.

"Give me page 1 to 3 from main_guide.pdf"


🌐 Web Scraping & Networking (web.*)

Interact with raw web documents and query networking systems.

Tool Name

Description

Example Agent Prompt

web.to_markdown

Scrape a webpage, clean clutter, and convert to Markdown.

"Convert the article at https://example.com/blog to markdown"

web.extract_metadata

Extract title, description, OG tags, and JSON-LD data.

"Get metadata for URL https://news.ycombinator.com"

web.extract_links

Scrape a webpage and list internal and external links.

"Find all external links on the Wikipedia page for AI"

web.rss_parser

Parse an RSS or Atom feed XML URL into JSON.

"Get the latest feed items from https://github.blog/feed/"

web.sitemap_generator

Fetch and parse a sitemap.xml URL, extracting all URLs.

"Fetch all URLs in the sitemap for google.com"

web.dns_lookup

Perform DNS resolution (A, AAAA, MX, TXT, etc.).

"Do an MX record lookup for domain gmail.com"

web.youtube_transcript

Extract text transcripts and captions with timestamps.

"Get the transcript for https://www.youtube.com/watch?v=dQw4w9"


πŸ“Έ Image & OCR Tools (image.*)

Manipulate images and extract text locally.

Tool Name

Description

Example Agent Prompt

image.ocr

Extract text from an image locally using Tesseract OCR.

"Extract text from screenshot.png"

image.resize

Resize an image's dimensions (width and height).

"Resize avatar.png to be 200x200 pixels"

image.compress

Compress image file size with custom quality.

"Compress banner.jpg to 80% quality"

image.convert_format

Convert images between formats (PNG, JPEG, WebP, etc.).

"Convert logo.png to webp format"

image.exif_metadata

Extract EXIF camera and location metadata from image files.

"Show me the GPS coordinates and camera model of photo.jpg"


πŸ“Š Data Transformation (data.*)

Fast, offline conversion between standard data formats.

Tool Name

Description

Example Agent Prompt

data.csv_to_json

Convert CSV file or raw text to JSON.

"Parse users.csv and return it as JSON"

data.json_to_csv

Convert JSON array of objects to CSV output.

"Convert this array of users to a CSV table"

data.xml_to_json

Convert XML documents to structured JSON objects.

"Convert this configuration XML text to JSON"

data.json_to_xml

Convert JSON objects to clean XML output.

"Export this JSON object into XML tag format"

data.yaml_to_json

Convert YAML documents to JSON.

"Convert Kubernetes config yaml to JSON"

data.json_to_yaml

Convert JSON objects to clean YAML format.

"Format this database JSON block as YAML"

data.deduplicate

Deduplicate arrays of JSON objects by a specific key.

"Remove duplicates from this list of user objects by ID"

data.diff_arrays

Compare two JSON arrays and list differences.

"Compare array A and B and show me additions and removals"


πŸ’» Developer Utilities (developer.*)

Standard formats, validation, and layout tools for developers.

Tool Name

Description

Example Agent Prompt

developer.json_formatter

Format and prettify JSON strings with custom indentation.

"Prettify this JSON string using 4 spaces indent"

developer.jwt_decoder

Decode JWT tokens to read payload/header claims.

"Decode this JWT token: eyJhbGciOiJI..."

developer.sql_formatter

Format SQL strings for multiple database dialects.

"Format this messy select query for PostgreSQL"

developer.mermaid_generate

Create Mermaid diagrams (flowcharts, sequence, etc.).

"Generate a flowchart diagram representing this user flow"

developer.openapi_parser

Parse and format OpenAPI/Swagger specification files.

"List the endpoints and request schemas of this openapi.yaml"

developer.regex_tester

Test regular expression matches on text.

"Test if this email regex matches test@example.com"

developer.cron_parser

Parse Cron expressions and list upcoming execution times.

"Tell me when the cron job '0 9 * * 1-5' runs next"

developer.diff_files

Show line differences between text files.

"Show me the diff between fileA.txt and fileB.txt"

developer.diff_json

Show differences between JSON schemas.

"Highlight structural changes between config1.json and config2.json"

developer.code_detector

Detect programming language and syntax structure.

"What programming language is this code written in?"

developer.markdown_lint

Lint and validate formatting in Markdown files.

"Find styling errors or trailing spaces in index.md"


πŸ› οΈ Utility Tools (utility.*)

System, network, and cryptography helper functions.

Tool Name

Description

Example Agent Prompt

utility.qr_generate

Generate a QR code as a file or base64 Data URL.

"Create a QR code pointing to https://github.com"

utility.qr_read

Read and decode a QR code from a file or stream.

"What does the QR code inside code.png say?"

utility.base64_encode

Convert strings/files to base64 format.

"Base64 encode the string 'Hello World'"

utility.base64_decode

Decode base64 strings back to text.

"Decode 'SGVsbG8gV29ybGQ='"

utility.uuid_generate

Generate secure UUIDs (v4/v1) or secure passwords.

"Generate a secure password of length 16"

utility.file_hash

Compute md5, sha1, or sha256 hashes of text/data.

"Calculate the sha256 hash of this string"

utility.email_validate

Validate syntax and verify MX records of emails.

"Check if support@github.com has valid MX records"

utility.ssl_check

Query certificate expiration date and info for any domain.

"Check when the SSL certificate for google.com expires"

utility.unit_convert

Convert values between physical or data units.

"Convert 1024 megabytes to gigabytes"

utility.url_parser

Break down URLs into protocol, domain, params, etc.

"Parse this search query URL into its components"

utility.zip_create

Compress files or folders into a single ZIP archive.

"Compress source/ and assets/ into workspace.zip"

utility.zip_extract

Extract a ZIP archive to a destination folder.

"Extract files from archive.zip into build_dir/"


🧠 AI Chunker (ai.*)

Segment large text structures dynamically for ingestion.

Tool Name

Description

Example Agent Prompt

ai.text_chunker

Chunk long text using paragraph/sentence/word strategies.

"Chunk this text document into 500-char sizes with a 50-char overlap"


πŸ—οΈ How It Works

flowchart LR
    A[AI Agent / Client] -->|MCP Protocol| B(Kitbag MCP Server)
    B --> C{Enabled Modules}
    C --> D[πŸ“„ pdf.*]
    C --> E[🌐 web.*]
    C --> F[πŸ“Έ image.*]
    C --> G[πŸ“Š data.*]
    C --> H[πŸ’» developer.*]
    C --> I[πŸ› οΈ utility.*]
    C --> J[🧠 ai.*]
    D & E & F & G & H & I & J --> K[Local Execution<br/>No External API Calls]
    K --> A

Kitbag MCP runs as a single local process. Your AI client talks to it over the standard MCP protocol, and only the modules you enable are exposed as tools β€” keeping token usage low and your workflow fast and private.


πŸ› οΈ Local Development & Contributions

Every tool is fully self-contained. Adding a new tool is as simple as creating a folder inside src/tools/<category>/<tool_name>/.

Contribution Requirements

File

Purpose

tool.ts

The main execution code, exporting a ToolDefinition.

README.md

Direct tool documentation and parameter descriptions.

example.json

Sample inputs and expected outputs.

tests.ts

Self-contained unit tests using mocks where necessary to run instantly.

Command Guide

# Build compiler output
npm run build

# Run all 50 module tests
npm test

# Run real-life execution checks (makes live API and DNS requests)
npx tsx src/tests/run_real_life.ts

βš–οΈ License

Distributed under the MIT License. See LICENSE for more information. Fully open-source and free to adapt for personal or commercial use.

⭐ If Kitbag MCP saves you time, consider starring the repo! ⭐

Available Tools

51 tools
ai_text_chunkerB

Split large text into smaller semantic chunks for LLM context optimization or vector databases (RAG).

Inputs: text (required), strategy, chunkSize, chunkOverlap.

data_csv_to_jsonB

Convert a CSV file or CSV string data to a JSON array.

Inputs: columns, csvData, filePath, delimiter.

data_deduplicateB

Remove duplicate entries from a JSON array of objects or strings.

Inputs: arrayData (required), key.

data_diff_arraysA

Compare two JSON arrays of objects and return the differences (added, deleted, modified, unchanged).

Inputs: arrayA (required), arrayB (required), key.

data_json_to_csvB

Convert a JSON array of objects to a CSV string.

Inputs: filePath, jsonData, delimiter.

data_json_to_xmlB

Convert a JSON object to an XML text string.

Inputs: jsonData (required), rootName.

data_json_to_yamlA

Convert a JSON object or string to a YAML text string.

Inputs: jsonData (required).

data_xml_to_jsonA

Convert an XML string to a structured JSON object.

Inputs: xml (required).

data_yaml_to_jsonB

Convert a YAML string to a structured JSON object.

Inputs: yaml (required).

developer_code_detectorB

Detect the programming language of a raw code snippet using heuristic analyzers.

Inputs: code (required).

developer_cron_parserA

Parse a cron expression to validate it, explain its scheduling, and list its next execution dates.

Inputs: expression (required), iterations.

developer_diff_filesA

Compare two text contents (or files) and generate a Git-style line-by-line diff.

Inputs: contentA (required), contentB (required), headerA, headerB.

developer_diff_jsonB

Perform a structural, nested properties diff comparison between two JSON objects.

Inputs: jsonA (required), jsonB (required).

developer_json_formatterA

Validate, format (pretty-print), or minify JSON strings.

Inputs: json (required), indent, minify.

developer_jwt_decoderA

Decode the header and payload of a JSON Web Token (JWT) without verification, displaying timestamps in human-readable formats.

Inputs: token (required).

developer_markdown_lintB

Lint Markdown text for common format, structural, and style violations.

Inputs: markdown (required).

developer_mermaid_generateA

Format and construct a syntax-valid Mermaid diagram markup.

Inputs: type (required), elements (required), title.

developer_openapi_parserA

Parse and validate an OpenAPI (Swagger) 3.0 / 3.1 specification, returning endpoints summary.

Inputs: spec (required).

developer_regex_testerA

Test a regular expression against a string and return details about matches and capture groups.

Inputs: text (required), regex (required), flags.

developer_sql_formatterB

Format SQL queries to improve readability. Supports dialects like sql, mysql, postgresql, sqlite, plsql.

Inputs: sql (required), dialect.

image_compressC

Compress image quality to reduce file size.

Inputs: quality (required), fileData, filePath, outputPath.

image_convert_formatC

Convert an image to a different file format (supports png, jpeg, bmp).

Inputs: format (required), fileData, filePath, outputPath.

image_exif_metadataA

Extract EXIF metadata tags (e.g. camera, GPS, capture date) from JPEG images.

Inputs: fileData, filePath.

image_ocrA

Extract text from an image (PNG, JPEG, etc.) using Tesseract OCR. Supports local file path or base64 data.

Inputs: fileData, filePath, language.

image_resizeB

Resize an image to specific width and height dimensions.

Inputs: width (required), height, fileData, filePath, +1 more.

pdf_convert_to_markdownB

Extract text from a PDF file and apply heuristics to format it into Markdown.

Inputs: fileData, filePath.

pdf_convert_to_textA

Extract raw text from a PDF file using pdf-parse (supports local file path or base64 data).

Inputs: fileData, filePath.

pdf_extract_imagesB

Extract embedded JPEG images from a PDF file.

Inputs: fileData, filePath.

pdf_extract_tablesB

Extract structures resembling data tables from a PDF text stream and format them in Markdown.

Inputs: fileData, filePath.

pdf_mergeB

Merge multiple PDF files into a single PDF document.

Inputs: files (required), outputPath.

pdf_splitB

Split a PDF file into separate pages or custom page ranges.

Inputs: pages, fileData, filePath.

utility_base64_decodeB

Decode a Base64 encoded string back to its original plain text or save to a file.

Inputs: base64 (required), outputPath.

utility_base64_encodeB

Encode a text string or a local file to Base64 format.

Inputs: text, filePath.

utility_email_validateA

Validate email format and check if the domain has configured mail exchange (MX) DNS records.

Inputs: email (required), checkMx.

utility_file_hashA

Calculate the cryptographic hash (SHA-256, MD5, SHA-1) of a file or text string.

Inputs: text, filePath, algorithm.

utility_qr_generateA

Generate a QR code for a given text or URL, returning a base64 Data URL or saving to a file.

Inputs: text (required), outputPath.

utility_qr_readB

Decode a QR code from an image file or base64 image data.

Inputs: fileData, filePath.

utility_random_numberA

Generate a cryptographically secure random integer within a specified range [min, max].

Inputs: max, min.

utility_ssl_checkA

Retrieve SSL certificate details (expiration, issuer, subject) for a given domain/host.

Inputs: host (required), port.

utility_unit_convertB

Convert values between physical or data units (length, mass, temperature, data storage).

Inputs: to (required), from (required), type (required), value (required).

utility_url_parserA

Parse a URL string into its component parts (protocol, hostname, port, pathname, search params, hash).

Inputs: url (required).

utility_uuid_generateA

Generate a cryptographically secure UUID (v4/v1) or a secure random password.

Inputs: type, length.

utility_zip_createC

Compress files or folders into a single ZIP archive.

Inputs: files (required), outputPath (required).

utility_zip_extractB

Extract a ZIP archive to a destination folder.

Inputs: zipPath (required), outputPath (required).

web_dns_lookupA

Perform DNS resolution for a domain (A, AAAA, MX, TXT, CNAME, NS, SOA).

Inputs: domain (required), rrtype.

web_extract_metadataB

Extract metadata, OpenGraph tags, Twitter cards, and JSON-LD structured data from a web page.

Inputs: url (required).

web_rss_parserA

Parse an RSS or Atom feed XML URL and return feed items in a structured JSON array.

Inputs: url (required).

web_sitemap_generatorA

Fetch and parse a sitemap.xml URL, extracting all listed URLs.

Inputs: url (required).

web_to_markdownA

Fetch a web page, clean up clutter (scripts, styles, footer, navigation), and convert the main body to Markdown.

Inputs: url (required).

web_youtube_transcriptA

Extract text transcripts and captions with timestamps from a YouTube video URL.

Inputs: url (required), languageCode.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 51 tools

    Disambiguation5/5

    Each tool targets a distinct operation, with clear category prefixes and unique action-noun combinations. No two tools appear to do the same thing.

    Naming Consistency4/5

    Tools follow a consistent category_operation pattern, but the operation style varies (e.g., verb_noun, noun_to_noun, noun_noun). This minor inconsistency does not hinder understanding.

    Tool Count3/5

    With 51 tools, the set is large but justified by the broad utility scope of a 'kitbag'. However, the count is on the high side, potentially overwhelming for an agent.

    Completeness5/5

    The toolkit covers a wide range of common tasks: data conversion, image processing, PDF handling, web scraping, developer utilities, and more. No obvious gaps for a general-purpose utility server.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Multi-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.
      50 npm
      1
      MIT