Skip to main content
Glama
lovecatisgood-sudo

DJAI Tools MCP

AI Agent MCP Tool for Local Document, PDF, PNG/Image, QR, RAG, CSV & File Processing

CI License: MIT MCP

English · ภาษาไทย · Try the original browser tools · Tool reference · Roadmap

Since publishing our free browser-based PDF tools, image converter and compressor, Thai-English OCR, DOCX converter, QR generator, AI token/RAG utilities, and CSV/JSON/Excel tools, many people have asked how they could let their AI or coding agents access that tool bundle and do the work for them. DJAI Tools MCP is our answer: a free, open-source, local-first Model Context Protocol server that gives AI agents carefully controlled file-processing capabilities on the user's own computer.

The goal is to help ChatGPT-compatible agents, Claude, Codex, Cursor, VS Code agents, and other MCP clients prepare context, count tokens, create RAG chunks, clean CSV/JSON data, generate QR files, and—through staged releases—process PDF, DOCX, OCR, PNG, JPG, WebP, images, and spreadsheets without sending private documents to DJAI.

Current release scope: v0.1.0 contains eight tested text, RAG, CSV, JSON, and QR tools. PDF conversion, DOCX, OCR, PNG/JPG image processing, and XLSX tools are published in our existing browser-tool collection and are planned for later MCP phases; they are not falsely advertised as working MCP commands in this release.

Why we built this

Browser tools are useful when a person wants to open a page and process a file. An MCP server serves a different workflow: the user asks an agent to prepare context, clean data, generate an artifact, or perform a multi-step task, and the agent calls narrowly described tools on the user's behalf.

This project is designed to provide:

  • Local privacy: files are read and processed on the user's machine.

  • Agent access: MCP-compatible agents can discover and call enabled tools.

  • Controlled permissions: the server reads and writes only inside allowed directories.

  • Repeatable workflows: structured results report paths, sizes, counts, warnings, and processing time.

  • Smaller tool menus: profiles register only the capabilities an agent needs.

  • Open development: source code is free under the MIT License and welcomes community review.

  • No DJAI processing bill: users provide their own compute and storage; DJAI does not host document processing.

Related MCP server: Agent Helper

Working MCP tools in v0.1.0

Capability

MCP tool

What the agent can achieve

AI token counter

djai_ai_count_tokens

Measure prompt, document, code, and context size using common tokenizer encodings

AI context optimizer

djai_ai_optimize_context

Remove repeated page furniture, broken prose wrapping, and excess whitespace

RAG chunk generator

djai_ai_chunk_for_rag

Create deterministic token-aware JSONL chunks with configurable overlap

Prompt/context packager

djai_ai_package_prompt

Combine local source files with Markdown or XML boundaries for an AI agent

CSV to JSON

djai_data_csv_to_json

Convert header-based CSV rows into a formatted JSON array

JSON to CSV

djai_data_json_to_csv

Convert an array of flat JSON objects into spreadsheet-friendly CSV

CSV cleaner

djai_data_clean_csv

Trim fields, remove empty rows, and remove exact duplicates

QR SVG generator

djai_qr_generate

Generate a local SVG QR code from text, URLs, Wi-Fi payloads, or identifiers

Planned phases cover merge/split/rotate/watermark PDF, PDF text and AI Markdown extraction, local Thai-English OCR, DOCX conversion, PNG/JPG/WebP image conversion and compression, PDF-to-image and image-to-PDF processing, and CSV/XLSX workflows. See ROADMAP.md.

Example agent workflows

  • “Count the tokens in these requirements and package only the relevant sources for Codex.”

  • “Clean this CSV, remove exact duplicates, convert it to JSON, and report the row counts.”

  • “Prepare this extracted document text as 700-token RAG chunks with 100-token overlap.”

  • “Generate a high-error-correction SVG QR code for this URL.”

  • Later releases: “OCR these Thai scanned pages, clean the text, and prepare a RAG knowledge base.”

  • Later releases: “Merge these PDFs, add page numbers, compress the output, and preserve the originals.”

Privacy and security model

The server uses local MCP over stdio; it is not a hosted upload API.

  • Read root defaults to the current working directory.

  • Write root defaults to ./djai-output.

  • Existing files are not overwritten unless --overwrite is explicitly enabled.

  • Real paths and symlinks are checked before file access.

  • Defaults limit files to 25 MB, packaged batches to 20 files/50 MB, inline text to 100,000 characters, and CSV/JSON to 100,000 rows.

  • Remote URL fetching and shell commands built from model input are not implemented.

  • Every successful operation reports the files it created and modifiedInput: false.

An MCP process still inherits the permissions of the account that starts it. Authorize narrow folders and read the complete security model.

Download, install, and build

Requires Node.js 22.13 or newer and npm.

git clone https://github.com/lovecatisgood-sudo/AI_Agent_MCP_Tool_for_Multi_Docu_PDF_PNG_QR_File_Conversion_Processing_Capability.git
cd AI_Agent_MCP_Tool_for_Multi_Docu_PDF_PNG_QR_File_Conversion_Processing_Capability
npm ci
npm run build
node dist/index.js --version

Run the server from source:

node dist/index.js --profile core \
  --allow-read /absolute/path/to/documents \
  --allow-write /absolute/path/to/djai-output

After the npm package is published, the intended one-command installation is:

npx -y @djai/tools-mcp --profile core \
  --allow-read /absolute/path/to/documents \
  --allow-write /absolute/path/to/djai-output

Connect an MCP-capable agent

For a source checkout, use the absolute path to the built server:

{
  "mcpServers": {
    "djai-tools": {
      "command": "node",
      "args": [
        "/absolute/path/to/AI_Agent_MCP_Tool_for_Multi_Docu_PDF_PNG_QR_File_Conversion_Processing_Capability/dist/index.js",
        "--profile",
        "core",
        "--allow-read",
        "/absolute/path/to/documents",
        "--allow-write",
        "/absolute/path/to/djai-output"
      ]
    }
  }
}

Use absolute paths because desktop agents may start the process from an unexpected directory. Client-specific examples for Claude Desktop, Codex, Cursor, and VS Code are in examples/.

Profiles and exact tool selection

node dist/index.js --profile core
node dist/index.js --profile ai-documents
node dist/index.js --profile data
node dist/index.js --profile qr
node dist/index.js --profile full

# Exact selectors override the profile
node dist/index.js --tools ai.count_tokens,ai.chunk_for_rag

core registers seven broadly useful tools; smaller profiles reduce agent context and selection ambiguity. Read profiles and the complete tool reference.

Original free browser tools

The MCP project grows from the earlier Free PDF, Image, OCR, DOCX, QR, AI and Data Tools. Those applications already provide live, private browser workflows for PDF, image resizing/conversion/compression, Thai-English OCR, documents, QR, AI context/RAG, CSV, JSON, and Excel.

Browser collection

English

ไทย

All tools

Open

เปิดเครื่องมือ

PDF tools

Open

เปิด

Image tools

Open

เปิด

Document and OCR

Open

เปิด

AI token and RAG

Open

เปิด

CSV/JSON/Excel

Open

เปิด

QR generator

Open

เปิด

About DJAI Academy, Siamese Cat Dev, and Siamese Cat Cafe

  • DJAI Academy develops practical technology education, software services, AI-agent integrations, and free digital tools for people and businesses.

  • Siamese Cat Dev is the independent developer and product builder behind this open-source MCP release and the original browser-tool collection.

  • Siamese Cat Cafe is the connected community business helping support cat adoption and independent creative development. Visitors can also find the cafe on Google.

Stars, contributions, honest feedback, visits to the cafe, and genuine reviews from people who have visited all help sustain the software and community mission.

Follow Siamese Cat Dev

Development and contributions

npm run check
npm test
npm run build
npm pack --dry-run

Use only synthetic fixtures—never commit personal, proprietary, confidential, or credential-bearing documents. Read CONTRIBUTING.md, SUPPORT.md, SECURITY.md, and the Code of Conduct.

MIT License and attribution

This project is free and open source under the MIT License. You may use, copy, modify, merge, publish, distribute, sublicense, and sell copies, including in commercial and closed-source products, provided the MIT copyright and permission notice is retained in copies or substantial portions.

Visible backlink credit is not required by MIT, but it is warmly appreciated:

See ATTRIBUTION.md for copy-ready examples. The MIT License does not grant trademark rights or permission to imply endorsement; see TRADEMARKS.md.

Available Tools

7 tools
djai_ai_chunk_for_ragChunk Text for RAGA

Split local text into deterministic o200k_base token chunks and write JSONL for a RAG knowledge base. Use after extraction and cleanup. Do not use overlap equal to or larger than chunk_size.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoInline UTF-8 text. Provide this or input_path, not both.
overlapNo
chunk_sizeNo
input_pathNoLocal UTF-8 text file inside an allowed read directory. Provide this or text, not both.
output_pathNoOptional output path inside an allowed write directory. Existing files are rejected unless the server starts with --overwrite.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should disclose behavioral traits. It mentions determinism and file I/O ('write JSONL'), but omits details like allowed directories, handling of existing files, or mutual exclusivity of text and input_path. Adds some value but lacks completeness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences total; first covers purpose and output, second gives usage order and a constraint. No extraneous words, well front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no output schema, and no annotations, the description covers purpose and usage order but lacks parameter behavior, error handling, and reading/writing constraints. Adequate but with clear gaps that an agent would need to infer from the schema or defaults.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 60%, yet the description does not explain any parameters beyond the overlap constraint. It does not elaborate on text vs input_path, chunk_size, or output_path. The description fails to add meaning beyond what the schema already provides, which is insufficient for the coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Split', the resource 'local text into deterministic o200k_base token chunks', and the output 'write JSONL for a RAG knowledge base'. It effectively distinguishes from sibling tools like 'djai_ai_count_tokens' (counting only) and 'djai_ai_optimize_context' (optimizing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Use after extraction and cleanup.' It also warns against setting overlap >= chunk_size. However, it does not explicitly state when not to use this tool or suggest alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

djai_ai_count_tokensCount AI TokensA

Count tokens and text metrics locally. Use before budgeting prompt or RAG context. Accepts inline text or an allowed local UTF-8 file; it never modifies files.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoInline UTF-8 text. Provide this or input_path, not both.
encodingNoTokenizer encoding to use.o200k_base
input_pathNoLocal UTF-8 text file inside an allowed read directory. Provide this or text, not both.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description adds value by stating it 'never modifies files' and accepts 'allowed local UTF-8 file', hinting at read-only and access restrictions. Could detail error behavior, but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no filler. Each sentence adds value: purpose and usage context in first, input modes and safety in second.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description doesn't specify return values (e.g., token count, character count). For a simple counting tool, this is a minor gap. Could mention output format for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description echoes schema (inline text or file) without adding new semantic details about encoding or usage beyond what schema's descriptions provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('count tokens and text metrics') and resource ('locally'), and distinguishes from sibling tools like optimize_context or chunk_for_rag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use before budgeting prompt or RAG context', providing clear when-to-use guidance. Does not mention when not to use or alternatives, but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

djai_ai_optimize_contextOptimize AI ContextA

Clean repeated headers, page labels, broken line wraps, and excess whitespace from local text. Use before prompting or chunking extracted document text. Do not use when exact formatting must be preserved.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoInline UTF-8 text. Provide this or input_path, not both.
input_pathNoLocal UTF-8 text file inside an allowed read directory. Provide this or text, not both.
output_pathNoOptional output path inside an allowed write directory. Existing files are rejected unless the server starts with --overwrite.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It lists what is cleaned (headers, page labels, etc.) but does not disclose whether the cleaned text is returned or written to output_path, nor does it mention error handling or side effects. The behavioral traits are partially transparent but leave gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that convey purpose, use cases, and limitations. Every word earns its place, and the key information is front-loaded. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with three parameters and no output schema. The description covers purpose and usage guidelines but lacks details on return behavior (text vs. file), error conditions, and tie-in with sibling tools. It is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with well-described parameters. The description adds little beyond the schema: it reiterates 'local text' but does not clarify the relationship between 'text' and 'input_path' or the behavior of 'output_path'. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Clean repeated headers, page labels, broken line wraps, and excess whitespace from local text.' It uses a specific verb ('Clean') and identifies the resource ('local text'). It distinguishes from sibling tools like djai_ai_chunk_for_rag by recommending usage 'before prompting or chunking'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance ('Use before prompting or chunking extracted document text.') and a clear when-not-to-use condition ('Do not use when exact formatting must be preserved.'). However, it does not name alternative sibling tools for cases where formatting preservation is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

djai_ai_package_promptPackage Prompt ContextA

Combine multiple allowed local UTF-8 files into one agent-ready Markdown or XML-delimited context file. Use to preserve source boundaries. Do not use for binary files or more than the configured batch limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
boundaryNomarkdown
input_pathsYes
output_pathNoOptional output path inside an allowed write directory. Existing files are rejected unless the server starts with --overwrite.
instructionsNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that files must be UTF-8, use boundaries, and output_path overwrite behavior. However, it does not explain error handling, file ordering, or what happens with non-existent input paths.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey purpose, constraints, and key behavioral details. No wasted words, front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters and no output schema, the description covers main function and constraints but lacks details on output format, error scenarios, and file ordering. Adequate but with gaps that could impact tool selection in complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (output_path only). The description adds meaning: input_paths are local UTF-8 files, boundary is either markdown or XML, output_path has overwrite behavior, instructions is free text. It compensates for the low schema coverage well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool combines multiple local UTF-8 files into a single agent-ready context file with Markdown or XML delimiters, preserving source boundaries. This distinctly separates it from sibling tools like counting tokens or optimizing context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit positive use ('preserve source boundaries') and two clear negative constraints (no binary files, no exceeding batch limit). However, it does not mention alternative tools like 'djai_ai_chunk_for_rag' for when chunking is preferred over packaging.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

djai_data_clean_csvClean CSVA

Trim headers and values, remove empty rows, and remove exact duplicate rows from CSV locally. Use for basic cleanup; do not use when whitespace or duplicate rows are semantically meaningful.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYesInput file inside an allowed read directory.
output_pathNoOptional output path inside an allowed write directory.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behavioral traits. It correctly states the cleaning operations and that the tool works locally. However, it does not clarify what happens when output_path is omitted (e.g., overwrites input or creates a temporary file), nor does it mention size or error handling. Still, core behavior is well communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first succinctly lists all cleaning operations; the second provides clear usage guidance. No wasted words or redundancies. Front-loaded with action and purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and full schema coverage, the description is largely complete. It lacks explicit mention of output format (presumably CSV) and does not address error handling or permissions, but for a basic cleaning tool, these are minor gaps. The absence of annotations reduces completeness slightly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The tool description reinforces that input is a CSV file and mentions local processing. The parameter descriptions add context about allowed directories, which is helpful beyond just the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's actions: 'Trim headers and values, remove empty rows, and remove exact duplicate rows from CSV locally.' It distinguishes itself from siblings like djai_data_csv_to_json (conversion) by focusing on cleaning operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance provided: 'Use for basic cleanup; do not use when whitespace or duplicate rows are semantically meaningful.' This tells the agent when and when not to use the tool, citing specific scenarios where the tool's operations would be inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

djai_data_csv_to_jsonConvert CSV to JSONA

Convert a header-based CSV file into a formatted JSON array locally. Use for structured imports and APIs. The input is preserved and output is written only to an allowed directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYesInput file inside an allowed read directory.
output_pathNoOptional output path inside an allowed write directory.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description partially discloses traits: input preservation and output directory restrictions. It does not detail error handling, default output behavior, or the format of the JSON array, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action, every word earns its place. No redundant or vague phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description covers key aspects (local processing, allowed directories, input preservation). Could briefly mention the return value (JSON array) but is otherwise adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover both parameters, but the description adds value by specifying 'allowed read directory' and 'allowed write directory', providing context beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Convert a header-based CSV file into a formatted JSON array locally'), the resource (CSV file), and the output (formatted JSON array). It distinguishes from siblings like djai_data_clean_csv by specifying conversion to JSON.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates use cases ('structured imports and APIs') and constraints ('input is preserved', 'output is written only to an allowed directory'). However, it does not explicitly state when not to use or mention alternatives like djai_data_clean_csv.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

djai_qr_generateGenerate QR SVGA

Generate a deterministic QR code as a local SVG file. Use for text, URLs, Wi-Fi payloads, or identifiers. It does not fetch or validate remote URLs and never embeds a remote image.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
marginNo
contentYesText payload encoded into the QR code.
dark_colorNo#000000
light_colorNo#ffffff
output_pathNoOptional .svg output path inside an allowed write directory.
error_correctionNoM

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It discloses that the QR code is deterministic and saved locally, and notably states it never fetches or validates remote URLs, ensuring the agent understands it is offline. Minor missing details (e.g., overwrite behavior) but sufficient for safe use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the purpose, the second adds behavioral constraints. Every word is functional, front-loaded, and there is no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotation, the description is incomplete. It does not explain return values (e.g., whether it returns the file path), handling of existing files, or allowed write directories. The behavioral constraint is helpful but leaves significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (29%) with only 'content' having a description. The description does not elaborate on parameters like width, margin, colors, error correction, or output path beyond schema defaults and constraints. It does not compensate for the low coverage, leaving the agent with minimal guidance on parameter effects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a deterministic QR code as a local SVG file, with explicit examples of use (text, URLs, Wi-Fi payloads, identifiers). It distinguishes from sibling tools, all of which cover different AI or data processing tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use the tool (for various payloads) and explicitly what it does not do (validate remote URLs or embed remote images). However, it does not provide explicit alternatives or contrast with other tools, but the sibling context makes differentiation clear.

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.

  1. 7 tool updatesv0.1.0
    • First observeddjai_ai_chunk_for_rag
    • First observeddjai_ai_count_tokens
    • First observeddjai_ai_optimize_context
    • First observeddjai_ai_package_prompt
    • First observeddjai_data_clean_csv
    • First observeddjai_data_csv_to_json
    • First observeddjai_qr_generate

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: token counting, text cleanup, RAG chunking, prompt packaging, CSV conversion, CSV cleaning, and QR generation. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent prefix (djai_ category) and verb_noun snake_case pattern (e.g., djai_ai_count_tokens, djai_qr_generate), making the surface predictable.

Tool Count5/5

7 tools is well-scoped for a server offering AI text preprocessing, data conversion, and QR generation utilities—not too few, not too many.

Completeness4/5

The tool set covers the core workflow of text handling (count, clean, chunk, package) and data conversion (CSV), with QR as an extra. Minor gaps like a generic concatenate tool exist, but the surface supports common tasks fully.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Privacy-first file tools for AI agents, enabling operations like PDF merge/split, image compression/convert, metadata stripping, and background removal without storing files.
    22 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables file operations (PDF, Office, images, archives, media) through natural language, with tools for reading, writing, converting, and analyzing files locally.
    1
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with local documents (PDF, Markdown, TXT) through tools for discovery, reading, extraction, summarization, comparison, keyword extraction, search, and analysis, ensuring privacy and offline capability.
    -