Typefully MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Typefully MCP ServerCreate a tweet about our new product launch next week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Typefully MCP Server
A Model Context Protocol (MCP) server for Typefully API integration, built with TypeScript and Node.js. This server allows AI assistants (like Claude) to create and manage Twitter drafts through Typefully.
Features
Create Drafts: Create single tweets or multi-tweet threads
Schedule Posts: Schedule tweets for specific times
Auto Features: Enable auto-retweet and auto-plug
Retrieve Drafts: Get scheduled and published drafts
Thread Support: Automatic thread creation using newline separators
Related MCP server: X (Twitter) MCP
Prerequisites
Node.js 18.x or higher
A Typefully account with API access
Typefully API key (get it from Settings > Integrations in Typefully)
Installation
Option 1: NPX (Recommended)
Run directly without installation:
npx typefully-mcp-serverOption 2: Global Installation
npm install -g typefully-mcp-server
typefully-mcp-serverOption 3: From Source
Clone the repository:
git clone https://github.com/yourusername/typefully-mcp-server.git
cd typefully-mcp-serverInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
Set your Typefully API key as an environment variable:
export TYPEFULLY_API_KEY="your_api_key_here"Or create a .env file:
TYPEFULLY_API_KEY=your_api_key_hereUsage
Running the Server
npm startOr for development:
npm run devClaude Desktop Integration
Add this server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Option 1: Using NPX (Recommended):
{
"mcpServers": {
"typefully": {
"command": "npx",
"args": ["-y", "typefully-mcp-server"],
"env": {
"TYPEFULLY_API_KEY": "your_api_key_here"
}
}
}
}Option 2: Using Absolute Node Path (For Local Development):
Note: If you get a "spawn node ENOENT" error, Claude Desktop can't find the node command. Use the absolute path to node instead:
First, find your node path: which node
{
"mcpServers": {
"typefully": {
"command": "/opt/homebrew/opt/nvm/versions/node/v22.16.0/bin/node",
"args": ["/path/to/your/project/dist/index.js"],
"env": {
"TYPEFULLY_API_KEY": "your_api_key_here"
}
}
}
}Available Tools
create_draft
Create a new draft on Typefully.
Parameters:
content(required): The tweet content or threadthreadify(optional): Auto-split content into tweetsschedule_date(optional): ISO date string for schedulingauto_retweet_enabled(optional): Enable auto-retweetauto_plug_enabled(optional): Enable auto-plug
Example:
Create a tweet: "Hello world! This is my first tweet via MCP."Thread Example:
Create a thread about AI:
"AI is transforming how we work and live.
\n\n\n\n
From automating routine tasks to enabling creative breakthroughs, AI tools are becoming essential.
\n\n\n\n
The key is learning to collaborate with AI rather than compete against it."Note: After installation via NPX, you can simply tell Claude: "Create a tweet saying 'Hello from Typefully MCP!'" and it will work automatically.
get_scheduled_drafts
Retrieve your recently scheduled drafts.
Example:
Show me my scheduled tweets.get_published_drafts
Retrieve your recently published drafts.
Example:
Show me my recent published tweets.Thread Creation
To create multi-tweet threads, separate individual tweets with four consecutive newlines (\n\n\n\n) in your content.
Development
Scripts
npm run build- Build the TypeScript projectnpm run dev- Run in development mode with auto-reloadnpm run lint- Run ESLintnpm run typecheck- Run TypeScript type checking
Project Structure
src/
├── index.ts # Entry point
├── server.ts # MCP server implementation
├── client.ts # Typefully API client
└── types.ts # Type definitionsAPI Reference
This server integrates with the Typefully API v1. For more information about the API, visit the official documentation.
Error Handling
The server includes comprehensive error handling for:
Invalid API keys
Network failures
Malformed requests
API rate limiting
Common Issues
"spawn node ENOENT" Error in Claude Desktop
This error occurs when Claude Desktop can't find the node command because GUI applications don't inherit the same PATH as your terminal.
Solution: Use the absolute path to node in your Claude Desktop configuration:
Find your node path:
which nodeUse the full path in your config instead of just "node"
Example:
{
"mcpServers": {
"typefully": {
"command": "/opt/homebrew/opt/nvm/versions/node/v22.16.0/bin/node",
"args": ["/path/to/dist/index.js"],
"env": {
"TYPEFULLY_API_KEY": "your_api_key_here"
}
}
}
}Contributing
Fork the repository
Create a feature branch
Make your changes
Run tests and linting
Submit a pull request
License
MIT License - see LICENSE file for details.
Acknowledgments
Inspired by the Python Typefully MCP Server
Built with the Model Context Protocol SDK
Available Tools
3 toolscreate_draftA
Create a new draft on Typefully. Supports single tweets and threads.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The content of the tweet or thread. Use 4 consecutive newlines (\n\n\n\n) to separate tweets in a thread. | |
| threadify | No | Automatically split content into tweets if it exceeds character limits. | |
| schedule_date | No | ISO date string for scheduling the tweet (e.g., "2024-12-25T10:00:00Z"). | |
| auto_retweet_enabled | No | Enable automatic retweet. | |
| auto_plug_enabled | No | Enable automatic plug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description clearly indicates it creates a draft (non-destructive), but could mention that it does not publish directly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with key action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity and no output schema, description is mostly adequate but lacks information on return value or post-creation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema fully describes all 5 parameters (100% coverage); description adds minimal value beyond mentioning thread support, which is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Create' and resource 'a new draft on Typefully', and specifies support for single tweets and threads, distinguishing it from sibling tools which get drafts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives; it implies creation of drafts but does not mention when not to use or contrast with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_published_draftsA
Get recently published drafts from Typefully.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'recently' without specifying time window, ordering, or pagination. Does not disclose if it's a read-only operation or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, very concise. Could be slightly expanded (e.g., mention no parameters needed) without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple parameterless tool, but lacks details on output structure or behavior. With siblings, operation is clear but incomplete for full agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Description adds no extra parameter info, but baseline for 0 params is 4. However, it could mention output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('recently published drafts from Typefully'), distinguishing it from siblings: create_draft (creation) and get_scheduled_drafts (scheduled, not published).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned, but the context implies use when needing published drafts. Lacks guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduled_draftsA
Get recently scheduled drafts from Typefully.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It does not specify that this is a read-only operation, what 'recently' means (e.g., time window), or any edge cases like empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the action and resource, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of parameters or output schema, the description is minimally sufficient. However, it omits details like the time range or sort order for 'recently', leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (zero params, baseline 4). The description adds the qualifier 'recently' which provides some semantic context beyond the empty schema, indicating a time-based filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'scheduled drafts' with the source 'Typefully'. It distinguishes from siblings like 'create_draft' (creation) and 'get_published_drafts' (published vs scheduled).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. No mention of when not to use it or any context-dependent conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct operation: creating drafts, retrieving published drafts, and retrieving scheduled drafts. There is no overlap in purpose.
All tool names follow a consistent 'verb_noun' pattern in snake_case: create_draft, get_published_drafts, get_scheduled_drafts.
With 3 tools, the server is minimal but covers core draft creation and retrieval. It is slightly under but reasonable for a focused MCP server.
Missing essential operations like update and delete drafts, which are typical for a content management server. Agents cannot modify or remove drafts once created.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Write, schedule, and publish social media posts on X, LinkedIn, Threads, and more via Typefully
Draft, schedule, and publish social posts for your workspace straight from your AI.
Draft, schedule and publish social posts to nine platforms from any AI agent.
Draft, schedule, publish, and analyze your LinkedIn posts from your AI assistant via Taplio.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables creating, managing, and publishing X/Twitter posts, threads, and replies directly through Claude chat. Supports draft management with the ability to create, list, publish, and delete tweet drafts.101MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with X (Twitter) to post tweets, threads, and replies while retrieving tweet metrics and account information. It supports core management tasks like deleting tweets and verifying authentication through the Twitter API.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with X (Twitter) API v2 for posting tweets, searching, liking, retweeting, and more through natural language.MIT
- AlicenseDqualityBmaintenanceEnables AI agents to manage Twitter replies by fetching relevant tweets, generating AI-powered reply drafts in various styles, and copying them to clipboard.7MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pascalporedda/typefully-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server