formflow-mcp-server

InslyAI/formflow-mcp-server

3.2

If you are the rightful owner of formflow-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The FormFlow MCP Server is a production-ready server designed to transform FormFlow document processing APIs into a Model Context Protocol (MCP) server with real-time streaming capabilities.

Tools
  1. get_submission

    List submissions with pagination

  2. post_submission

    Create new document submission

  3. get_template

    List available templates

  4. post_template

    Create custom templates

  5. post_ai_generateSubmissionMetadata

    Extract document metadata

FormFlow MCP Server

๐Ÿš€ Production-ready MCP server for FormFlow API with HTTP/SSE transport

ยฉ 2025 Insly.com. All rights reserved. This software is proprietary to Insly.com.

Transform your FormFlow document processing API into a powerful Model Context Protocol (MCP) server that can be accessed remotely by any MCP client with real-time streaming capabilities.

โœจ Features

  • ๐ŸŒ Remote Access: HTTP/SSE transport for network-accessible MCP server
  • โšก Real-time Streaming: Server-Sent Events for live responses
  • ๐Ÿ”„ Multi-client Support: Concurrent session handling with isolation
  • ๐Ÿ›ก๏ธ Production Ready: Security, monitoring, health checks, and error handling
  • ๐Ÿณ Easy Deployment: Docker, Kubernetes, and cloud platform support
  • ๐Ÿ“š 35+ FormFlow Tools: Complete API coverage including AI processing
  • ๐Ÿ”ง Type Safe: Full TypeScript and Python type annotations
  • ๐Ÿ“Š Observability: Structured logging, metrics, and health monitoring

๐Ÿš€ Quick Start

Installation

pip install formflow-mcp-server

Basic Usage

# Set your FormFlow credentials
export FORMFLOW_CLIENT_ID="your_client_id"
export FORMFLOW_CLIENT_SECRET="your_client_secret"

# Start the server
formflow-mcp-server

Server starts at http://localhost:8000 with MCP endpoints and real-time SSE streaming.

Docker

docker run -p 8000:8000 \
  -e FORMFLOW_CLIENT_ID=your_client_id \
  -e FORMFLOW_CLIENT_SECRET=your_client_secret \
  formflow/mcp-server

๐Ÿ“– Documentation

๐Ÿ› ๏ธ Available FormFlow Tools

Document & Template Management

  • get_submission - List submissions with pagination
  • post_submission - Create new document submission
  • get_template - List available templates
  • post_template - Create custom templates

AI-Powered Processing

  • post_ai_generateSubmissionMetadata - Extract document metadata
  • post_ai_extractWithGemini - Gemini-based data extraction
  • post_ai_atomic_extract - Atomic extraction strategy
  • get_ai_strategies - List available AI processing strategies

File Operations

  • get_file_by_id - Retrieve file details
  • get_file_by_id_view - Download/view files
  • delete_file_by_id - Remove files

Workflow & Integration

  • post_processing - Start document processing workflows
  • post_webhook_subscription - Set up event notifications
  • get_webhook_subscriptions - Manage webhook integrations

๐ŸŒ Client Libraries

Python Client

from formflow_mcp_server.clients import FormFlowMCPClient

async with FormFlowMCPClient("http://localhost:8000") as client:
    # List available templates
    templates = await client.call_tool("get_template", {})

    # Process document with AI
    result = await client.call_tool(
        "post_ai_generateSubmissionMetadata",
        {"submissionId": "123", "model": "claude"}
    )

JavaScript Client

import { FormFlowMCPClient } from "formflow-mcp-client";

const client = new FormFlowMCPClient("http://localhost:8000");
await client.connect();

// Real-time document processing
const result = await client.callTool("post_submission", {
  name: "Invoice Processing",
  templateId: 42,
});

Browser Integration

<script src="https://cdn.jsdelivr.net/npm/formflow-mcp-client/dist/browser.js"></script>
<script>
  const client = new FormFlowMCP.Client("http://localhost:8000");
  // Full MCP integration in the browser
</script>

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    HTTP/SSE    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   MCP Client    โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚ FormFlow MCP Server  โ”‚
โ”‚  (Any Client)   โ”‚                โ”‚                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                            โ”‚
                                            โ”‚ REST API
                                            โ–ผ
                                   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                   โ”‚   FormFlow API       โ”‚
                                   โ”‚ (Document Processing) โ”‚
                                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key Components

  • HTTP/SSE Transport: Multi-client session management
  • MCP Protocol Handler: Standard MCP request/response handling
  • FormFlow Integration: API client with authentication
  • Session Manager: Concurrent client isolation
  • Health & Monitoring: Observability and reliability

โš™๏ธ Configuration

Environment Variables

# FormFlow API Configuration
FORMFLOW_CLIENT_ID=your_client_id
FORMFLOW_CLIENT_SECRET=your_client_secret
FORMFLOW_API_URL=https://develop.formflow-dev.net/api

# Server Configuration
HOST=0.0.0.0
PORT=8000
LOG_LEVEL=INFO

# Security
CORS_ORIGINS=*
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60

# Monitoring (Optional)
ENABLE_METRICS=true
METRICS_PATH=/metrics

Configuration File

# formflow-mcp-config.yaml
server:
  host: 0.0.0.0
  port: 8000
  workers: 4

formflow:
  api_url: https://develop.formflow-dev.net/api
  timeout: 30
  retry_attempts: 3

security:
  cors_origins: ["*"]
  rate_limit:
    requests: 100
    window: 60

logging:
  level: INFO
  format: json

monitoring:
  enable_metrics: true
  health_check_interval: 30

๐Ÿš€ Deployment

Docker Compose

version: "3.8"
services:
  formflow-mcp-server:
    image: formflow/mcp-server:latest
    ports:
      - "8000:8000"
    environment:
      FORMFLOW_CLIENT_ID: ${FORMFLOW_CLIENT_ID}
      FORMFLOW_CLIENT_SECRET: ${FORMFLOW_CLIENT_SECRET}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: formflow-mcp-server
spec:
  replicas: 3
  selector:
    matchLabels:
      app: formflow-mcp-server
  template:
    metadata:
      labels:
        app: formflow-mcp-server
    spec:
      containers:
        - name: formflow-mcp-server
          image: formflow/mcp-server:latest
          ports:
            - containerPort: 8000
          env:
            - name: FORMFLOW_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  name: formflow-secrets
                  key: client-id

Cloud Platforms

  • Coolify: See Coolify Deployment section
  • Railway: railway up
  • Render: render deploy
  • Fly.io: fly deploy
  • Google Cloud Run: gcloud run deploy
  • AWS ECS: CloudFormation templates included

๐Ÿ” Security

  • Authentication: FormFlow JWT token management
  • Session Isolation: Per-client session security
  • CORS Protection: Configurable cross-origin policies
  • Rate Limiting: Request throttling and abuse prevention
  • Input Validation: Comprehensive request validation
  • Security Headers: OWASP recommended headers

๐Ÿ“Š Monitoring

Health Checks

curl http://localhost:8000/health

Metrics (Prometheus)

curl http://localhost:8000/metrics

Logging

Structured JSON logging with correlation IDs:

{
  "timestamp": "2024-01-15T10:30:00Z",
  "level": "INFO",
  "message": "MCP tool called",
  "session_id": "abc123",
  "tool_name": "get_submission",
  "duration_ms": 150
}

๐Ÿงช Testing

# Install with test dependencies
pip install formflow-mcp-server[test]

# Run test suite
pytest

# With coverage
pytest --cov=formflow_mcp_server

# Integration tests
pytest tests/integration/

# End-to-end tests
pytest tests/e2e/

๐Ÿ”’ Proprietary Software

This software is proprietary to Insly.com and is not open source. All rights reserved.

For internal development:

  1. Create feature branch (git checkout -b feature/amazing-feature)
  2. Commit changes (git commit -m 'Add amazing feature')
  3. Push to branch (git push origin feature/amazing-feature)
  4. Create internal Pull Request for review

๐Ÿ“ License

ยฉ 2025 Insly.com. All rights reserved.

This is proprietary software owned by Insly.com. Unauthorized copying, modification, distribution, or use of this software, via any medium, is strictly prohibited.


**ยฉ 2025 Insly.com **