
Security News
Software Engineering Daily Podcast: Feross on AI, Open Source, and Supply Chain Risk
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.
simplified-mcp-server
Advanced tools
A Model Context Protocol (MCP) server that provides seamless integration between Claude, Cursor, Kiro ( and other MCP supported platforms) and Simplified's API. 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.
npm install -g simplified-mcp-server
git clone https://github.com/celeryhq/simplified-mcp-server.git
cd simplified-mcp-server
npm install
npm run build
npm install -g @anthropic-ai/dxt
npx @anthropic-ai/dxt pack
The server is configured using environment variables. Create a .env file in your project root or set these variables in your environment:
| Variable | Description | Example |
|---|---|---|
SIMPLIFIED_API_TOKEN | Your Simplified API token | sk_live_abc123... |
| 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 |
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 |
# 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
# 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 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
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);
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",
"WORKFLOWS_ENABLED": "true",
"WORKFLOW_EXECUTION_TIMEOUT": "600000"
}
}
}
}
Install DXT extension:
Extensions -> Advanced settings -> Install Extension...
Choose simplified-mcp.dxt file. Add your token.
Add the server to your Kiro MCP configuration:
{
"mcpServers": {
"simplified": {
"command": "simplified-mcp-server",
"env": {
"SIMPLIFIED_API_TOKEN": "your_token_here",
"WORKFLOWS_ENABLED": "true",
"WORKFLOW_DISCOVERY_INTERVAL": "300000",
"WORKFLOW_EXECUTION_TIMEOUT": "600000"
}
}
}
}
The server provides comprehensive social media management tools with platform-specific features, plus dynamic workflow tools for extended functionality:
Tools for managing social media accounts and posts.
get_social_media_accountsRetrieve 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_postCreate 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 IDaction (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 metadataBasic 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": {}
}
}
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:
The additional parameter supports platform-specific configurations:
{
"additional": {
"google": {
"post": {
"title": "New Product Launch",
"topicType": "OFFER",
"couponCode": "LAUNCH20",
"callToActionUrl": "https://example.com/product",
"callToActionType": "SHOP",
"termsConditions": "Valid until end of month"
}
}
}
}
{
"additional": {
"tiktok": {
"post": {
"brandContent": true,
"privacyStatus": "PUBLIC_TO_EVERYONE",
"duetDisabled": false,
"commentDisabled": false
},
"channel": { "value": "direct" },
"postType": { "value": "video" }
}
}
}
{
"additional": {
"youtube": {
"post": {
"title": "Product Launch Video",
"license": "standard",
"privacyStatus": "public",
"selfDeclaredMadeForKids": "no"
},
"postType": { "value": "short" }
}
}
}
{
"additional": {
"instagram": {
"postReel": {
"audioName": "Trending Audio Track",
"shareToFeed": true
},
"postType": { "value": "reel" }
}
}
}
{
"additional": {
"pinterest": {
"post": {
"link": "https://example.com/product",
"title": "Amazing Product",
"imageAlt": "Product showcase image"
}
}
}
}
{
"additional": {
"linkedin": {
"audience": { "value": "PUBLIC" }
}
}
}
{
"additional": {
"facebook": {
"postType": { "value": "feed" }
}
}
}
{
"additional": {
"threads": {
"channel": { "value": "direct" }
}
}
}
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.
To enable dynamic workflow tools, set the following environment variable:
WORKFLOWS_ENABLED=true
When enabled, the server will:
workflows-list-tool to discover available workflowsThe server discovers workflows by calling a workflows-list-tool that should return an array of workflow definitions. Each workflow must conform to this schema:
{
"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"
}
}
Once discovered, workflow tools appear in the standard MCP tools list and can be called like any other tool:
{
"name": "workflow-data-analysis-workflow",
"arguments": {
"dataset": "/path/to/data.csv",
"format": "csv"
}
}
Example execution response:
{
"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"
}
}
}
}
The server provides a built-in workflow-status-check tool for monitoring workflow executions:
{
"name": "workflow-status-check",
"arguments": {
"workflowId": "workflow-123",
"executionId": "exec-456"
}
}
Status response includes:
# Enable automatic workflow discovery
WORKFLOWS_ENABLED=true
# Refresh workflows every 5 minutes (300000ms)
WORKFLOW_DISCOVERY_INTERVAL=300000
# 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
# 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:
# - admin-cleanup-workflow
# - test-workflow
# Retry failed workflow operations up to 5 times
WORKFLOW_RETRY_ATTEMPTS=5
{
"name": "workflow-data-processor",
"arguments": {
"inputFile": "sales-data-2024.csv",
"operations": ["clean", "aggregate", "analyze"],
"outputFormat": "json"
}
}
{
"name": "workflow-monthly-report",
"arguments": {
"month": "2024-01",
"includeCharts": true,
"recipients": ["manager@company.com"],
"format": "pdf"
}
}
{
"name": "workflow-ml-training",
"arguments": {
"dataset": "customer-behavior.csv",
"algorithm": "random-forest",
"testSplit": 0.2,
"hyperparameters": {
"n_estimators": 100,
"max_depth": 10
}
}
}
| 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 |
audioName, shareToFeed, postType | Reel-specific settings and feed sharing | |
link, title, imageAlt | Pin destination and accessibility | |
audience | Professional audience targeting | |
postType | Content type specification | |
| Threads | channel | Publishing method |
Dynamic tools automatically generated from discovered workflows. These tools are only available when WORKFLOWS_ENABLED=true.
workflow-status-checkCheck the status of a running workflow execution.
Parameters:
workflowId (required): The original workflow IDexecutionId (required): The workflow execution ID (UUID)Example:
{
"name": "workflow-status-check",
"arguments": {
"workflowId": "data-processor-v2",
"executionId": "8f496b6a-c905-41bb-b7b7-200a8982ab30"
}
}
Response:
{
"success": true,
"data": {
"status": "RUNNING",
"progress": 65,
"startTime": 1753703781802,
"estimatedCompletion": "2024-01-22T12:45:00Z",
"input": {
"dataset": "sales-data.csv",
"format": "csv"
},
"output": null
}
}
Each discovered workflow becomes an individual MCP tool with the naming pattern workflow-{workflow-name}. The tool parameters are dynamically generated based on the workflow's input schema.
Example Workflow Tools:
workflow-data-analysis - Analyze datasets and generate insightsworkflow-report-generator - Create automated reportsworkflow-image-processor - Process and transform imagesworkflow-email-campaign - Send targeted email campaignsworkflow-backup-system - Perform system backupsDynamic Tool Example:
{
"name": "workflow-customer-segmentation",
"arguments": {
"customerData": "customers-2024.csv",
"segmentationCriteria": ["age", "purchase_history", "location"],
"outputFormat": "json",
"includeVisualization": true
}
}
Dynamic Tool Response:
{
"success": true,
"data": {
"executionId": "exec-789",
"status": "COMPLETED",
"results": {
"segments": [
{
"name": "High Value Customers",
"count": 1250,
"criteria": "age: 25-45, purchases: >$500/month"
},
{
"name": "Occasional Buyers",
"count": 3400,
"criteria": "age: 18-65, purchases: $50-$500/month"
}
],
"visualizationUrl": "https://example.com/segments-chart.png",
"executionTime": "3m 45s"
}
}
}
The server provides comprehensive error handling with detailed error messages:
{
"success": false,
"error": "Error message",
"details": {
"type": "AUTHENTICATION_ERROR",
"code": 401,
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
{
"success": false,
"error": "Failed to discover workflows",
"details": {
"type": "WORKFLOW_DISCOVERY_ERROR",
"message": "workflows-list-tool is not available",
"timestamp": "2024-01-01T00:00:00.000Z",
"retryAfter": 300
}
}
{
"success": false,
"error": "Workflow execution failed",
"details": {
"type": "WORKFLOW_EXECUTION_ERROR",
"workflowId": "data-processor",
"executionId": "exec-123",
"status": "FAILED",
"message": "Invalid input format: expected CSV, got JSON",
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
{
"success": false,
"error": "Workflow execution timed out",
"details": {
"type": "WORKFLOW_TIMEOUT_ERROR",
"workflowId": "long-running-analysis",
"executionId": "exec-456",
"timeout": 300000,
"elapsed": 300001,
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
git clone https://github.com/celeryhq/simplified-mcp-server.git
cd simplified-mcp-server
npm install
npm run build
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm run test:watch
# Start in development mode with auto-reload
npm run dev
# Start in development mode with watch
npm run dev:watch
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
Workflow tools extend the server's capabilities by automatically discovering and registering tools based on external workflow definitions. This allows you to expose complex business processes, data pipelines, and automation workflows as simple MCP tools.
WORKFLOWS_ENABLEDPurpose: Master switch for workflow functionality
Default: false
Recommendation: Set to true only when you have a workflows-list-tool available
# Enable workflow tools
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVALPurpose: How often to refresh the list of available workflows
Default: 0 (disabled)
Range: 0-86400000 ms (0 = disabled, max = 24 hours)
Recommendation:
60000 (1 minute) for rapid iteration600000 (10 minutes) for stability0 if workflows rarely change# Refresh every 5 minutes
WORKFLOW_DISCOVERY_INTERVAL=300000
# Disable automatic refresh
WORKFLOW_DISCOVERY_INTERVAL=0
WORKFLOW_EXECUTION_TIMEOUTPurpose: Maximum time to wait for workflow completion
Default: 300000 ms (5 minutes)
Range: 1000-3600000 ms (1 second to 1 hour)
Recommendation: Set based on your longest-running workflow
# For quick workflows (e.g., data validation)
WORKFLOW_EXECUTION_TIMEOUT=30000
# For long workflows (e.g., ML training)
WORKFLOW_EXECUTION_TIMEOUT=1800000
WORKFLOW_MAX_CONCURRENT_EXECUTIONSPurpose: Limit simultaneous workflow executions to prevent resource exhaustion
Default: 10
Range: 1-100
Recommendation:
3-5 for resource-constrained environments10-20 based on server capacity# Conservative limit for development
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=3
# Higher limit for production
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=20
WORKFLOW_FILTER_PATTERNSPurpose: Control which workflows are exposed as tools
Default: `` (empty - all workflows exposed)
Format: Comma-separated wildcard patterns
Examples:
# Only expose data-related workflows
WORKFLOW_FILTER_PATTERNS=data-*
# Multiple patterns
WORKFLOW_FILTER_PATTERNS=data-*,report-*,analysis-*
# Exclude test workflows
WORKFLOW_FILTER_PATTERNS=*,-test-*,-dev-*
# Expose all workflows (default)
WORKFLOW_FILTER_PATTERNS=
WORKFLOW_STATUS_CHECK_INTERVALPurpose: How often to poll workflow status during execution
Default: 5000 ms (5 seconds)
Range: 1000-300000 ms (1 second to 5 minutes)
Recommendation: Balance between responsiveness and API load
# Frequent polling for interactive workflows
WORKFLOW_STATUS_CHECK_INTERVAL=2000
# Less frequent polling to reduce API load
WORKFLOW_STATUS_CHECK_INTERVAL=10000
WORKFLOW_RETRY_ATTEMPTSPurpose: Number of retry attempts for failed workflow operations
Default: 3
Range: 0-10
Recommendation:
1 for faster failure feedback3-5 for reliability# No retries for testing
WORKFLOW_RETRY_ATTEMPTS=0
# More retries for production reliability
WORKFLOW_RETRY_ATTEMPTS=5
# Fast feedback, lower resource usage
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVAL=60000
WORKFLOW_EXECUTION_TIMEOUT=120000
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=3
WORKFLOW_STATUS_CHECK_INTERVAL=2000
WORKFLOW_RETRY_ATTEMPTS=1
WORKFLOW_FILTER_PATTERNS=dev-*,test-*
LOG_LEVEL=debug
# Stability and performance focused
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVAL=600000
WORKFLOW_EXECUTION_TIMEOUT=600000
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=15
WORKFLOW_STATUS_CHECK_INTERVAL=5000
WORKFLOW_RETRY_ATTEMPTS=3
WORKFLOW_FILTER_PATTERNS=prod-*
LOG_LEVEL=warn
# Predictable behavior for tests
WORKFLOWS_ENABLED=false
WORKFLOW_DISCOVERY_INTERVAL=0
WORKFLOW_EXECUTION_TIMEOUT=30000
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=1
WORKFLOW_STATUS_CHECK_INTERVAL=1000
WORKFLOW_RETRY_ATTEMPTS=0
LOG_LEVEL=error
The server validates all workflow configuration on startup and provides detailed error messages for invalid values:
# Example validation error
Configuration validation failed:
Invalid configuration values: workflowExecutionTimeout: Workflow execution timeout must be at least 1000ms (1 second)
Workflow configuration guidelines:
- Set WORKFLOW_DISCOVERY_INTERVAL to 0 to disable automatic refresh
- Use WORKFLOW_FILTER_PATTERNS to limit which workflows are exposed (e.g., "data-*,report-*")
- Minimum WORKFLOW_STATUS_CHECK_INTERVAL is 1000ms to avoid excessive API calls
- WORKFLOW_EXECUTION_TIMEOUT should be set based on your longest-running workflows
WORKFLOW_DISCOVERY_INTERVAL to at least 60 seconds to avoid rate limitsWORKFLOW_STATUS_CHECK_INTERVAL of at least 2 seconds for status pollingWORKFLOW_MAX_CONCURRENT_EXECUTIONSWORKFLOW_EXECUTION_TIMEOUT# Enable detailed logging for monitoring
LOG_LEVEL=info
# Set reasonable limits
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=10
WORKFLOW_EXECUTION_TIMEOUT=300000
# Monitor workflow performance
WORKFLOW_STATUS_CHECK_INTERVAL=5000
Problem: Server fails to start with configuration error.
Solution:
.env file contains SIMPLIFIED_API_TOKEN# Check Node.js version
node --version
# Verify environment variables
echo $SIMPLIFIED_API_TOKEN
Problem: API calls fail with authentication errors.
Solution:
Problem: Tools return errors or unexpected results.
Solution:
# Enable debug logging
LOG_LEVEL=debug simplified-mcp-server
Problem: Cannot connect to Simplified API.
Solution:
Problem: Workflow tools are not appearing in the tools list.
Solution:
WORKFLOWS_ENABLED=true is set in your environmentworkflows-list-tool is available and responding# Enable debug logging to see workflow discovery details
LOG_LEVEL=debug simplified-mcp-server
Problem: Workflow execution times out or fails.
Solution:
WORKFLOW_EXECUTION_TIMEOUT for longer-running workflowsworkflow-status-check tool# Increase timeout to 10 minutes for long workflows
WORKFLOW_EXECUTION_TIMEOUT=600000
Problem: Too many concurrent workflow executions causing errors.
Solution:
WORKFLOW_MAX_CONCURRENT_EXECUTIONS to limit resource usage# Limit to 5 concurrent executions
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=5
Problem: Workflow discovery is too frequent and causing API rate limits.
Solution:
WORKFLOW_DISCOVERY_INTERVAL to reduce API calls# Refresh workflows every 30 minutes instead of every 5 minutes
WORKFLOW_DISCOVERY_INTERVAL=1800000
# Or disable automatic discovery
WORKFLOW_DISCOVERY_INTERVAL=0
Problem: Only some workflows are being discovered.
Solution:
WORKFLOW_FILTER_PATTERNS configuration# Remove all filters to see all workflows
WORKFLOW_FILTER_PATTERNS=
# Or adjust patterns to include more workflows
WORKFLOW_FILTER_PATTERNS=*
Enable debug logging for detailed troubleshooting:
LOG_LEVEL=debug simplified-mcp-server
Use the built-in health check tool to verify server status:
{
"name": "simplified-health-check",
"arguments": {
"includeDetails": true
}
}
Symptom: No workflow tools appear in tools list despite WORKFLOWS_ENABLED=true
Diagnostic Steps:
LOG_LEVEL=debugworkflows-list-tool is available and respondingCommon Causes & Solutions:
# Cause: workflows-list-tool not found
# Solution: Ensure the tool is properly registered and available
LOG_LEVEL=debug simplified-mcp-server
# Look for: "Workflow discovery failed: workflows-list-tool not found"
# Cause: Invalid workflow definitions
# Solution: Check workflow schema compliance
# Look for: "Skipping invalid workflow: missing required field 'name'"
# Cause: All workflows filtered out
# Solution: Check filter patterns
WORKFLOW_FILTER_PATTERNS= # Remove filters temporarily
Symptom: Workflows discovered but tools not registered
Diagnostic Steps:
Solutions:
# Enable detailed tool registration logging
LOG_LEVEL=debug
# Check for naming conflicts
# Look for: "Tool name conflict: workflow-data-processor already exists"
# Verify workflow names contain only valid characters
# Valid: data-processor, report_generator, analysis123
# Invalid: data processor, report-generator!, anΓ‘lisis
Symptom: Workflow execution times out
Diagnostic Steps:
Solutions:
# Increase timeout for long-running workflows
WORKFLOW_EXECUTION_TIMEOUT=1800000 # 30 minutes
# Check workflow status manually
{
"name": "workflow-status-check",
"arguments": {
"workflowId": "your-workflow-id",
"executionId": "execution-uuid"
}
}
# Reduce status check interval for better monitoring
WORKFLOW_STATUS_CHECK_INTERVAL=2000
Symptom: Workflow execution fails immediately
Diagnostic Steps:
Solutions:
# Enable parameter validation logging
LOG_LEVEL=debug
# Check parameter schema compliance
# Look for: "Parameter validation failed: 'dataset' is required"
# Test workflow system connectivity
# Use workflow-status-check with a known execution ID
Symptom: Server becomes slow or unresponsive
Diagnostic Steps:
Solutions:
# Reduce concurrent executions
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=5
# Increase discovery interval to reduce API load
WORKFLOW_DISCOVERY_INTERVAL=1800000 # 30 minutes
# Disable automatic discovery if not needed
WORKFLOW_DISCOVERY_INTERVAL=0
# Use workflow filtering to reduce tool count
WORKFLOW_FILTER_PATTERNS=essential-*,critical-*
Symptom: Excessive API calls causing rate limiting
Solutions:
# Increase status check interval
WORKFLOW_STATUS_CHECK_INTERVAL=10000 # 10 seconds
# Reduce discovery frequency
WORKFLOW_DISCOVERY_INTERVAL=3600000 # 1 hour
# Limit concurrent executions
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=3
Symptom: Server fails to start with workflow configuration errors
Common Errors & Solutions:
# Error: "Workflow execution timeout must be at least 1000ms"
WORKFLOW_EXECUTION_TIMEOUT=30000 # Set to at least 1 second
# Error: "Status check interval must be at least 1000ms"
WORKFLOW_STATUS_CHECK_INTERVAL=2000 # Set to at least 1 second
# Error: "Maximum concurrent executions must be positive"
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=5 # Set to positive number
# Error: "Discovery interval cannot exceed 24 hours"
WORKFLOW_DISCOVERY_INTERVAL=3600000 # Set to max 1 hour
Symptom: Workflows work in testing but fail in production
Diagnostic Checklist:
Production Configuration Review:
# Ensure production-appropriate timeouts
WORKFLOW_EXECUTION_TIMEOUT=600000 # 10 minutes
WORKFLOW_STATUS_CHECK_INTERVAL=5000 # 5 seconds
WORKFLOW_DISCOVERY_INTERVAL=600000 # 10 minutes
# Set appropriate concurrency limits
WORKFLOW_MAX_CONCURRENT_EXECUTIONS=15
# Use production workflow filters
WORKFLOW_FILTER_PATTERNS=prod-*,live-*
# Enable appropriate logging
LOG_LEVEL=warn # Reduce log noise in production
Enable Maximum Debugging:
LOG_LEVEL=debug
WORKFLOWS_ENABLED=true
WORKFLOW_DISCOVERY_INTERVAL=60000
WORKFLOW_STATUS_CHECK_INTERVAL=2000
WORKFLOW_RETRY_ATTEMPTS=1
Test Workflow Discovery:
# Start server and look for these log messages:
# "Starting workflow discovery..."
# "Discovered X workflows"
# "Registered workflow tool: workflow-name"
# "Workflow discovery completed"
Test Workflow Execution:
# Use a simple workflow first
{
"name": "workflow-simple-test",
"arguments": {
"input": "test-value"
}
}
# Monitor logs for:
# "Starting workflow execution: workflow-id"
# "Workflow status: RUNNING"
# "Workflow completed: execution-id"
The server accepts the following configuration options:
interface ServerConfig {
// Basic Configuration
apiToken: string; // Required: Simplified API token
apiBaseUrl: string; // Optional: API base URL
logLevel: 'debug' | 'info' | 'warn' | 'error'; // Optional: Log level
timeout: number; // Optional: Request timeout in ms
retryAttempts: number; // Optional: Number of retry attempts
retryDelay: number; // Optional: Delay between retries in ms
// Workflow Configuration
workflowsEnabled: boolean; // Optional: Enable workflow tools
workflowDiscoveryInterval: number; // Optional: Auto-refresh interval (ms)
workflowExecutionTimeout: number; // Optional: Execution timeout (ms)
workflowMaxConcurrentExecutions: number; // Optional: Max concurrent executions
workflowFilterPatterns: string[]; // Optional: Workflow name patterns
workflowStatusCheckInterval: number; // Optional: Status polling interval (ms)
workflowRetryAttempts: number; // Optional: Retry attempts for failures
}
All tools return responses in the following format:
interface ToolResponse {
content: Array<{
type: 'text';
text: string; // JSON string containing the actual response data
}>;
}
{
"success": true,
"data": { /* response data */ },
"message": "Operation completed successfully"
}
{
"success": false,
"error": "Error description",
"details": { /* additional error information */ }
}
We welcome contributions! Please see our Contributing Guide for details.
git clone https://github.com/your-username/simplified-mcp-server.gitnpm installgit checkout -b feature/your-featurenpm testnpm run buildgit commit -m "Add your feature"git push origin feature/your-featureThis project is licensed under the MIT License - see the LICENSE file for details.
FAQs
MCP server for social media management through Simplified API
We found that simplified-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.

Security News
GitHub has revoked npm classic tokens for publishing; maintainers must migrate, but OpenJS warns OIDC trusted publishing still has risky gaps for critical projects.

Security News
Rustβs crates.io team is advancing an RFC to add a Security tab that surfaces RustSec vulnerability and unsoundness advisories directly on crate pages.