ai-workers-mcp
This server routes commodity NLP tasks to free-tier LLMs, saving premium AI tokens for more complex work. Key capabilities include:
Summarize (
ai_summarize): Summarize a URL or text into paragraph or bullet formatTranslate (
ai_translate): Translate text into one or more target languagesGenerate (
ai_generate): Generate text from a prompt with optional system contextRewrite (
ai_rewrite): Rewrite text in various styles (formal, casual, concise, etc.)Proofread (
ai_proofread): Correct grammar/spelling and list fixes, with language awarenessBullet Points (
ai_bullet): Convert prose into a markdown bullet listOutline (
ai_outline): Build a hierarchical markdown outline from textClassify (
ai_classify): Classify text into provided labels with truncate or vote overflow strategiesExtract (
ai_extract): Extract named fields from text as structured JSONQ&A (
ai_qa): Answer questions about a URL or text, with automatic map-reduce for long contentCompare (
ai_compare): Compare two texts with optional focus on a specific aspectEmail Draft (
ai_email_draft): Draft an email from bullet-point notes with configurable toneKeywords & Sentiment: Extract keywords or analyze sentiment
Title Suggestions: Generate title options for text
Monitor Usage: View daily request/error counts per provider/key
Reload Configuration: Dynamically reload config without restarting
Override Cache TTL: Adjust cache settings per tool at runtime
Additional features: handles texts up to 50,000 characters with auto-chunking, supports multi-provider round-robin with automatic fallback, and filters sensitive patterns (e.g., credentials) before sending to LLMs.
Click on "Install 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., "@ai-workers-mcptranslate 'Hello, how are you?' to French"
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-workers-mcp
MCP server that routes commodity NLP tasks (summarize, translate, rewrite, proofread, …) to free-tier LLMs, saving Claude tokens for work that actually needs them. Multi-provider, multi-account, with round-robin, automatic fallback, in-memory caching, and daily usage tracking.
Tools
All exposed as ai_* MCP tools and as /<verb>-ai slash commands.
NLP tools
Tool | Input | What it does |
|
| Summarize a page or prose ( |
|
| Translate to one or more languages in one call |
|
| Generate text from a prompt |
|
| Rewrite in one or more styles in one call |
|
| Correct and list fixes (language-aware) |
|
| Turn prose into a bullet list (optional cap) |
|
| Build a hierarchical outline (H1–H |
|
| Classify into one label; overflow: |
|
| Extract fields as JSON |
|
| Answer a question about content (map-reduce for long texts) |
|
| Compare two texts |
|
| Draft an email from notes |
|
| Extract top keywords (default 10) |
|
| Sentiment analysis — label, confidence, summary |
|
| Generate title suggestions (default 5) |
Observability & config tools
Tool | Input | What it does |
| — | Show today's request/error counts per provider/key |
| — | Reload |
|
| Override cache TTL for a tool at runtime |
Every response carries a provider/model banner: 🔷 **gemini · gemini-2.5-flash** ────.
Large-text support
All text tools auto-chunk inputs over 50 000 characters and merge results (map-reduce for summarize/qa, chunk-outline-merge for outline, majority-vote or truncate for classify, per-field merge for extract, concatenation for others). No manual splitting needed.
Related MCP server: tokens-saver-mcp
Slash commands
Each NLP tool has three slash-command variants (48 total, in .claude/commands/):
/<verb>-ai— result shown in chat (with banner)/<verb>-ai-replace— replaces the editor selection/<verb>-ai-append— inserts the result after the selection
NLP verbs: generate, summarize, translate, rewrite, proofread, list, outline, classify, extract, ask, compare, draft, keywords, sentiment, title.
Observability verbs (chat only): usage, check-limits, configure.
Input priority: argument › editor selection › clipboard › interactive prompt.
Multi-value arguments use / as separator:
/translate-ai en/es/nl→ translates into English, Spanish, and Dutch in one call/rewrite-ai formal/concise→ returns both rewrites in one response
Overflow handling
For very long inputs (> 50 000 chars), slash commands for classify ask which strategy to use:
truncate — classify the first 50 000 characters only
vote — classify each chunk independently, return the majority label
skip — cancel
/ask-ai and /outline-ai handle overflow automatically (map-reduce and chunk-outline-merge respectively).
Setup
1. Configure providers & keys
Copy the example and add your key(s):
cp ai-workers.example.json ~/.config/ai-workers.json
chmod 600 ~/.config/ai-workers.json
# edit ~/.config/ai-workers.jsonGet a free Gemini key at aistudio.google.com. Use gemini-2.5-flash (free tier). Add more keys to multiply your free quota, or add Groq/Mistral/OpenRouter blocks to order for cross-provider fallback.
2. Install (cross-platform)
macOS / Linux / inside WSL:
./setup.shWindows (Claude Code on Windows, server in WSL):
.\setup.ps1The installer builds the server, deploys the slash commands to your user scope, and registers the MCP server in your Claude Code config.
3. Reload Claude Code
Run /mcp to confirm ai-workers is connected.
Portability
The core (src/**) is plain Node — runs identically on macOS, Linux, WSL, and Windows. The only platform-specific glue is the per-machine MCP registration, handled by the two setup scripts. Secrets live solely in ~/.config/ai-workers.json (resolved via homedir()), never in the Claude config.
Privacy
A rules-based filter runs before any text leaves your machine. It blocks file paths, code patterns, and credential patterns (sends nothing, returns an error), and warns on emails/phone numbers (prepends a notice, still sends). Keep inputs plain prose.
Configuration reference
~/.config/ai-workers.json — read once at server start (use /configure-ai reload or ai_reload_config to apply changes live):
{
"order": ["gemini", "groq", "mistral"],
"providers": {
"gemini": {
"baseURL": "https://generativelanguage.googleapis.com/v1beta/openai/",
"model": "gemini-2.5-flash",
"keys": ["KEY_1", "KEY_2"],
"dailyLimit": 1000
},
"groq": {
"baseURL": "https://api.groq.com/openai/v1/",
"model": "llama-3.3-70b-versatile",
"keys": ["YOUR_GROQ_KEY"],
"dailyLimit": 1000
},
"mistral": {
"baseURL": "https://api.mistral.ai/v1/",
"model": "mistral-small-latest",
"keys": ["YOUR_MISTRAL_KEY"],
"dailyLimit": 1000
}
}
}Round-robin rotates across a provider's keys; 429 triggers escalating cooldown (60s → 1h), 401/403 a long cooldown, then falls through to the next provider in order. Falls back to the GEMINI_API_KEY env var if no config file exists.
Caching
Text and URL results are cached in memory per tool:
Tool | Default TTL |
| 1 hour |
all others | 5 minutes |
Override at runtime: /configure-ai ttl <tool> <ms> or call ai_set_ttl directly.
Usage tracking
Every LLM call is recorded to ~/.config/ai-workers-usage.json (per-key ok/error counts, reset at Pacific midnight). Run /usage-ai or call ai_usage to see today's table.
Rebuilding after changes
npm run buildThen reload Claude Code (or use ai_reload_config if only the JSON config changed).
Available Tools
12 toolsai_bulletA
Extract key points from plain text as a markdown bullet list using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to extract bullet points from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the use of a 'configured free LLM' and input restrictions, but does not disclose traits like idempotency, failure modes, or rate limits, which are gaps for a text-processing tool.
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 with zero fluff. The first sentence covers purpose and mechanism, the second adds necessary constraints. Every word 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?
Given the low complexity (1 parameter, no output schema, no annotations), the description is fairly complete. It explains input format, output format (markdown bullet list), and constraints. However, it lacks details on edge cases like large text handling or bullet nesting, leaving minor gaps.
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% and the parameter description is adequate, but the tool description adds value by explicitly restricting input to 'Plain prose only — no code, secrets, or file paths', which goes beyond the schema's 'Plain text' description.
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 states the verb 'Extract key points', the resource 'plain text', and the output format 'markdown bullet list'. It also specifies constraints ('using a configured free LLM', 'Plain prose only'), clearly distinguishing from siblings like ai_summarize or ai_outline.
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 by stating that the tool is for plain prose and explicitly excluding code, secrets, or file paths. However, it does not name alternative siblings when those constraints are violated, leaving some guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_classifyA
Classify plain text into one of the provided labels using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to classify | |
| labels | Yes | List of category labels to classify into |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. Mentions 'configured free LLM' but lacks details on latency, cost, or determinism. Does not describe output format or error handling for invalid inputs. Adequate but not thorough.
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 only. First states core purpose, second adds key constraint. No filler, front-loaded with critical information.
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 two-parameter classification tool with no output schema, description covers purpose and input constraints. Missing details like output format (single label vs confidence scores) and label limits, but mostly complete given simplicity.
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 3. Description adds 'plain prose' constraint for text and 'provided labels' for labels, but these are largely implicit in the schema. Does not add significant new meaning beyond the schema.
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 classification of plain text into provided labels using an LLM. It specifies the verb 'classify' and resource 'plain text', and distinguishes from siblings like ai_generate or ai_summarize by focusing on categorization.
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?
Provides explicit constraint 'Plain prose only — no code, secrets, or file paths', guiding appropriate input. Does not explicitly mention when to use vs alternatives, but context suggests it's for categorization tasks distinct from other AI tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_compareB
Compare two plain texts and highlight similarities and differences using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text_a | Yes | First text | |
| text_b | Yes | Second text | |
| focus | No | Optional aspect to focus the comparison on, e.g. 'tone', 'structure' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It mentions using 'a configured free LLM' but does not explain how the comparison is performed, whether results are deterministic, or what happens with large texts. Key behavioral context is missing.
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 long, front-loads the purpose, and contains no extraneous information. Every word serves a clear function.
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?
Despite moderate tool complexity and no output schema, the description does not explain the return format or how results are presented. Key details about behavior (e.g., output structure) are missing, leaving the agent under-informed.
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?
The input schema already describes all three parameters (100% coverage). The description adds 'Plain prose only' as a constraint on the text inputs, which provides some additional context beyond the schema, but not enough to raise the score above the baseline.
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 function: compare two plain texts and highlight similarities/differences. The verb 'compare' and resource 'plain texts' are explicit, and the purpose distinguishes it from sibling tools (e.g., ai_summarize, ai_rewrite) which do different 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 provides a specific content restriction ('Plain prose only — no code, secrets, or file paths'), but does not explicitly state when to use this tool versus alternatives or mention any prerequisites or conditions. The guidance is useful but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_email_draftA
Draft an email body from bullet points using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| bullets | Yes | Bullet points as a string or array of strings | |
| tone | No | Email tone, e.g. 'professional', 'friendly', 'assertive'. Defaults to 'professional'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description adds context about using a 'configured free LLM' and output constraints ('plain prose'), but does not disclose behavior like rate limits, auth needs, or error handling.
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 with no redundancy. Front-loaded with the core action and resource.
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 tool with 2 params and no output schema, the description covers the purpose, input, and key constraint. Might miss return format (e.g., whether it returns plain body or includes subject), but is generally 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 coverage is 100% and both parameters are described in the schema. The description does not add significant meaning beyond what the schema provides, just reiterates the prose constraint.
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 tool drafts an email body from bullet points, with a specific verb ('draft') and resource ('email body'). It distinguishes from sibling tools by focusing on email drafting.
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?
Provides a constraint ('Plain prose only — no code, secrets, or file paths') but lacks explicit when-to-use or when-not-to-use compared to alternatives like ai_generate or ai_summarize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_extractA
Extract named fields from plain text as JSON using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to extract from | |
| fields | Yes | Field names to extract, e.g. ['author', 'date', 'title'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses it uses a free LLM and returns JSON, and restricts input to plain prose. It doesn't detail potential state changes, rate limits, or auth needs, but for a read-like extraction this is acceptable. Adds moderate behavioral context.
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, no fluff. The action and constraints are front-loaded. Every word 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 straightforward tool with no output schema, the description covers core functionality and constraints. It doesn't explain return value structure, but that's acceptable per rules. Could be slightly more complete with an explicit note about output format, but it's already implied.
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 100%, and the description adds an example for fields parameter ('e.g. ['author', 'date', 'title']'), which provides some additional clarity beyond the schema. Baseline 3 is appropriate as the description does not significantly extend the schema.
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 verb 'extract', resource 'named fields from plain text', and output format 'as JSON'. It distinguishes from sibling tools by specifying a very different operation (extracting fields) vs. summarizing, classifying, etc.
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?
Provides clear input constraints: 'Plain prose only — no code, secrets, or file paths.' This helps the agent decide when to use this tool and when to choose another. However, no explicit mention of alternatves among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_generateA
Generate text from a prompt using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Generation prompt (plain prose, no code) | |
| context | No | Optional system context (plain prose, no code) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions using a 'configured free LLM', which implies a model-based API with no side effects, but lacks details on latency, quotas, or idempotency. The constraint on input types is helpful but behavioral traits are minimally disclosed.
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 with two sentences. The first sentence states the core action and model, the second adds critical constraints. Every word is necessary; no 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?
Given no output schema, the description could have explained return format or usage considerations. It covers the purpose and input constraints adequately but leaves out behavioral details like whether the LLM is stateless or if there are rate limits. For a simple generation tool, it is minimally sufficient but incomplete.
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 both parameters documented. The description adds context by reinforcing the 'plain prose' constraint across both parameters, going beyond the schema descriptions. However, it does not elaborate on the 'context' parameter's role beyond being optional system context.
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 'Generate text from a prompt' with specific verb and resource. It distinguishes from sibling tools like ai_summarize and ai_rewrite by emphasizing general generation without specialized constraints.
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 explicitly bounds usage to 'plain prose only — no code, secrets, or file paths', providing clear constraints. While it doesn't directly compare to siblings, the sibling list implies this is for free-form generation when specific tasks (e.g., summarization) are not needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_outlineA
Create a hierarchical markdown outline from plain text using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to outline |
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 mentions the use of a 'configured free LLM', which implies variability but does not detail potential costs, latency, or error handling. It sets input constraints but does not disclose behavior on invalid inputs.
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 with no fluff. The first sentence states the core purpose and method; the second sentence adds critical constraints. Every word earns its place, and the key information is front-loaded.
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 tool with one parameter and no output schema, the description covers the purpose, input type, and constraints. It does not explicitly describe the output format (hierarchical markdown) but this is implied by the purpose. Slight gap in not mentioning that the outline is returned as markdown.
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?
The schema has one parameter 'text' with a minimal description. The tool description adds value by specifying acceptable input ('Plain prose only') and prohibiting certain content, which is not in the schema. Baseline is 3 due to 100% schema coverage, but the extra guidance merits a 4.
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 specific action ('Create a hierarchical markdown outline'), the input type ('plain text'), and the method ('using a configured free LLM'). It differentiates from siblings like ai_bullet or ai_summarize by specifying the output format and input constraints.
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 explicitly says when to use this tool (for hierarchical outlines from plain text) and provides input restrictions ('Plain prose only — no code, secrets, or file paths'). However, it does not directly compare to sibling tools, leaving some ambiguity about when to choose this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_proofreadA
Proofread plain text and list corrections using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to proofread |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that a free LLM is used, implying third-party dependency and potential rate limits. It clarifies that the tool only lists corrections (no modification). It could mention if the tool is stateful or idempotent, but overall is transparent.
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 with no wasted words. The purpose is front-loaded, and the usage constraint is immediately provided. Every sentence contributes value.
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 (1 param, no output schema, no annotations), the description covers essential aspects: input type, constraints, and expected output. It does not specify output format or max input length, but these are minor gaps for a proofreading tool.
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?
The sole parameter 'text' has schema description 'Plain text to proofread', which matches the tool description. Since schema coverage is 100%, baseline is 3. The description adds no additional semantic detail beyond what the schema provides.
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: 'Proofread plain text and list corrections' using a configured free LLM. This is a specific verb+resource combination, and it distinguishes itself from sibling tools like ai_rewrite or ai_summarize.
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 usage guidance: 'Plain prose only — no code, secrets, or file paths.' This tells the agent when not to use the tool, but it does not mention alternative tools for non-plain-text inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_qaA
Answer a question about a URL or plain text using a configured free LLM. Pass url OR text (not both). Plain text only — no code or secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to fetch | |
| text | No | Plain text to answer from | |
| question | Yes | Question to answer based on the content |
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 mentions using a 'configured free LLM' and input constraints, but doesn't disclose if the operation is read-only, error handling, or rate limits. Adequate but not comprehensive.
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 sentence states the purpose, and the second adds critical usage constraints. Every word is necessary; no filler. Front-loaded and efficient.
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 3 params, 1 required, no output schema, and distinct sibling tools, the description covers the core functionality and key constraint. Missing return format or error behavior, but still sufficient for a simple Q&A tool.
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 basic descriptions. The description adds the mutual exclusivity rule (url OR text) and the 'plain text only' restriction for the text parameter, which adds meaningful guidance beyond the schema.
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 answers a question about a URL or plain text. It uses specific verb+resource (answer a question) and distinguishes from siblings like ai_summarize or ai_translate, which are different 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 explicitly says to pass url OR text (not both) and restricts input to plain text with no code or secrets. While it doesn't compare with siblings, the constraints are clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_rewriteB
Rewrite plain text in a given style using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to rewrite | |
| style | Yes | Target style, e.g. 'formal', 'casual', 'concise', 'technical' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses it uses a 'free LLM', implying non-deterministic behavior. It only provides the 'plain prose only' constraint, but lacks details on performance, idempotency, or side effects.
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 with two sentences, each adding unique value. It front-loads the action and resource, and every word is purposeful.
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 tool with no output schema, the description covers the core functionality and input constraints. However, it misses any indication of output format or return value, which is a gap.
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 descriptive parameter names and examples for 'style'. The description adds the 'plain prose only' constraint, but does not significantly enhance understanding beyond the schema.
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 states the verb 'Rewrite' and the resource 'plain text', with a specific constraint 'plain prose only'. It clearly distinguishes from sibling tools like ai_summarize or ai_translate, but does not explicitly differentiate them.
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 input constraints ('no code, secrets, or file paths') but offers no guidance on when to use this tool versus alternatives like ai_bullet or ai_email_draft. There is no mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_summarizeA
Summarize a URL or plain text using a configured free LLM. Pass url OR text (not both). Plain text only — no code or secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to fetch and summarize | |
| text | No | Plain text to summarize |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions it uses a 'configured free LLM' and implies URL fetching, but does not detail limitations (e.g., content length, rate limits) or behavior on invalid inputs.
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, no unnecessary words. Every sentence adds value.
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 tool with no output schema or annotations, the description is mostly complete. It could mention what the summary returns (e.g., a string), but the behavior is implied.
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 description adds mutual exclusivity constraint ('url OR text, not both') and a content restriction ('plain text only'), which add value beyond the schema.
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: summarizing a URL or plain text using a configured free LLM. It specifies input options (url or text, not both) and distinguishes from siblings by focusing on summarization.
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 states to pass url OR text (not both) and restricts to plain text only (no code/secrets). Provides clear context but does not explicitly compare to sibling tools or discuss when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_translateA
Translate plain text to a target language using a configured free LLM. Plain prose only — no code, secrets, or file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Plain text to translate | |
| target_lang | Yes | Target language, e.g. 'French', 'Japanese' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions 'using a configured free LLM' but does not disclose side effects, rate limits, error behavior, or processing implications beyond the basic function.
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 concise sentences with no wasted words. It front-loads the main purpose and adds a clarifying constraint.
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 two-parameter tool with no output schema and no annotations, the description covers the core functionality and input constraints. However, it omits output format details and behavior on unsupported languages.
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 100%, so the baseline is 3. The description adds 'Plain prose only' as an input constraint but does not add significant detail beyond the schema for either parameter.
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 verb 'translate', the resource 'plain text', and the target 'target language'. It also distinguishes from sibling tools by specifying 'plain prose only' and 'using a configured free LLM'.
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 a constraint ('plain prose only — no code, secrets, or file paths') but does not explicitly compare to alternatives or give when-to-use vs when-not-to-use guidance relative to sibling tools.
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. Dates show when Glama detected each change.
12 tool updates
v0.2.0- First observed
ai_bullet - First observed
ai_classify - First observed
ai_compare - First observed
ai_email_draft - First observed
ai_extract - First observed
ai_generate - First observed
ai_outline - First observed
ai_proofread - First observed
ai_qa - First observed
ai_rewrite - First observed
ai_summarize - First observed
ai_translate
TDQS
Each tool has a clearly distinct purpose: bullet points, classification, comparison, email drafting, field extraction, free generation, outlining, proofreading, Q&A, rewriting, summarization, and translation. Overlap is minimal and descriptions effectively disambiguate.
All tools follow an ai_verb pattern (e.g., ai_bullet, ai_classify). The outlier is ai_email_draft, which uses a noun+verb combination, but the pattern is otherwise consistent.
With 12 tools, the set is well-scoped for a general-purpose LLM text processing server. It covers a broad range of common tasks without being overwhelming.
The tools cover most common text operations (generate, summarize, classify, translate, etc.). Minor gaps exist (e.g., sentiment analysis, grammar checking), but the core functionality is solid.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI routing, memory, guardrails, and governance. Routes across Claude, GPT, Gemini.
AI model routing on your own vendor keys: pick the best model per prompt, or route and run it.
Cost-optimized LLM model routing recommendations for autonomous AI agents
Check if a task runs locally vs cloud. Save money on calls that don't need cloud inference.
Related MCP Servers
- AlicenseAqualityDmaintenanceOptimizes token costs by intelligently delegating low-complexity tasks to local LLMs via LiteLLM, enabling cost-effective development workflows.31MIT
- FlicenseAqualityDmaintenanceRoutes narrow text-processing tools (classification, extraction, summarization, etc.) to budget models to reduce token consumption on the main model.7-
- AlicenseBqualityDmaintenanceRoute prompts intelligently across Claude, Gemini, and GPT-4o, automatically picking the best model for every task while minimizing token cost.519MIT
- FlicenseNot gradedqualityBmaintenanceRoutes code generation tasks between local models and Claude Cloud, optimizing cost by handling simple tasks locally and reserving cloud thinking for complex tasks.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/basttran/ai-workers-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server