WriteHero MCP
A free, no-signup MCP server that helps AI assistants format, check character limits, and preview LinkedIn posts. It converts Markdown to Unicode text, estimates the 'see more' cut-off, scores hooks, and flags AI-sounding phrases without logging into LinkedIn or storing user text.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://writehero.io/api/mcpWhat you can do with it
- Check character counts and estimate 'see more' cut-off for LinkedIn posts
- Convert Markdown formatting to Unicode text for clean pasting into LinkedIn
- Generate opening-line hooks and profile headlines based on user input
- Preview how a post will appear on mobile and desktop feeds
Source and maintenance
Protocol and capabilities
- Server
- writehero-linkedin 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 6 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
check_linkedin_post — Check a LinkedIn 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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"post"
],
"properties": {
"post": {
"type": "string",
"minLength": 1,
"description": "The full post text."
}
}
}{
"title": "Check a LinkedIn post",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}format_linkedin_post — Format a post for LinkedIn
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"post"
],
"properties": {
"post": {
"type": "string",
"minLength": 1,
"description": "Post text, Markdown allowed."
},
"replace_em_dashes": {
"type": "boolean",
"default": false,
"description": "Replace em dashes with commas."
}
}
}{
"title": "Format a post for LinkedIn",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}style_linkedin_text — Bold, italic or strikethrough text
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"minLength": 1,
"description": "The words to restyle."
},
"style": {
"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"
],
"type": "string",
"default": "bold-sans",
"description": "Style to apply."
}
}
}{
"title": "Bold, italic or strikethrough text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_linkedin_hooks — LinkedIn hook ideas
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"topic"
],
"properties": {
"topic": {
"type": "string",
"maxLength": 80,
"description": "What the post is about, e.g. hiring engineers."
},
"result": {
"type": "string",
"default": "",
"maxLength": 120,
"description": "A real result the user can back up, e.g. hired 4 engineers in 30 days."
},
"audience": {
"type": "string",
"default": "",
"maxLength": 80,
"description": "Who the post is for, e.g. founders."
}
}
}{
"title": "LinkedIn hook ideas",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_linkedin_headlines — LinkedIn headline options
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"role"
],
"properties": {
"goal": {
"enum": [
"clients",
"job",
"general"
],
"type": "string",
"default": "general",
"description": "clients: win clients; job: get hired; general: both."
},
"role": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Current or target job title."
},
"tone": {
"enum": [
"plain",
"bold",
"warm"
],
"type": "string",
"default": "plain",
"description": "warm phrases the value as \"Helping...\"; plain and bold as \"I help...\"."
},
"proof": {
"type": "string",
"default": "",
"maxLength": 180,
"description": "A credential or result they can verify."
},
"outcome": {
"type": "string",
"default": "",
"maxLength": 180,
"description": "The result they deliver, e.g. book more sales calls."
},
"audience": {
"type": "string",
"default": "",
"maxLength": 180,
"description": "Who the user helps."
},
"keywords": {
"type": "string",
"default": "",
"maxLength": 180,
"description": "Skills people search for."
}
}
}{
"title": "LinkedIn headline options",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}preview_linkedin_post — Preview a LinkedIn post
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"post"
],
"properties": {
"post": {
"type": "string",
"minLength": 1,
"description": "The post text."
},
"author_name": {
"type": "string",
"maxLength": 80,
"description": "Name shown on the preview."
},
"author_headline": {
"type": "string",
"maxLength": 220,
"description": "Headline shown under the name."
}
}
}{
"title": "Preview a LinkedIn post",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1341 ms
- 95th percentile latency
- 1341 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1341 ms · metadata changed · 6 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http writehero-mcp https://writehero.io/api/mcpCodex
codex mcp add writehero-mcp --url https://writehero.io/api/mcpCursor
{
"mcpServers": {
"writehero-mcp": {
"url": "https://writehero.io/api/mcp"
}
}
}Cline
{
"mcpServers": {
"writehero-mcp": {
"type": "streamableHttp",
"url": "https://writehero.io/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"writehero-mcp": {
"type": "http",
"url": "https://writehero.io/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http writehero-mcp https://writehero.io/api/mcpClaude Desktop
{
"mcpServers": {
"writehero-mcp": {
"url": "https://writehero.io/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"writehero-mcp": {
"serverUrl": "https://writehero.io/api/mcp"
}
}
}Let your agent find its tools
Find servers like WriteHero MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run WriteHero MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.