io.github.alexlarcheveque/writio
LinkedIn-native AI content creation, scheduling & analytics via MCP.
Open source Open in the app JSON README (API)
About
LinkedIn-native AI content creation, scheduling & analytics via MCP.
Details
- Kind
- MCP servers
- Topic
- Social & content
- Publisher
- alexlarcheveque
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.3
- Last push
- 2026-03-06T20:25:00Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 03:02:24
- Updated
- 2026-08-29 03:02:24
- Origin id
io.github.alexlarcheveque/writio
README
# Writio MCP Server
AI-native LinkedIn content creation, scheduling, and analytics — powered by [Model Context Protocol](https://modelcontextprotocol.io/).
Connect Writio to Claude Desktop, Cursor, Windsurf, or any MCP-compatible AI client to manage your entire LinkedIn workflow through natural language.
## What You Can Do
- **Draft posts** — "Write a LinkedIn post about remote work trends"
- **Generate hooks** — "Give me 5 hooks for a post about AI in marketing"
- **Generate hashtags** — "What hashtags should I use for my startup funding post?"
- **Build carousels** — "Create a carousel about 5 leadership lessons" *(Pro)*
- **Enhance posts** — "Make this post more conversational and add a CTA"
- **Get AI feedback** — "Analyze my draft and tell me how to improve it"
- **Schedule posts** — "Schedule my latest draft for the next available slot"
- **Publish instantly** — "Post this to LinkedIn right now"
- **Check analytics** — "How did my posts perform this week?"
- **Manage company pages** — "List my organizations" / "Post this as my company page"
- **Get inspirations** — "Show me trending content ideas for my niche"
## Quick Start
### 1. Create a Writio account
Sign up for free at **[writio.ai](https://writio.ai)** and connect your LinkedIn account.
### 2. Get your API token
Go to **[Writio](https://app.writio.ai) → Settings → API Access** to generate a token.
### 3. Configure in Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"writio": {
"command": "npx",
"args": ["-y", "@writio/mcp-server"],
"env": {
"WRITIO_API_TOKEN": "your-token-here"
}
}
}
}
```
### 4. Configure in Cursor
Add to your `.cursor/mcp.json`:
```json
{
"mcpServers": {
"writio": {
"command": "npx",
"args": ["-y", "@writio/mcp-server"],
"env": {
"WRITIO_API_TOKEN": "your-token-here"
}
}
}
}
```
### 5. Configure in Windsurf / Other Clients
Any MCP-compatible client can connect using:
```json
{
"command": "npx",
"args": ["-y", "@writio/mcp-server"],
"env": {
"WRITIO_API_TOKEN": "your-token-here"
}
}
```
## Available Tools (23)
### Content Creation
| Tool | Description |
|------|-------------|
| `create_draft` | Create a new LinkedIn post draft (supports personal & company pages) |
| `generate_hooks` | Generate 5 attention-grabbing hooks for a topic |
| `generate_hashtags` | Generate 20-30 relevant hashtags optimized for reach |
| `generate_carousel` | Generate a complete carousel structure (Pro) |
| `enhance_post` | Remix/rewrite a post with tone, style, and formatting improvements |
| `get_post_feedback` | Get AI feedback on hook quality, clarity, hashtags, and more |
### Post Management
| Tool | Description |
|------|-------------|
| `list_posts` | List posts filtered by status (draft/scheduled/published) |
| `get_post` | Get full details of a specific post |
### Scheduling & Queue
| Tool | Description |
|------|-------------|
| `schedule_post` | Schedule a post for the next available time slot |
| `post_now` | Immediately publish a post to LinkedIn |
| `list_queue` | List upcoming scheduled posts in the queue |
| `get_next_slot` | Get the next available posting time |
| `get_schedule` | View your weekly posting schedule |
| `retry_failed_post` | Retry a failed scheduled post |
### Analytics
| Tool | Description |
|------|-------------|
| `get_dashboard` | Overview of posts, usage, and LinkedIn connection status |
| `get_analytics` | Detailed engagement metrics (impressions, likes, comments, reshares) and best posting times |
| `get_followers` | Current LinkedIn follower count |
| `get_usage` | Account tier and usage limits |
### Company Page Posting
| Tool | Description |
|------|-------------|
| `list_organizations` | List LinkedIn company pages you can post as |
| `get_org_analytics` | Get analytics for a company page (share stats, follower counts, top posts) |
### Inspirations
| Tool | Description |
|------|-------------|
| `get_inspirations` | Curated news-based LinkedIn post ideas tailored to your topics |
| `use_inspiration_as_draft` | Convert an inspiration into a draft post |
## Example Workflows
**Morning content routine:**
> "Check my analytics, generate 3 hooks about AI productivity, pick the best one, write a full post, and schedule it for next available slot"
**Company page management:**
> "List my organizations, then create a product announcement draft and schedule it as my company page"
**Content repurposing:**
> "Get my top performing post from this week, remix it with a different angle, and save as draft"
## Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `WRITIO_API_TOKEN` | Yes | — | API token from Writio Settings |
| `WRITIO_API_URL` | No | `https://app.writio.ai` | Base URL for the Writio API |
## Requirements
- Node.js 18+
- A [Writio](https://app.writio.ai) account (free tier available)
- LinkedIn account connected in Writio
## Architecture
```
@writio/mcp-server
├── src/
│ ├── index.ts # MCP server — tool definitions and handlers
│ └── api-client.ts # Typed Writio REST API client
├── package.json
├── tsconfig.json
└── README.md
```
The server uses stdio transport (standard for MCP) and authenticates against Writio's REST API using a Bearer token. All tools map directly to existing Writio API endpoints.
## Links
- **Website:** [writio.ai](https://writio.ai)
- **App:** [app.writio.ai](https://app.writio.ai)
- **Support:** [app.writio.ai/settings/feedback](https://app.writio.ai/settings/feedback)
## License
MIT