Skip to main content
Glama

Lint Post for Banned Patterns

lint_post
Read-onlyIdempotent

Checks draft text against FeedSquad's banned-pattern registry and the AI Tells Index in one pass. Returns a pass/warn/block verdict and a list of hits. Each hit carries the matched evidence, a rationale and, when the tell has an AI Tells Index page, its ai_tell_id and url; the ai_tell_id opens the hit's full Index record. A registry hit's id is the lint pattern id, and a null ai_tell_id means the tell has no Index entry. Index hits are marked advisory and do not change the verdict until their entry is promoted. Drafts of 300 words or more also get em-dash density and sentence-length variation. The response is concise by default, and response_format 'detailed' adds the review rubrics for checks no regex can make. A draft with a block hit from the registry cannot be scheduled.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "text": "<text>"
    },
    "name": "lint_post"
  }
}

Input Schema

NameRequiredDescriptionDefault
textYesThe draft post text to lint
platformNoTarget platform — some patterns are platform-specific (default: linkedin)
response_formatNoconcise (default) returns a count of the review rubrics; detailed returns the rubrics.

Output Schema

NameRequiredDescriptionDefault
hitsYes
kindYes
catalogYes
metricsNo
verdictYes
next_stepNo
ai_tell_lookupNo
review_promptsNo
response_formatNo
registry_versionYes
metrics_omitted_reasonNo
review_prompts_availableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), yet the description adds substantial behavioral context: verdict semantics, the advisory status of Index hits, that a registry block prevents scheduling, and that em-dash density and sentence-length variation only apply at 300+ words. That threshold behavior is exactly the kind of detail structured fields cannot carry.

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

Conciseness4/5

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

The first sentence front-loads what the tool does and what it returns, with details following in logical order. Some sentences are dense and pack multiple clauses (the ai_tell_id/url explanation), but no sentence is 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 an output schema present, the description needn't explain return values yet does so helpfully, and it covers the verdict rules and the word-count threshold that affect correct interpretation. The remaining gap is procedural — no guidance on where linting fits relative to create_post or publish_post.

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 all three parameters are already documented. The description mostly restates the response_format behavior from the schema and adds little on platform-specific patterns beyond what the schema field description says, so the baseline of 3 applies. The ai_tell_id/null guidance enriches output interpretation rather than input semantics.

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 and resource — checks draft text against the banned-pattern registry and the AI Tells Index in one pass — and names the concrete verdict it produces (pass/warn/block). This is clearly distinguishable from siblings like get_ai_tell or list_ai_tells, which fetch tell records rather than auditing a draft.

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?

Usage is only implied: the note that 'a draft with a block hit from the registry cannot be scheduled' hints at a pre-scheduling check, but the description never says when to call this versus get_ai_tell or how it fits into the create_post flow. There are no explicit exclusions or named alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources