OpenAI API + FlowMattic MCP Server Integration Guide
Overview
This guide demonstrates how to integrate FlowMattic MCP (Model Context Protocol) server with OpenAI’s API, enabling your AI applications to access FlowMattic’s powerful automation tools directly through OpenAI’s Responses API. This integration allows you to combine OpenAI’s language models with FlowMattic’s workflow automation capabilities.
Prerequisites
Before you begin, ensure you have:
- OpenAI API account with valid API key
- FlowMattic MCP server configured and running (Server ID: 72)
- FlowMattic authentication token for API access
- Basic knowledge of REST APIs and HTTP requests
- Development environment (for testing API calls)
What You’ll Achieve
After completing this integration, you’ll be able to:
- Use OpenAI models with direct access to FlowMattic tools
- Execute FlowMattic workflows through natural language commands
- Combine AI reasoning with FlowMattic’s automation capabilities
- Build applications that leverage both OpenAI and FlowMattic seamlessly
- Access FlowMattic data and triggers through conversational interfaces
Integration Methods
Method 1: Direct API Call (cURL Example)
This method uses direct HTTP requests to OpenAI’s Responses API with FlowMattic MCP server configuration.
Step 1: Configure the API Request
Use the OpenAI Responses API with your FlowMattic MCP server by making a POST request to the responses endpoint:
curl --location 'https://api.openai.com/v1/responses' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $OPENAI_API_KEY' \
--data '{
"model": "gpt-4.1",
"tools": [{
"type": "mcp",
"server_label": "flowmattic",
"server_url": "{{flowmattic_mcp_server}}",
"require_approval": "never",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}],
"input": "Run the tool to get my recent posts",
"tool_choice": "required"
}'
Configuration Parameters Explained:
model
: Specifies the OpenAI model to use (gpt-4.1 recommended for complex tasks)tools
: Array of available tools, including your FlowMattic MCP servertype
: Always “mcp” for Model Context Protocol serversserver_label
: Identifier for your FlowMattic server (“flowmattic”)server_url
: Your FlowMattic MCP server endpointrequire_approval
: Set to “never” for automatic tool executionheaders
: Authentication headers for FlowMattic access
input
: Natural language instruction for the AItool_choice
: Set to “required” to ensure tool usage
Step 2: Customize Your Request
Replace placeholders with your actual values:
- OpenAI API Key: Replace
$OPENAI_API_KEY
with your actual OpenAI API key - FlowMattic Token: Replace
YOUR_TOKEN_HERE
with your FlowMattic authentication token - Server URL: The
{{flowmattic_mcp_server}}
will be automatically populated with your server URL - Input Message: Modify the input to match your specific use case
Example customized request:
curl --location 'https://api.openai.com/v1/responses' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-your-openai-api-key-here' \
--data '{
"model": "gpt-4.1",
"tools": [{
"type": "mcp",
"server_label": "flowmattic",
"server_url": "https://yoursite.com/wp-json/flowmattic/v1/mcp",
"require_approval": "never",
"headers": {
"Authorization": "Bearer your-flowmattic-token"
}
}],
"input": "Create a new workflow to send welcome emails to new subscribers",
"tool_choice": "required"
}'
Method 2: Python SDK Integration
This method uses the OpenAI Python SDK for easier integration in Python applications.
Step 1: Install the OpenAI Python SDK
First, install the OpenAI Python library:
pip install openai
Step 2: Implement the Integration
Create a Python script to integrate OpenAI with FlowMattic MCP server:
import openai
# Initialize the OpenAI client
client = openai.OpenAI(api_key="your-openai-api-key")
# Make a request with FlowMattic MCP server integration
response = client.responses.create(
model="gpt-4.1",
tools=[{
"type": "mcp",
"server_label": "flowmattic",
"server_url": "{{flowmattic_mcp_server}}",
"require_approval": "never",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}],
input="Use FlowMattic to get my recent posts",
tool_choice="required"
)
# Process the response
print(response)
Step 3: Enhanced Python Implementation
For production applications, consider this more robust implementation:
import openai
import os
from typing import Dict, List, Optional
class FlowMatticOpenAIIntegration:
def __init__(self, openai_api_key: str, flowmattic_token: str, flowmattic_server_url: str):
"""
Initialize the FlowMattic-OpenAI integration
Args:
openai_api_key: Your OpenAI API key
flowmattic_token: Your FlowMattic authentication token
flowmattic_server_url: Your FlowMattic MCP server URL
"""
self.client = openai.OpenAI(api_key=openai_api_key)
self.flowmattic_config = {
"type": "mcp",
"server_label": "flowmattic",
"server_url": flowmattic_server_url,
"require_approval": "never",
"headers": {
"Authorization": f"Bearer {flowmattic_token}"
}
}
def execute_flowmattic_task(self,
instruction: str,
model: str = "gpt-4.1",
additional_tools: Optional[List[Dict]] = None) -> Dict:
"""
Execute a task using FlowMattic tools through OpenAI
Args:
instruction: Natural language instruction for the AI
model: OpenAI model to use
additional_tools: Optional additional tools to include
Returns:
Response from OpenAI API
"""
tools = [self.flowmattic_config]
if additional_tools:
tools.extend(additional_tools)
try:
response = self.client.responses.create(
model=model,
tools=tools,
input=instruction,
tool_choice="required"
)
return response
except Exception as e:
print(f"Error executing FlowMattic task: {e}")
return {"error": str(e)}
# Usage example
if __name__ == "__main__":
# Initialize with your credentials
integration = FlowMatticOpenAIIntegration(
openai_api_key=os.getenv("OPENAI_API_KEY"),
flowmattic_token=os.getenv("FLOWMATTIC_TOKEN"),
flowmattic_server_url=os.getenv("FLOWMATTIC_MCP_SERVER_URL")
)
# Execute a task
result = integration.execute_flowmattic_task(
"Check my recent WordPress posts and create a summary report"
)
print("Task Result:", result)
Advanced Configuration
Environment Variables Setup
For security and flexibility, use environment variables:
# .env file
OPENAI_API_KEY=sk-your-openai-api-key-here
FLOWMATTIC_TOKEN=your-flowmattic-authentication-token
FLOWMATTIC_MCP_SERVER_URL=https://yoursite.com/wp-json/flowmattic/v1/mcp
Tool Configuration Options
Approval Settings
{
"require_approval": "never", // Automatic execution
"require_approval": "always", // Manual approval required
"require_approval": "auto" // AI decides based on context
}
Custom Headers
{
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE",
"X-Custom-Header": "custom-value",
"User-Agent": "MyApplication/1.0"
}
}
Multiple Tool Integration
tools = [
{
"type": "mcp",
"server_label": "flowmattic",
"server_url": "{{flowmattic_mcp_server}}",
"require_approval": "never",
"headers": {"Authorization": "Bearer FLOWMATTIC_TOKEN"}
},
{
"type": "mcp",
"server_label": "other_service",
"server_url": "https://other-service.com/mcp",
"require_approval": "auto",
"headers": {"Authorization": "Bearer OTHER_TOKEN"}
}
]
Use Cases and Examples
1. Content Management
# Get recent posts and create social media content
instruction = "Get my 5 most recent WordPress posts from FlowMattic and create engaging social media posts for each one"
response = integration.execute_flowmattic_task(instruction)
2. Workflow Automation
# Trigger a FlowMattic workflow based on conditions
instruction = "Check if there are any new contact form submissions in the last hour, and if so, trigger the welcome email workflow"
response = integration.execute_flowmattic_task(instruction)
3. Data Analysis
# Analyze FlowMattic data and generate reports
instruction = "Analyze the performance data from my e-commerce workflows in FlowMattic and create a monthly performance report"
response = integration.execute_flowmattic_task(instruction)
4. Integration Management
# Manage integrations through natural language
instruction = "Create a new FlowMattic workflow that connects my contact form to my email marketing service and Slack notifications"
response = integration.execute_flowmattic_task(instruction)
Error Handling and Troubleshooting
Common Issues and Solutions
Authentication Errors
# Handle authentication issues
try:
response = client.responses.create(...)
except openai.AuthenticationError as e:
print(f"OpenAI Authentication failed: {e}")
except Exception as e:
if "unauthorized" in str(e).lower():
print("FlowMattic token may be invalid or expired")
Connection Issues
# Handle connection problems
import requests
from requests.exceptions import ConnectionError, Timeout
def test_flowmattic_connection(server_url: str, token: str) -> bool:
"""Test if FlowMattic MCP server is accessible"""
try:
headers = {"Authorization": f"Bearer {token}"}
response = requests.get(f"{server_url}/health", headers=headers, timeout=10)
return response.status_code == 200
except (ConnectionError, Timeout):
return False
Rate Limiting
import time
from openai import RateLimitError
def execute_with_retry(client, **kwargs):
"""Execute request with retry logic for rate limits"""
max_retries = 3
for attempt in range(max_retries):
try:
return client.responses.create(**kwargs)
except RateLimitError:
if attempt == max_retries - 1:
raise
wait_time = (2 ** attempt) * 1 # Exponential backoff
time.sleep(wait_time)
Debugging Tips
-
Enable verbose logging:
import logging logging.basicConfig(level=logging.DEBUG)
-
Test components separately:
- Test OpenAI API access independently
- Verify FlowMattic MCP server connectivity
- Validate authentication tokens
-
Monitor API usage:
- Track OpenAI API usage and costs
- Monitor FlowMattic server performance
- Log successful and failed requests
Security Best Practices
API Key Management
- Store API keys in environment variables or secure vaults
- Never commit API keys to version control
- Rotate keys regularly
- Use different keys for development and production
Token Security
- Secure FlowMattic authentication tokens
- Implement token refresh mechanisms
- Monitor for unauthorized API usage
- Use HTTPS for all communications
Access Control
# Implement access control for sensitive operations
ALLOWED_OPERATIONS = [
"get_posts",
"create_workflow",
"send_notification"
]
def validate_operation(instruction: str) -> bool:
"""Validate if the requested operation is allowed"""
# Implement your validation logic
return any(op in instruction.lower() for op in ALLOWED_OPERATIONS)
Performance Optimization
Caching Strategies
import functools
import time
@functools.lru_cache(maxsize=100)
def cached_flowmattic_request(instruction_hash: str):
"""Cache FlowMattic responses for repeated requests"""
# Implementation depends on your caching strategy
pass
Batch Operations
def batch_flowmattic_operations(instructions: List[str]) -> List[Dict]:
"""Process multiple FlowMattic operations efficiently"""
results = []
for instruction in instructions:
result = integration.execute_flowmattic_task(instruction)
results.append(result)
time.sleep(0.1) # Rate limiting
return results
Async Processing
import asyncio
import aiohttp
async def async_flowmattic_request(instruction: str):
"""Asynchronous FlowMattic request processing"""
# Implement async version for high-throughput applications
pass
Monitoring and Analytics
Request Tracking
import uuid
from datetime import datetime
class RequestTracker:
def __init__(self):
self.requests = []
def log_request(self, instruction: str, response: Dict):
"""Log request for analytics"""
self.requests.append({
"id": str(uuid.uuid4()),
"timestamp": datetime.now(),
"instruction": instruction,
"success": "error" not in response,
"response_size": len(str(response))
})
Performance Metrics
def calculate_metrics(requests: List[Dict]) -> Dict:
"""Calculate performance metrics"""
total_requests = len(requests)
successful_requests = sum(1 for r in requests if r["success"])
success_rate = successful_requests / total_requests if total_requests > 0 else 0
return {
"total_requests": total_requests,
"success_rate": success_rate,
"average_response_time": calculate_avg_response_time(requests)
}
Additional Resources
- OpenAI API Documentation - Complete OpenAI API reference
- FlowMattic MCP Documentation - FlowMattic MCP integration guide
- MCP Protocol Specification - Technical details about Model Context Protocol
- OpenAI Python SDK - Official Python library documentation
Next Steps
After successfully integrating OpenAI API with FlowMattic MCP server:
- Explore advanced AI applications - Build conversational interfaces for workflow management
- Implement custom tools - Create specialized FlowMattic tools for your specific use cases
- Scale your integration - Deploy to production with proper monitoring and error handling
- Build user interfaces - Create web or mobile apps that leverage this integration
- Share your experience - Contribute to the community with your implementations and use cases
Your OpenAI-powered applications can now seamlessly interact with FlowMattic’s automation capabilities, opening up endless possibilities for AI-driven workflow management and automation.