Skip to main content
Glama

WriteHero: LinkedIn post checker

Server Details

Check, format and preview LinkedIn posts: limits, see-more cut, hooks, AI-sounding phrases.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a distinct role: check (audit), format (Markdown conversion), preview (feed rendering link), generate_headlines, generate_hooks, and style (per-fragment Unicode styling). The only friction is between format_linkedin_post and style_linkedin_text, since both output Unicode-styled text for pasting, though the descriptions differentiate document-level conversion from short-fragment styling.

Naming Consistency5/5

All six tools follow a strict verb_linkedin_noun pattern (check_/format_/generate_/preview_/style_ + linkedin_ + resource). Verb choices are semantically meaningful and consistent throughout.

Tool Count5/5

Six tools is tightly scoped to a narrow, well-defined purpose (LinkedIn post QA and preparation). Every tool covers a distinct step in the drafting workflow, with no filler.

Completeness4/5

The surface covers auditing, formatting, previewing, and generating hooks/headlines, forming a coherent pre-publish lifecycle. Minor gaps exist: headline generation references a 220-character limit but no dedicated headline checker, and there is no comment or image/alt-text validation.

Available Tools

6 tools
check_linkedin_postCheck a LinkedIn postA
Read-onlyIdempotent
Inspect

Check a LinkedIn post before publishing: character count against LinkedIn's 3000-character limit, the text likely shown before "see more" on desktop, a hook score, Markdown that LinkedIn will not render, placeholders, and phrases that read as AI-written. Returns concrete issues to fix.

NameRequiredDescriptionDefault
postYesThe full post text.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds that the tool reports concrete issues to fix rather than editing or publishing, which is useful confirmation that nothing is mutated. It stops short of describing issue severity or ordering.

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?

A single dense sentence front-loads the use case, then the checklist, then the return value. No filler and no repetition of the title or annotations.

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?

No output schema exists, and the description compensates by stating the tool returns concrete issues to fix, which is enough for an agent to know it is diagnostic rather than transformative. The shape of the returned issues (list, score fields, severity) remains unspecified.

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?

There is one required parameter and schema coverage is 100%, with the schema stating "The full post text." The description implies the post text is what gets measured against the 3000-character limit, but adds no format guidance beyond the schema. Baseline 3 applies when the schema does the documenting.

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?

Specific verb (check) plus resource (a LinkedIn post) plus an enumerated list of what is inspected: character count, see-more cutoff, hook score, unrendered Markdown, placeholders, AI-sounding phrases. The pre-publish framing cleanly separates it from siblings that generate or format content.

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?

"Check a LinkedIn post before publishing" gives a clear triggering moment in the workflow. It does not name alternatives such as preview_linkedin_post, so the agent must infer the boundary between validating and previewing rather than being told.

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

format_linkedin_postFormat a post for LinkedInA
Read-onlyIdempotent
Inspect

Convert Markdown into text that pastes cleanly into LinkedIn: bold and headings become Unicode bold, italic becomes Unicode italic, list markers become bullets, Markdown links become plain URLs. Optionally replaces em dashes.

NameRequiredDescriptionDefault
postYesPost text, Markdown allowed.
replace_em_dashesNoReplace em dashes with commas.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds meaningful value beyond that by specifying each transformation (Unicode bold/italic, bullet conversion, link flattening, optional em-dash replacement), telling the agent exactly what output to expect.

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?

A single dense sentence, front-loaded with the core conversion and followed by the enumerated transformations. No wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema transformation tool with full annotation coverage, the description tells the agent everything needed: input format, output characteristics, and the optional behavior.

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 both parameters are already documented, and the description only restates that em dashes are optionally replaced. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Convert) and resource (Markdown → LinkedIn-ready text) with a concrete list of transformations. It doesn't explicitly differentiate itself from the close sibling style_linkedin_text, leaving the agent to infer which handles formatting vs styling.

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 implied by 'pastes cleanly into LinkedIn,' suggesting it's the step before posting, but there is no explicit when-to-use/when-not guidance and no mention of alternatives like style_linkedin_text or preview_linkedin_post.

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

generate_linkedin_headlinesLinkedIn headline optionsA
Read-onlyIdempotent
Inspect

Profile headline options built only from the user's role, audience, outcome, proof and keywords. Every option fits LinkedIn's 220-character headline limit. Does not change the profile.

NameRequiredDescriptionDefault
goalNoclients: win clients; job: get hired; general: both.general
roleYesCurrent or target job title.
toneNowarm phrases the value as "Helping..."; plain and bold as "I help...".plain
proofNoA credential or result they can verify.
outcomeNoThe result they deliver, e.g. book more sales calls.
audienceNoWho the user helps.
keywordsNoSkills people search for.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, idempotent, closed-world), and the description adds real constraint context: outputs are capped at LinkedIn's 220-character limit and derived only from the supplied fields. It stops short of saying how many options are produced or in what format.

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?

Three short sentences with the resource and input constraints front-loaded and no filler. 'Does not change the profile' is slightly redundant with readOnlyHint=true, but it is cheap and reinforces the read-only nature.

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?

With no output schema, the description should characterize the return value; it only guarantees the 220-character limit and is silent on option count, formatting, or variation strategy. For a multi-parameter generator tool, the behavioral picture is adequate but leaves a real gap.

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 description coverage is 100%, so the schema already documents all seven parameters including the goal and tone enums, making 3 the baseline. The description names five of the seven inputs but adds no semantics beyond what the schema states, and omits goal and tone entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (profile headline options) and the exact inputs they are built from, which separates it from generate_linkedin_hooks and format_linkedin_post. The verb is only implied by the tool name rather than the description text, so it falls short of a perfect score.

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 implied by the resource named (produce headline options from profile inputs) but there is no explicit when-to-use or when-to-prefer-a-sibling guidance. 'Does not change the profile' is a side-effect disclaimer, not a routing rule.

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

generate_linkedin_hooksLinkedIn hook ideasA
Read-onlyIdempotent
Inspect

Opening-line templates for a LinkedIn post, filled with the user's topic, audience and result. Anything the user has not supplied stays in [brackets] to replace with a real detail; nothing is invented.

NameRequiredDescriptionDefault
topicYesWhat the post is about, e.g. hiring engineers.
resultNoA real result the user can back up, e.g. hired 4 engineers in 30 days.
audienceNoWho the post is for, e.g. founders.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description is free to add the genuinely useful trait: missing inputs are left as [brackets] and nothing is invented. That is real behavioral context an agent could not get from structured fields, though it says nothing about how many hooks come back.

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 short sentences, zero waste. The output shape is front-loaded and the placeholder rule follows immediately as the operative constraint.

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?

No output schema exists, and the description does cover the return shape at a high level ('opening-line templates') plus the placeholder convention. It stops short of saying how many hooks are produced or their format/length, which is the one thing an agent would still want to know.

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%, so baseline is 3. The description goes slightly beyond the schema by explaining the consequence of leaving optional fields empty — the output keeps bracketed placeholders — which tells the agent that audience and result may be omitted deliberately rather than being required for a good result.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: it produces opening-line templates (hooks) for a LinkedIn post, parameterized by topic, audience and result. This implicitly separates it from generate_linkedin_headlines, but it never names that sibling explicitly, so differentiation is left to inference.

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 agent can infer this belongs at the start of drafting a LinkedIn post. There is no statement of when to prefer it over generate_linkedin_headlines or format_linkedin_post, and no prerequisites or exclusions are given.

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

preview_linkedin_postPreview a LinkedIn postA
Read-onlyIdempotent
Inspect

Return a link to an approximate preview of the post in the LinkedIn feed on mobile and desktop, including about where "see more" cuts it. Pass author_name and author_headline when you know them. Opening the link saves and publishes nothing. The post text travels in the link, so share it only with people who should read the draft.

NameRequiredDescriptionDefault
postYesThe post text.
author_nameNoName shown on the preview.
author_headlineNoHeadline shown under the name.

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, yet the description adds real context beyond them: the preview is approximate, the link embeds the post text so it is shareable/leaky, and opening the link publishes nothing. That privacy and fidelity nuance is exactly the kind of thing an agent can't get from structured fields.

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?

Four short sentences, front-loaded with the deliverable, then escalation-relevant details (author fields, no side effects, shareability). Each sentence carries a distinct point, though the sharing caveat and the no-op caveat could be tightened into one.

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 properly explains what comes back (a link) and what it shows. The remaining minor gap is that it doesn't say whether the link is short-lived or what happens if the post text is too long for a URL.

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 in the schema. The description only restates that author_name and author_headline are optional 'when you know them', adding little beyond the schema's own descriptions and max lengths.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and deliverable (return a link) for a specific resource (preview of a LinkedIn post in mobile/desktop feed, including the 'see more' cutoff). It doesn't explicitly distinguish itself from siblings like check_linkedin_post or format_linkedin_post, so a reader must infer the difference from the word 'preview'.

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 by the framing 'approximate preview' and the advice to pass author fields when known. It never says when to use this instead of check_linkedin_post or format_linkedin_post, and gives no preconditions or exclusions.

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

style_linkedin_textBold, italic or strikethrough textA
Read-onlyIdempotent
Inspect

Restyle a short piece of text with Unicode letters that keep their look when pasted into LinkedIn (bold, italic, bold italic, serif, cursive, strikethrough, underline). Use sparingly; screen readers may read styled letters poorly.

NameRequiredDescriptionDefault
textYesThe words to restyle.
styleNoStyle to apply.bold-sans

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: output survives paste into LinkedIn, and styled letters can be read poorly by screen readers – an important accessibility caveat an agent would otherwise miss. It does not state the return shape, but no output schema exists so a small gap remains.

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 tightly written sentences with zero waste: purpose and output behavior first, the caution second. Nothing is repeated from the schema or annotations.

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 two-parameter, read-only text transform with full schema coverage and annotations, the description covers what the tool produces and the main risk. Minor omissions are that it does not say it returns a plain string or warn about length limits, but nothing an agent needs in order to call it correctly is missing.

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 enum documents all 14 styles plus a default, so the schema does the heavy lifting. The description's list (bold, italic, bold italic, serif, cursive, strikethrough, underline) only loosely maps to the exact enum values and adds no format-level detail beyond 'short piece of text'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Restyle') and resource ('a short piece of text') and explains the effect: Unicode letters that keep their look when pasted into LinkedIn. It names the style families, so its difference from sibling post-level tools is implicit, but it never explicitly contrasts itself with format_linkedin_post or preview_linkedin_post.

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?

'Use sparingly' is real usage guidance, and the LinkedIn-paste context implies when the tool applies. But there is no explicit when-not clause, no mention of the alternative of plain text, and no routing to siblings such as format_linkedin_post for post-level formatting.

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. 6 tool updates
    • First observedcheck_linkedin_post
    • First observedformat_linkedin_post
    • First observedgenerate_linkedin_headlines
    • First observedgenerate_linkedin_hooks
    • First observedpreview_linkedin_post
    • First observedstyle_linkedin_text

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    LinkedIn-native AI content creation, scheduling & analytics. Write and post on LinkedIn, create drafts, generate hooks & hashtags, schedule posts, and track engagement — all through natural language.
    25 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Draft, fact-gate and review LinkedIn posts from your AI assistant, then post only the drafts you Allowed through the official LinkedIn API with your own developer app. Free and open source (MIT), no telemetry, not affiliated with LinkedIn.
    186 PyPI
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Checks a social post against a platform's real character limit before it ships — X bills every URL at 23 characters and weights non-Latin script at 2, while Bluesky and Mastodon count grapheme clusters. Covers X, X Premium, Bluesky, LinkedIn, Threads, Mastodon, and Discord, with no credentials and no network access.
    3
    602 npm
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources