mcp

mcp

0

An MCP server that generates forms and surveys using the Weavely API.

Weavely MCP โ€“ Remote MCP Server for Form Generation

This project sets up a Model Context Protocol (MCP) server using the @modelcontextprotocol/sdk, hosted on Cloudflare Workers, to programmatically generate forms using the Weavely API.


๐Ÿš€ Features

  • Deploys an auth-less MCP server on Cloudflare Workers
  • Exposes a tool: create-form to generate forms via prompt
  • Uses axios for external API calls to weavely.ai
  • Built using TypeScript and the official @modelcontextprotocol/sdk

๐Ÿ› ๏ธ Technologies Used

  • ๐Ÿง  MCP SDK: @modelcontextprotocol/sdk
  • ๐ŸŒฉ๏ธ Cloudflare Workers + Wrangler
  • ๐Ÿ›ก Type-safe schema validation with zod
  • ๐ŸŒ HTTP requests via axios
  • ๐Ÿงน Formatting & linting with biome

๐Ÿ“ฆ Installation

git clone https://github.com/weavely/mcp.git
cd mcp
npm install

๐Ÿงช Development

Start a development server locally using Wrangler:

npm run dev

๐Ÿ“ค Deployment

Deploy to Cloudflare Workers:

npm run deploy

Or use the Cloudflare Deploy Button:

Deploy to Workers


๐Ÿ“บ Demo

Curious how it works? Watch a short demo here:

โ–ถ๏ธ https://youtu.be/C1jZBrGV6jE


๐Ÿ”ง Tool: create-form

This MCP agent defines one tool:

  • Name: create-form
  • Description: Create a new Weavely form.
  • Input Schema:
    {
      name?: string;
      prompt: string;
    }
    
  • Behavior: Sends a POST request to https://api.weavely.ai/v1/forms/generate and returns the form content.

๐Ÿงฐ Scripts

ScriptDescription
devStart development server
deployDeploy to Cloudflare
formatFormat code using Biome
lint:fixFix linting issues via Biome
cf-typegenGenerate Cloudflare bindings

๐Ÿ—‚ Folder Structure

weavely-mcp/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ index.ts           # Main MCP logic and tool registration
โ”œโ”€โ”€ worker-configuration.d.ts
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ wrangler.jsonc         # Cloudflare deployment config
โ”œโ”€โ”€ tsconfig.json
โ””โ”€โ”€ .vscode/