Skip to main content
Glama
gws8820

Text Counter MCP Server

by gws8820

Text Counter MCP Server

An MCP (Model Context Protocol) server that calculates basic text metrics for input text.

Features

  • get_text_count(text: str): Returns basic metrics for the provided text

    • characters: total character count

    • characters_without_space: character count excluding whitespace

    • words: word count

Example:

{
  "characters": 12,
  "characters_without_space": 11,
  "words": 2
}

Related MCP server: MCP Character Counter

Requirements

  • Python 3.10+

  • uv installed

All Python dependencies are defined in pyproject.toml and will be resolved by uv.

Run locally

From this directory:

uv run python main.py

Or from anywhere using an explicit directory:

uv run --directory /home/gws8820/devochat/mcp-proxy/servers/text-counter python main.py

Use with an MCP client

Add the following in your MCP client configuration (example servers.json):

{
  "mcpServers": {
    "text-counter": {
      "command": "uvx",
      "args": ["text-counter"]
    }
  }
}

Once connected, call the tool get_text_count with a text string argument.

License

Distributed under the MIT License.

Available Tools

1 tool
get_text_countGet Text CountA

Calculate basic text metrics for the input text.

  • characters: total character count

  • characters_without_space: character count excluding whitespace

  • words: word count

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It implicitly conveys a pure, side-effect-free computation via 'Calculate' and helpfully documents the returned fields, but never states that it is read-only, deterministic, or has no external effects. A useful but not complete behavioral picture.

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?

One sentence plus a clean three-item list, with the overall purpose front-loaded ahead of the detail. Every line earns its place and there is no filler.

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?

With no output schema, the description correctly enumerates the returned fields, so an agent knows what it gets back. It is nearly complete for a trivial deterministic tool; only the lack of any usage/permission context keeps it from a 5.

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 0% and the single 'text' parameter has no schema-level description. The phrase 'for the input text' signals what is measured but adds no constraints, format expectations, or size limits. Partial compensation for the coverage gap, not full.

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?

States a specific verb ('Calculate') and resource ('text metrics for the input text'), then enumerates the exact three metrics produced. There are no siblings to distinguish from, and the enumeration removes any ambiguity about scope.

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

Usage Guidelines3/5

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

No when-to-use guidance, exclusions, or alternatives are given. Usage is trivially implied by the name and the listing of metrics, but nothing is stated explicitly. With no siblings, there is little to route against, so this lands at minimum-viable.

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

Tool Schema Changelog

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

  1. 1 tool updatev0.2.0
    • First observedget_text_count

TDQS

A3.7/5.0

Scored across 1 tool

Disambiguation4/5

The single tool has a clear, focused purpose: computing basic text metrics. There are no other tools to confuse it with, so disambiguation is inherently high, though the tool name 'get_text_count' is slightly misleading as it returns multiple metrics beyond just a count.

Naming Consistency5/5

With only one tool, there is no opportunity for naming inconsistency. The name 'get_text_count' follows a clear verb_noun pattern (get_text_count), which is predictable and descriptive.

Tool Count3/5

The server offers only a single tool, which is very thin for a text analysis domain. While it covers basic metrics, it feels under-scoped; typical text analysis servers include multiple tools for different purposes, making this borderline too few.

Completeness2/5

The tool covers only basic counts (characters, words) but omits common text metrics like sentences, paragraphs, reading time, and frequency analysis. The surface is severely incomplete for a text analysis server, with no CRUD or lifecycle operations available.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers