# Simplified Mcp Server

> Simplified MCP server

- **Type:** MCP server
- **Install:** `agentstack add mcp-celeryhq-simplified-mcp-server`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [celeryhq](https://agentstack.voostack.com/s/celeryhq)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [celeryhq](https://github.com/celeryhq)
- **Source:** https://github.com/celeryhq/simplified-mcp-server
- **Website:** https://simplfied.com

## Install

```sh
agentstack add mcp-celeryhq-simplified-mcp-server
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Simplified MCP Server

A Model Context Protocol (MCP) server that provides seamless integration between Claude, Cursor, Kiro ( and other MCP supported platforms) and [Simplified's API](https://simplified.com). This server enables LLMs to interact with Simplified's services through standardized MCP tools, allowing for social media account management and post creation across multiple platforms.

## Features

- **Full MCP Protocol Support**: Built using the official @modelcontextprotocol/sdk
- **Social Media Management**: Comprehensive social media account and post management
- **Multi-Platform Support**: Support for 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 platform-specific settings for Google Business Profile, TikTok, YouTube, Instagram, and more
- **Scheduling Support**: Create scheduled posts with platform-specific settings
- **Authentication Management**: Secure API token handling with automatic retry logic

## Installation

### Prerequisites

- Node.js 18.0.0 or higher
- npm 8.0.0 or higher
- A [Simplified API token](https://simplified.readme.io/reference/authentication)

### Install from NPM

```bash
npm install -g simplified-mcp-server
```

### Install from Source

```bash
git clone https://github.com/celeryhq/simplified-mcp-server.git
cd simplified-mcp-server
npm install
npm run build
```

### pack DXT file
```bash
npm install -g @anthropic-ai/dxt
npx @anthropic-ai/dxt pack        
```

## 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

| Variable | Description | Example |
|----------|-------------|---------|
| `SIMPLIFIED_API_TOKEN` | Your Simplified API token | `sk_live_abc123...` |

### Optional Configuration

| Variable | Description | 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 |

### Workflow Tool Configuration

The server supports dynamic workflow tools that automatically discover and register tools based on available workflows. This feature is disabled by default and can be enabled through environment variables.

| Variable | Description | Default | Range/Options |
|----------|-------------|---------|---------------|
| `WORKFLOWS_ENABLED` | Enable dynamic workflow tools | `false` | `true`, `false` |
| `WORKFLOW_DISCOVERY_INTERVAL` | Auto-refresh interval (ms) | `0` (disabled) | `0-86400000` (0 = disabled) |
| `WORKFLOW_EXECUTION_TIMEOUT` | Execution timeout (ms) | `300000` (5 min) | `1000-3600000` |
| `WORKFLOW_MAX_CONCURRENT_EXECUTIONS` | Max concurrent executions | `10` | `1-100` |
| `WORKFLOW_FILTER_PATTERNS` | Comma-separated name patterns | `` (none) | Wildcard patterns |
| `WORKFLOW_STATUS_CHECK_INTERVAL` | Status polling interval (ms) | `5000` | `1000-300000` |
| `WORKFLOW_RETRY_ATTEMPTS` | Retry attempts for failures | `3` | `0-10` |

### Example Configuration

```bash
# Required
SIMPLIFIED_API_TOKEN=sk_live_your_token_here

# Optional - Basic Configuration
SIMPLIFIED_API_BASE_URL=https://api.simplified.com
LOG_LEVEL=info
REQUEST_TIMEOUT=30000
RETRY_ATTEMPTS=3
RETRY_DELAY=1000

# Optional - Workflow Configuration
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVAL=300000
WORKFLOW_EXECUTION_TIMEOUT=600000
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=10
WORKFLOW_FILTER_PATTERNS=data-*,report-*
WORKFLOW_STATUS_CHECK_INTERVAL=5000
WORKFLOW_RETRY_ATTEMPTS=3
```

### Environment-Specific Configuration Examples

#### Development Environment
```bash
# Development settings for faster feedback
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVAL=60000          # 1 minute refresh
WORKFLOW_EXECUTION_TIMEOUT=120000          # 2 minute timeout
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=5       # Lower concurrency
WORKFLOW_STATUS_CHECK_INTERVAL=2000        # 2 second polling
WORKFLOW_RETRY_ATTEMPTS=1                  # Fewer retries
LOG_LEVEL=debug
```

#### Production Environment
```bash
# Production settings for stability and performance
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVAL=600000         # 10 minute refresh
WORKFLOW_EXECUTION_TIMEOUT=600000          # 10 minute timeout
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=20      # Higher concurrency
WORKFLOW_STATUS_CHECK_INTERVAL=10000       # 10 second polling
WORKFLOW_RETRY_ATTEMPTS=5                  # More retries
LOG_LEVEL=warn
```

## Usage

### Programmatic Usage

```typescript
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:

```json
{
   "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",
          "WORKFLOWS_ENABLED": "true",
          "WORKFLOW_EXECUTION_TIMEOUT": "600000"
        }
      }
    }
}
```

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:

```json
{
  "mcpServers": {
    "simplified": {
      "command": "simplified-mcp-server",
      "env": {
        "SIMPLIFIED_API_TOKEN": "your_token_here",
        "WORKFLOWS_ENABLED": "true",
        "WORKFLOW_DISCOVERY_INTERVAL": "300000",
        "WORKFLOW_EXECUTION_TIMEOUT": "600000"
      }
    }
  }
}
```

## Available Tools

The server provides comprehensive social media management tools with platform-specific features, plus dynamic workflow tools for extended functionality:

### Generated Tools

The bulk of the server's tools are generated from the `simplified-apikit` OpenAPI specs. Run `npm run generate:tools` to regenerate them — it reads the specs from the path set in `SIMPLIFIED_APIKIT_SPECS_PATH` (defaulting to a local checkout of the `simplified-apikit` repo) and writes committed TypeScript descriptor files under `src/tools/generated/`. After upstream specs change, regenerate and commit the updated `src/tools/generated/` files.

Tools are organized into groups, one per spec: `social_media`, `smp_pm`, `celeryhq`, `image_tools`, `video_tools`, `audio_tools`, `comments`, `agent_notification`. Each group can be toggled independently:

| Variable | Description | Default |
|----------|-------------|---------|
| `TOOLS_SOCIAL_MEDIA_ENABLED` | Enable/disable the `social_media` group | `true` |
| `TOOLS_SMP_PM_ENABLED` | Enable/disable the `smp_pm` group | `true` |
| `TOOLS_CELERYHQ_ENABLED` | Enable/disable the `celeryhq` group | `true` |
| `TOOLS_IMAGE_TOOLS_ENABLED` | Enable/disable the `image_tools` group | `true` |
| `TOOLS_VIDEO_TOOLS_ENABLED` | Enable/disable the `video_tools` group | `true` |
| `TOOLS_AUDIO_TOOLS_ENABLED` | Enable/disable the `audio_tools` group | `true` |
| `TOOLS_COMMENTS_ENABLED` | Enable/disable the `comments` group | `true` |
| `TOOLS_AGENT_NOTIFICATION_ENABLED` | Enable/disable the `agent_notification` group | `true` |

Two optional variables provide default workspace-scoping headers used when a tool call omits them:

| Variable | Description |
|----------|-------------|
| `SIMPLIFIED_ORGANIZATION_ID` | Default organization ID sent as a request header |
| `SIMPLIFIED_SPACE_ID` | Default space ID sent as a request header |

### 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:**
```json
{
  "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:**
```json
{
  "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:

```json
{
  "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
```json
{
  "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
```json
{
  "additional": {
    "tiktok": {
      "post": {
        "brandContent": true,
        "privacyStatus": "PUBLIC_TO_EVERYONE",
        "duetDisabled": false,
        "commentDisabled": false
      },
      "channel": { "value": "direct" },
      "postType": { "value": "video" }
    }
  }
}
```

#### YouTube
```json
{
  "additional": {
    "youtube": {
      "post": {
        "title": "Product Launch Video",
        "license": "standard",
        "privacyStatus": "public",
        "selfDeclaredMadeForKids": "no"
      },
      "postType": { "value": "short" }
    }
  }
}
```

#### Instagram
```json
{
  "additional": {
    "instagram": {
      "postReel": {
        "audioName": "Trending Audio Track",
        "shareToFeed": true
      },
      "postType": { "value": "reel" }
    }
  }
}
```

#### Pinterest
```json
{
  "additional": {
    "pinterest": {
      "post": {
        "link": "https://example.com/product",
        "title": "Amazing Product",
        "imageAlt": "Product showcase image"
      }
    }
  }
}
```

#### LinkedIn
```json
{
  "additional": {
    "linkedin": {
      "audience": { "value": "PUBLIC" }
    }
  }
}
```

#### Facebook
```json
{
  "additional": {
    "facebook": {
      "postType": { "value": "feed" }
    }
  }
}
```

#### Threads
```json
{
  "additional": {
    "threads": {
      "channel": { "value": "direct" }
    }
  }
}
```

### Dynamic Workflow Tools

The server supports dynamic workflow tools that automatically discover and register tools based on workflows provided by a `workflows-list-tool`. This feature enables the server to expose workflow-based functionality as standard MCP tools without requiring code changes.

#### Enabling Workflow Tools

To enable dynamic workflow tools, set the following environment variable:

```bash
WORKFLOWS_ENABLED=true
```

When enabled, the server will:
1. Query the `workflows-list-tool` to discover available workflows
2. Automatically register MCP tools for each discovered workflow
3. Handle workflow execution through standard MCP tool calls
4. Provide status checking capabilities for running workflows

#### Workflow Tool Discovery

The server discovers workflows by calling a `workflows-list-tool` that should return an array of workflow definitions. Each workflow must conform to this schema:

```json
{
  "id": "workflow-123",
  "name": "Data Analysis Workflow",
  "description": "Analyzes data and generates reports",
  "category": "analytics",
  "version": "1.0.0",
  "inputSchema": {
    "type": "object",
    "properties": {
      "dataset": {
        "type": "string",
        "description": "Path to the dataset file"
      },
      "format": {
        "type": "string",
        "enum": ["csv", "json", "xlsx"],
        "description": "Data format"
      }
    },
    "required": ["dataset"]
  },
  "executionType": "async",
  "metadata": {
    "estimatedDuration": "5-10 minutes",
    "resourceRequirements": "medium"
  }
}
```

#### Using Workflow Tools

Once discovered, workflow tools appear in the standard MCP tools list and can be called like any other tool:

```json
{
  "name": "workflow-data-analysis-workflow",
  "arguments": {
    "dataset": "/path/to/data.csv",
    "format": "csv"
  }
}
```

#### Workflow Execution Flow

1. **Tool Call**: MCP client calls a workflow tool with parameters
2. **Execution Start**: Server makes POST call to workflow execution endpoint
3. **Status Polling**: Server polls workflow status with minimum 1000ms intervals
4. **Result Return**: Server returns workflow results in standard MCP format

Example execution response:
```json
{
  "success": true,
  "data": {
    "workflowId": "workflow-123",
    "executionId": "exec-456",
    "status": "COMPLETED",
    "results": {
      "summary": "Analysis completed successfully",
      "reportUrl": "https://example.com/report.pdf",
      "metrics": {
        "recordsProcessed": 10000,
        "executionTime": "4m 32s"
      }
    }
  }
}
```

#### Workflow Status Checking

The server provides a built-in `workflow-status-check` tool for monitoring workflow executions:

```json
{
  "name": "workflow-status-check",
  "arguments": {
    "workflowId": "workflow-123",
    "executionId": "exec-456"
  }
}
```

Status response includes:
- Current execution status (RUNNING, COMPLETED, FAILED, CANCELLED)
- Start and end times
- Progress information (if available)
- Input parameters and output results
- Error details (if failed)

#### Workflow Configuration Options

##### Discovery and Refresh
```bash
# Enable automatic workflow discovery
WORKFLOWS_ENABLED=true

# Refresh workflows every 5 minutes (300000ms)
WORKFLOW_DISCOVERY_INTERVAL=300000
```

##### Execution Management
```bash
# Set workflow execution timeout to 10 minutes
WORKFLOW_EXECUTION_TIMEOUT=600000

# Allow up to 15 concurrent workflow executions
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=15

# Check workflow status every 3 seconds
WORKFLOW_STATUS_CHECK_INTERVAL=3000
```

##### Workflow Filtering
```bash
# Only expose workflows matching these patterns
WORKFLOW_FILTER_PATTERNS=data-*,report-*,analysis-*

# This would expose workflows like:
# - data-processing-workflow
# - report-generation-workflow  
# - analysis-customer-workflow
# But not:
#

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [celeryhq](https://github.com/celeryhq)
- **Source:** [celeryhq/simplified-mcp-server](https://github.com/celeryhq/simplified-mcp-server)
- **License:** MIT
- **Homepage:** https://simplfied.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-celeryhq-simplified-mcp-server
- Seller: https://agentstack.voostack.com/s/celeryhq
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
