Filly Forms MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Filly Forms MCP Serverlist all form types"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Filly Forms MCP Server
NPX-runnable MCP server that exposes the Filly Forms REST API as MCP tools for AI agents.
Quick Start
Install from GitHub
# Install directly from GitHub (recommended)
npx -y git+https://github.com/eneopt/filly-forms-mcp.git
# Or with SSH
npx -y git+ssh://git@github.com/eneopt/filly-forms-mcp.gitDevelopment Setup
# Clone the source repository
git clone [source-repo-url]
# Install dependencies
npm install
# Build
npm run build
# Run locally
npm startRelated MCP server: Zoho CRM MCP Server
Usage with Claude Code
Add to your .mcp.json:
{
"mcpServers": {
"filly-forms": {
"command": "npx",
"args": ["-y", "git+https://github.com/eneopt/filly-forms-mcp.git"],
"env": {
"FILLY_API_URL": "http://localhost:8000/api/v1"
}
}
}
}Or use local development version (for contributing):
{
"mcpServers": {
"filly-forms": {
"command": "node",
"args": ["/home/b4zs/workspace/w/jsonforms/packages/mcp-server/dist/index.js"],
"env": {
"FILLY_API_URL": "http://localhost:8000/api/v1",
"FILLY_API_USERNAME": "your-username",
"FILLY_API_PASSWORD": "your-password"
}
}
}
}Environment Variables
FILLY_API_URL- Base URL of the Filly Forms REST API (default:http://localhost:8000/api/v1)FILLY_API_USERNAME- HTTP Basic Auth username (optional, only if API requires authentication)FILLY_API_PASSWORD- HTTP Basic Auth password (optional, only if API requires authentication)
Available Tools
list_form_types
List all form types in the system with their schemas and metadata.
Parameters:
name(optional): Filter by form type name (partial match)
Returns:
{
"types": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Invoice",
"version": 3,
"status": "published"
}
]
}create_record
Create a new record of a given form type with validation.
Parameters:
typeId(required): UUID of the form typedata(required): Record data (validated against type's JSON schema)name(optional): Record name
Returns:
{
"id": "uuid",
"version": 1
}get_record
Get a record by ID, optionally at a specific version.
Parameters:
id(required): Record UUIDversion(optional): Version number (omit for latest)
Returns:
{
"id": "uuid",
"name": "Record Name",
"typeId": "uuid",
"data": { ... },
"version": 2,
"createdAt": "2026-07-21T06:00:00+00:00"
}update_record
Update an existing record with optimistic locking.
Parameters:
id(required): Record UUIDdata(required): New record dataexpectedVersion(required): Expected current version for optimistic lockingname(optional): New name
Returns:
{
"id": "uuid",
"version": 3
}preview_data
Preview ad-hoc data through a template to see rendered HTML output.
Parameters:
typeId(required): Form type UUID for schema validationdata(required): Data to previewtemplateId(optional): Template UUID (uses default if omitted)name(optional): Name for the preview
Returns:
{
"html": "<html>...</html>"
}upload_document
Upload a document for AI extraction (long-running operation with polling).
Parameters:
name(required): Document filenamefileContent(required): Base64-encoded document contenttargetTypeId(optional): Extract into existing type (data-only mode)pollInterval(optional): Seconds between polls (default: 2)maxWait(optional): Maximum seconds to wait (default: 300)
Returns:
{
"uploadId": "uuid",
"status": "completed",
"logs": [...],
"typeId": "uuid",
"recordId": "uuid",
"targetTypeId": null
}Architecture
This MCP server is a stateless HTTP proxy:
MCP Protocol (stdio) ← Claude Code communicates here
HTTP REST API ← This server forwards requests here
Symfony Backend ← Handles business logic
Why this approach?
✅ Separation of concerns: MCP server is just a protocol adapter
✅ Standard MCP: Uses stdio (recommended for CLI clients)
✅ No duplication: All business logic stays in the Symfony app
✅ Easy debugging: Test REST API with curl, MCP with Claude
✅ NPX-runnable: Zero installation for users
Development
# Watch mode
npm run dev
# Type checking
npm run typecheck
# Build
npm run buildLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
Alicense-qualityDmaintenanceEnables LLMs to convert documents to Google Forms, edit questions, list and publish forms, and run AI form assistant tools through the Formswrite API.MIT- FlicenseBqualityDmaintenanceExposes Zoho CRM v6 REST API as structured tools for LLM agents via MCP, enabling CRUD operations, search, COQL queries, and more.113
- Alicense-qualityDmaintenanceAllows AI assistants to interact with Frappe applications through the official REST API, enabling document CRUD operations, schema handling, and detailed API instructions.1442ISC
- Flicense-qualityDmaintenanceEnables form management, response handling, and analytics via the Fillout.io API, allowing users to create, update, and fetch forms and submissions through natural language.
Related MCP Connectors
Give AI agents access to form submissions — read, search, update, and process file attachments.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eneopt/filly-forms-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server