WriteHero: LinkedIn post checker
Check, format and preview LinkedIn posts: limits, see-more cut, hooks, AI-sounding phrases.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (4)
- HIGH
- MEDIUMen check_linkedin_post
- LOWen generate_linkedin_headlines
- INFOen check_linkedin_post
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"linkedin": {
"url": "https://writehero.io/api/mcp"
}
}
}Puntos de conexión remotos
https://writehero.io/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (6)
🟢check_linkedin_post(post)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"post": {
"type": "string",
"minLength": 1,
"description": "The full post text."
}
},
"required": [
"post"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢format_linkedin_post(post, replace_em_dashes)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"post": {
"type": "string",
"minLength": 1,
"description": "Post text, Markdown allowed."
},
"replace_em_dashes": {
"default": false,
"description": "Replace em dashes with commas.",
"type": "boolean"
}
},
"required": [
"post"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢style_linkedin_text(text, style)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"description": "The words to restyle."
},
"style": {
"default": "bold-sans",
"description": "Style to apply.",
"type": "string",
"enum": [
"bold-sans",
"bold-serif",
"bold-italic-sans",
"bold-italic-serif",
"bold-script",
"bold-fraktur",
"italic-sans",
"italic-serif",
"script",
"strikethrough",
"short-strike",
"slash",
"underline",
"double-underline"
]
}
},
"required": [
"text"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢generate_linkedin_hooks(topic, audience, result)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"maxLength": 80,
"description": "What the post is about, e.g. hiring engineers."
},
"audience": {
"default": "",
"description": "Who the post is for, e.g. founders.",
"type": "string",
"maxLength": 80
},
"result": {
"default": "",
"description": "A real result the user can back up, e.g. hired 4 engineers in 30 days.",
"type": "string",
"maxLength": 120
}
},
"required": [
"topic"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢generate_linkedin_headlines(role, audience, outcome, proof, keywords, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"role": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Current or target job title."
},
"audience": {
"default": "",
"description": "Who the user helps.",
"type": "string",
"maxLength": 180
},
"outcome": {
"default": "",
"description": "The result they deliver, e.g. book more sales calls.",
"type": "string",
"maxLength": 180
},
"proof": {
"default": "",
"description": "A credential or result they can verify.",
"type": "string",
"maxLength": 180
},
"keywords": {
"default": "",
"description": "Skills people search for.",
"type": "string",
"maxLength": 180
},
"goal": {
"default": "general",
"description": "clients: win clients; job: get hired; general: both.",
"type": "string",
"enum": [
"clients",
"job",
"general"
]
},
"tone": {
"default": "plain",
"description": "warm phrases the value as \"Helping...\"; plain and bold as \"I help...\".",
"type": "string",
"enum": [
"plain",
"bold",
"warm"
]
}
},
"required": [
"role"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢preview_linkedin_post(post, author_name, author_headline)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"post": {
"type": "string",
"minLength": 1,
"description": "The post text."
},
"author_name": {
"description": "Name shown on the preview.",
"type": "string",
"maxLength": 80
},
"author_headline": {
"description": "Headline shown under the name.",
"type": "string",
"maxLength": 220
}
},
"required": [
"post"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia