Skip to main content
Glama

Server Details

Exact text tools for AI agents: unified diff, patch apply, regex testing, grapheme counting.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a unique and clearly distinct purpose: patching, JSON canonicalization, diffing, regex testing, and text statistics. No overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: apply_patch, canonical_json, diff, regex_test, text_stats. 'diff' is a bit of an outlier but still fits the pattern as a verb.

Tool Count5/5

With 5 tools, the server is well-scoped for its domain of text operations. It covers common needs without being overly minimal or bloated.

Completeness4/5

The set covers patching, diffing, regex, JSON validation, and text stats—addressing frequent LLM text issues. Minor gaps like string search/replace exist, but the tools are purpose-built for reliability.

Available Tools

5 tools
apply_patchAInspect

Apply a unified diff to a text, with context verification and small-offset fuzzing. Reports per-hunk success so failures are explicit rather than silent.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to patch.
patchYesUnified diff (with @@ hunk headers).
Behavior4/5

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

With no annotations, the description discloses key behaviors: context verification, small-offset fuzzing, and reporting per-hunk success. This adds value beyond the schema, though it lacks details on auth or failure modes.

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, no wasted words. The main action is front-loaded, and every sentence adds meaningful detail.

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 description covers purpose and some behavior, but lacks information about the return value or output format. Given no output schema, this is a gap for a tool that produces per-hunk success reports.

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 parameters are well-described in the schema. The description adds context about the patch format ('unified diff') but does not significantly enhance parameter understanding beyond the schema.

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: 'Apply a unified diff to a text'. It distinguishes from siblings like 'diff' (which generates diffs) and 'regex_test' (regex operations), making its unique function clear.

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 implies usage for patching with context verification and fuzzing, but does not explicitly state when not to use or mention alternatives. However, the context among siblings suggests appropriate usage.

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

canonical_jsonAInspect

Validate JSON and return it canonicalized (recursively sorted object keys) in compact and pretty forms. Useful for stable comparison and exact validation with error details.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesJSON text to validate and canonicalize.
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions error details but does not specify what happens on invalid JSON (e.g., throws exception vs. returns error object). The description is accurate but lacks explicit behavioral specifics beyond the core functionality.

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 a single sentence that efficiently states the main action and use case. No wasted words and front-loaded with the key verb 'Validate'.

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 one parameter and no output schema, the description explains the functionality and use case. However, it does not specify the return format (e.g., an object with compact and pretty fields) or error behavior, leaving some gaps in 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% and the description restates the parameter purpose ('JSON text to validate and canonicalize'). It adds no extra meaning beyond the schema, so a baseline score 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 validates JSON and canonicalizes it by sorting keys, and mentions output formats (compact, pretty). The purpose is distinct from sibling tools (patch, diff, regex, text stats).

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 explains usefulness for stable comparison and exact validation, providing context for when to use. It does not explicitly mention when not to use or list alternatives, but the use case is clear.

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

diffAInspect

Compute an exact line-based unified diff between two texts. Use instead of writing diffs yourself — LLM-authored diffs have wrong line numbers and miscounted hunks.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoContext lines per hunk (default 3).
new_textYesModified text.
old_textYesOriginal text.
Behavior3/5

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

With no annotations, the description carries the full burden. It accurately describes the tool as computing an exact diff but does not disclose output format, edge cases (e.g., empty texts), or performance considerations. 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.

Conciseness5/5

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

Two sentences with no redundancy: first states purpose, second provides usage advice. Every word adds value.

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?

Missing output schema and description of return value (likely a diff string). No mention of error handling or large text limits. Adequate for simple usage but incomplete without output details.

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 clear descriptions for all parameters (old_text, new_text, context). The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 verb 'compute', the resource 'two texts', and the specific type of diff 'exact line-based unified diff'. It distinguishes from alternative approaches by warning against LLM-authored diffs, which sets clear expectations.

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?

Explicitly advises 'Use instead of writing diffs yourself' and warns about LLM-generated diffs having wrong line numbers and miscounted hunks. This provides strong guidance on when to use the tool and when not to rely on alternatives.

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

regex_testAInspect

Execute a JavaScript regular expression against a text and return real matches with indices and capture groups. Use instead of predicting regex behavior — LLM regex predictions are unreliable.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to search.
flagsNoRegex flags, e.g. "gi". Include "g" to find all matches.
patternYesRegex pattern WITHOUT surrounding slashes.
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the return of real matches with indices and capture groups, but does not mention side effects, error handling (e.g., invalid patterns), or performance characteristics. Adequate but could be richer.

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, each carrying essential information. No filler or redundancy. Front-loaded with the main action and output.

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 regex tool with no output schema, the description covers purpose, usage guidance, and parameter clarifications. It doesn't detail the exact format of matches or error cases, but these are minor gaps given the tool's simplicity.

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 coverage is 100% (all parameters described). The description adds value by reminding that 'pattern' should be without slashes and that flags should include 'g' for all matches. This goes 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 uses a specific verb ('Execute'), names the resource ('regular expression against a text'), and clearly states the output ('real matches with indices and capture groups'). It distinguishes itself from sibling tools (apply_patch, canonical_json, diff, text_stats) by being the only regex execution tool.

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 explicitly recommends use over predicting regex behavior, citing LLM unreliability. This provides clear context for when to use. It does not explicitly list when not to use, but the recommendation is strong enough.

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

text_statsAInspect

Count text length EXACTLY: graphemes (user-perceived characters, correct for emoji/CJK/combining marks), words, lines, Unicode code points, UTF-16 units, UTF-8 bytes. Use whenever "how many characters" matters.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to measure.
word_localeNoBCP-47 locale for word segmentation (affects e.g. Japanese/Thai). Default "en".
Behavior4/5

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

With no annotations, the description fully discloses the tool's behavior: it counts exact graphemes, words, lines, code points, UTF-16 units, UTF-8 bytes, and notes locale effects on word segmentation. No destructive or unexpected behavior is indicated.

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 a single concise sentence that lists all capabilities upfront, with no redundant words 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?

While the description covers what the tool does, it does not explain the return format (e.g., object with keys for each count). Without an output schema, this missing information could hinder an agent's understanding of the response.

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 coverage is 100%, but the description adds value by explaining the meaning of graphemes (user-perceived characters) and the effect of the word_locale parameter on segmentation for languages like Japanese and Thai.

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 counts text length in multiple specific units (graphemes, words, lines, etc.), and it is distinct from sibling tools like apply_patch or regex_test.

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 a clear usage context: 'Use whenever "how many characters" matters.' It does not explicitly list when not to use or alternatives, but the context is sufficient for selection.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources