๐ Simplified MCP Server
A Model Context Protocol (MCP) server that seamlessly integrates Claude, Cursor, Kiro (and other MCP - supported platforms) with Simplified's API. It enables LLMs to interact with Simplified's services via standardized MCP tools for social media account management and post creation across multiple platforms.
๐ Quick Start
The Simplified MCP Server offers integration between various MCP - supported platforms and Simplified's API. Follow the installation and configuration steps below to get started.
โจ Features
- Full MCP Protocol Support: Built using the official @modelcontextprotocol/sdk.
- Social Media Management: Comprehensive management of social media accounts and posts.
- Multi - Platform Support: Supports Facebook, Instagram, Twitter, LinkedIn, TikTok, YouTube, Pinterest, Threads, Google Business Profile, and Bluesky.
- Type - Safe Implementation: Written in TypeScript with full type safety.
- Robust Error Handling: Comprehensive error handling with detailed error messages.
- Configurable Logging: Adjustable logging levels for debugging and monitoring.
- Platform - Specific Features: Advanced settings for Google Business Profile, TikTok, YouTube, Instagram, etc.
- Scheduling Support: Create scheduled posts with platform - specific settings.
- Authentication Management: Secure API token handling with automatic retry logic.
๐ฆ Installation
Prerequisites
Install from NPM
npm install -g simplified-mcp-server
Install from Source
git clone https://github.com/celeryhq/simplified-mcp-server.git
cd simplified-mcp-server
npm install
npm run build
pack DXT file
npm install -g @anthropic-ai/dxt
npx @anthropic-ai/dxt pack
๐ Documentation
Configuration
The server is configured using environment variables. Create a .env file in your project root or set these variables in your environment:
Required Configuration
| Property |
Details |
Example |
SIMPLIFIED_API_TOKEN |
Your Simplified API token |
sk_live_abc123... |
Optional Configuration
| Property |
Details |
Default |
Options |
SIMPLIFIED_API_BASE_URL |
Simplified API base URL |
https://api.simplified.com |
Any valid URL |
LOG_LEVEL |
Logging verbosity level |
info |
debug, info, warn, error |
REQUEST_TIMEOUT |
API request timeout (ms) |
30000 |
Any positive number |
RETRY_ATTEMPTS |
Number of retry attempts |
3 |
Any non - negative number |
RETRY_DELAY |
Delay between retries (ms) |
1000 |
Any positive number |
Example Configuration
SIMPLIFIED_API_TOKEN=sk_live_your_token_here
SIMPLIFIED_API_BASE_URL=https://api.simplified.com
LOG_LEVEL=info
REQUEST_TIMEOUT=30000
RETRY_ATTEMPTS=3
RETRY_DELAY=1000
Usage
Programmatic Usage
import { SimplifiedMCPServer } from 'simplified-mcp-server';
import { ConfigurationManager } from 'simplified-mcp-server/config';
async function startServer() {
const config = ConfigurationManager.loadConfig();
const server = new SimplifiedMCPServer(config);
await server.start();
}
startServer().catch(console.error);
Integration with Claude
Add the server to your Claude MCP configuration:
{
"mcpServers": {
"simplified": {
"command": "node",
"args": [
"{PATH_TO_CLONED_REPOSITORY}/dist/cli.js",
"start"
],
"env": {
"SIMPLIFIED_API_TOKEN": "your_token_here",
"SIMPLIFIED_API_BASE_URL": "https://api.simplified.com",
"LOG_LEVEL": "info"
}
}
}
}
Install DXT extension:
Extensions -> Advanced settings -> Install Extension...
Choose simplified-mcp.dxt file.
Add your token.
Integration with Kiro
Add the server to your Kiro MCP configuration:
{
"mcpServers": {
"simplified": {
"command": "simplified-mcp-server",
"env": {
"SIMPLIFIED_API_TOKEN": "your_token_here"
}
}
}
}
Available Tools
The server provides comprehensive social media management tools with platform - specific features:
Social Media Tools
Tools for managing social media accounts and posts.
get_social_media_accounts
Retrieve all connected social media accounts.
Parameters:
network (optional): Filter by platform (facebook, instagram, linkedin, tiktok, youtube, pinterest, threads, google, bluesky, tiktokBusiness)
Example:
{
"name": "get_social_media_accounts",
"arguments": {
"network": "instagram"
}
}
create_social_media_post
Create a new social media post with platform - specific settings for Google, TikTok, Threads, YouTube, Facebook, LinkedIn, Instagram, and Pinterest.
Parameters:
message (required): Post message/content (1 - 5000 characters)
accountId (required): Social media account ID
action (required): Action to perform (schedule, add_to_queue, draft)
date (optional): Scheduled date for the post (format: YYYY - MM - DD HH:MM)
media (optional): Array of media file URLs to attach (max 10 items)
additional (optional): Platform - specific post settings and metadata
Basic Example:
{
"name": "create_social_media_post",
"arguments": {
"message": "Excited to announce our new product launch! ๐",
"accountId": "acc_fb123",
"action": "schedule",
"date": "2024-01-22 12:00",
"media": [
"https://example.com/product-image.jpg",
"https://example.com/launch-video.mp4"
],
"additional": {}
}
}
Media Files
The media parameter accepts an array of URL strings pointing to your media files:
{
"media": [
"https://example.com/image1.jpg",
"https://example.com/video.mp4",
"https://example.com/image2.png"
]
}
Media Requirements:
- Maximum 10 media files per post
- URLs must be publicly accessible
- Supported formats vary by platform (images: JPG, PNG, GIF; videos: MP4, MOV, etc.)
Platform - Specific Features
The additional parameter supports platform - specific configurations:
Google Business Profile
{
"additional": {
"google": {
"post": {
"title": "New Product Launch",
"topicType": "OFFER",
"couponCode": "LAUNCH20",
"callToActionUrl": "https://example.com/product",
"callToActionType": "SHOP",
"termsConditions": "Valid until end of month"
}
}
}
}
TikTok / TikTok Business
{
"additional": {
"tiktok": {
"post": {
"brandContent": true,
"privacyStatus": "PUBLIC_TO_EVERYONE",
"duetDisabled": false,
"commentDisabled": false
},
"channel": { "value": "direct" },
"postType": { "value": "video" }
}
}
}
YouTube
{
"additional": {
"youtube": {
"post": {
"title": "Product Launch Video",
"license": "standard",
"privacyStatus": "public",
"selfDeclaredMadeForKids": "no"
},
"postType": { "value": "short" }
}
}
}
Instagram
{
"additional": {
"instagram": {
"postReel": {
"audioName": "Trending Audio Track",
"shareToFeed": true
},
"postType": { "value": "reel" }
}
}
}
Pinterest
{
"additional": {
"pinterest": {
"post": {
"link": "https://example.com/product",
"title": "Amazing Product",
"imageAlt": "Product showcase image"
}
}
}
}
LinkedIn
{
"additional": {
"linkedin": {
"audience": { "value": "PUBLIC" }
}
}
}
Facebook
{
"additional": {
"facebook": {
"postType": { "value": "feed" }
}
}
}
Threads
{
"additional": {
"threads": {
"channel": { "value": "direct" }
}
}
}
Platform - Specific Options Reference
| Platform |
Available Options |
Description |
| Google Business Profile |
title, topicType, couponCode, callToActionUrl, callToActionType, termsConditions |
Business post enhancements with CTAs and offers |
| TikTok/TikTok Business |
brandContent, privacyStatus, duetDisabled, stitchDisabled, commentDisabled |
Content settings and engagement controls |
| YouTube |
title, license, privacyStatus, selfDeclaredMadeForKids |
Video metadata and compliance settings |
| Instagram |
audioName, shareToFeed, postType |
Reel - specific settings and feed sharing |
| Pinterest |
link, title, imageAlt |
Pin destination and accessibility |
| LinkedIn |
audience |
Professional audience targeting |
| Facebook |
postType |
Content type specification |
| Threads |
channel |
Publishing method |
Error Handling
The server provides comprehensive error handling with detailed error messages:
Error Types
- Configuration Errors: Missing or invalid configuration
- Authentication Errors: Invalid or expired API tokens
- API Errors: Errors from Simplified's API
- Tool Execution Errors: Errors during tool execution
- Validation Errors: Invalid tool parameters
Error Response Format
{
"success": false,
"error": "Error message",
"details": {
"type": "AUTHENTICATION_ERROR",
"code": 401,
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
Development
Building from Source
git clone https://github.com/celeryhq/simplified-mcp-server.git
cd simplified-mcp-server
npm install
npm run build
Running Tests
npm test
npm run test:coverage
npm run test:watch
Development Mode
npm run dev
npm run dev:watch
Project Structure
simplified-mcp-server/
โโโ src/
โ โโโ index.ts # Main entry point
โ โโโ server.ts # MCP server implementation
โ โโโ cli.ts # Command line interface
โ โโโ config/
โ โ โโโ configuration.ts # Configuration management
โ โโโ tools/
โ โ โโโ registry.ts # Tool registry
โ โ โโโ definitions.ts # Tool definition utilities
โ โ โโโ implementations/ # Tool implementations
โ โ โโโ social-media-tools.ts # Social media management tools
โ โ โโโ index.ts # Tool exports
โ โโโ api/
โ โ โโโ client.ts # Simplified API client
โ โโโ utils/
โ โ โโโ errors.ts # Error handling utilities
โ โ โโโ logger.ts # Logging utilities
โ โโโ types/
โ โโโ index.ts # TypeScript type definitions
โโโ tests/ # Test files
โโโ dist/ # Compiled JavaScript
โโโ docs/ # Documentation
Troubleshooting
Common Issues
Server Won't Start
Problem: Server fails to start with configuration error.
Solution:
- Verify your
.env file contains SIMPLIFIED_API_TOKEN
- Check that your API token is valid
- Ensure Node.js version is 18.0.0 or higher
node --version
echo $SIMPLIFIED_API_TOKEN
Authentication Errors
Problem: API calls fail with authentication errors.
Solution:
- Verify your API token is correct and not expired
- Check that the token has the necessary permissions
- Ensure the API base URL is correct
Tool Execution Failures
Problem: Tools return errors or unexpected results.
Solution:
- Check the tool parameters match the expected schema
- Verify the API endpoint exists and is accessible
- Check server logs for detailed error information
LOG_LEVEL=debug simplified-mcp-server
Connection Issues
Problem: Cannot connect to Simplified API.
Solution:
- Check your internet connection
- Verify the API base URL is accessible
- Check if there are any firewall restrictions
- Use the health check tool to diagnose connectivity
Debug Mode
Enable debug logging for detailed troubleshooting:
LOG_LEVEL=debug simplified-mcp-server
Health Check
Use the built - in health check tool to verify server status:
{
"name": "simplified-health-check",
"arguments": {
"includeDetails": true
}
}
Getting Help
- Check the logs: Enable debug logging to see detailed error information
- Verify configuration: Ensure all required environment variables are set
- Test connectivity: Use the health check and API status tools
- Check API documentation: Verify endpoint paths and parameters
- Report issues: Create an issue on the GitHub repository with logs and configuration details
API Reference
Server Configuration
The server accepts the following configuration options:
interface ServerConfig {
apiToken: string;
apiBaseUrl: string;
logLevel: 'debug' | 'info' | 'warn' | 'error';
timeout: number;
retryAttempts: number;
retryDelay: number;
}
Tool Response Format
All tools return responses in the following format:
interface ToolResponse {
content: Array<{
type: 'text';
text: string;
}>;
}
Success Response
{
"success": true,
"data": { },
"message": "Operation completed successfully"
}
Error Response
{
"success": false,
"error": "Error description",
"details": { }
}
๐ง Technical Details
The Simplified MCP Server is built using TypeScript and the official @modelcontextprotocol/sdk. It provides a standardized way for LLMs to interact with Simplified's API through the MCP protocol. The server has comprehensive error - handling mechanisms, configurable logging, and support for multiple social media platforms.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Fork the repository
- Clone your fork:
git clone https://github.com/your - username/simplified-mcp-server.git
- Install dependencies:
npm install
- Create a feature branch:
git checkout -b feature/your - feature
- Make your changes and add tests
- Run tests:
npm test
- Build the project:
npm run build
- Commit your changes:
git commit -m "Add your feature"
- Push to your fork:
git push origin feature/your - feature
- Create a Pull Request