DJAI Tools MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DJAI Tools MCPCount tokens in this file and generate RAG chunks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI Agent MCP Tool for Local Document, PDF, PNG/Image, QR, RAG, CSV & File Processing
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.0contains 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 |
| Measure prompt, document, code, and context size using common tokenizer encodings |
AI context optimizer |
| Remove repeated page furniture, broken prose wrapping, and excess whitespace |
RAG chunk generator |
| Create deterministic token-aware JSONL chunks with configurable overlap |
Prompt/context packager |
| Combine local source files with Markdown or XML boundaries for an AI agent |
CSV to JSON |
| Convert header-based CSV rows into a formatted JSON array |
JSON to CSV |
| Convert an array of flat JSON objects into spreadsheet-friendly CSV |
CSV cleaner |
| Trim fields, remove empty rows, and remove exact duplicates |
QR SVG generator |
| 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
--overwriteis 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 --versionRun the server from source:
node dist/index.js --profile core \
--allow-read /absolute/path/to/documents \
--allow-write /absolute/path/to/djai-outputAfter 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-outputConnect 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_ragcore 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 | ||
PDF tools | ||
Image tools | ||
Document and OCR | ||
AI token and RAG | ||
CSV/JSON/Excel | ||
QR generator |
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
GitHub: @lovecatisgood-sudo
Developer profile: Siamese Cat Dev
Instagram: @djcatdev
Facebook: Siamese Cat Dev
Website: DJAI Academy
Development and contributions
npm run check
npm test
npm run build
npm pack --dry-runUse 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:
Creator: Siamese Cat Dev at DJAI Academy
Original tools: Free PDF, Image, OCR, DOCX, QR, AI and Data Tools
Community business: Siamese Cat Cafe
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 toolsdjai_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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Inline UTF-8 text. Provide this or input_path, not both. | |
| overlap | No | ||
| chunk_size | No | ||
| input_path | No | Local UTF-8 text file inside an allowed read directory. Provide this or text, not both. | |
| output_path | No | Optional output path inside an allowed write directory. Existing files are rejected unless the server starts with --overwrite. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Inline UTF-8 text. Provide this or input_path, not both. | |
| encoding | No | Tokenizer encoding to use. | o200k_base |
| input_path | No | Local UTF-8 text file inside an allowed read directory. Provide this or text, not both. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Inline UTF-8 text. Provide this or input_path, not both. | |
| input_path | No | Local UTF-8 text file inside an allowed read directory. Provide this or text, not both. | |
| output_path | No | Optional output path inside an allowed write directory. Existing files are rejected unless the server starts with --overwrite. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| boundary | No | markdown | |
| input_paths | Yes | ||
| output_path | No | Optional output path inside an allowed write directory. Existing files are rejected unless the server starts with --overwrite. | |
| instructions | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | Input file inside an allowed read directory. | |
| output_path | No | Optional output path inside an allowed write directory. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | Input file inside an allowed read directory. | |
| output_path | No | Optional output path inside an allowed write directory. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| margin | No | ||
| content | Yes | Text payload encoded into the QR code. | |
| dark_color | No | #000000 | |
| light_color | No | #ffffff | |
| output_path | No | Optional .svg output path inside an allowed write directory. | |
| error_correction | No | M |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.0- First observed
djai_ai_chunk_for_rag - First observed
djai_ai_count_tokens - First observed
djai_ai_optimize_context - First observed
djai_ai_package_prompt - First observed
djai_data_clean_csv - First observed
djai_data_csv_to_json - First observed
djai_qr_generate
TDQS
Scored across 7 tools
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.
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.
7 tools is well-scoped for a server offering AI text preprocessing, data conversion, and QR generation utilities—not too few, not too many.
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
Related MCP Connectors
PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.
Document conversion and OCR for AI agents: PDF, Office docs, images to text.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Image & PDF tools for AI agents: compress, convert, resize, PDF, AI vision, pipeline.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenancePrivacy-first file tools for AI agents, enabling operations like PDF merge/split, image compression/convert, metadata stripping, and background removal without storing files.22 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to process files locally — OCR images, extract text from PDFs and DOCX, and describe images using local vision models, all without sending data to external services.-
- FlicenseNot gradedqualityDmaintenanceEnables file operations (PDF, Office, images, archives, media) through natural language, with tools for reading, writing, converting, and analyzing files locally.1-
- FlicenseNot gradedqualityCmaintenanceEnables 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.-