Skip to main content
Glama
aiChat.ts1.56 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { randomUUID } from "crypto"; import { z } from "zod/v3"; const BASE_URL = "https://developers.webflow.com/"; const X_FERN_HOST = "developers.webflow.com"; export function registerAiChatTools(server: McpServer) { server.registerTool( "ask_webflow_ai", { title: "Ask Webflow AI", description: "Ask Webflow AI about anything related to Webflow API.", inputSchema: z.object({ message: z.string() }), }, async ({ message }) => { const result = await postChat(message); return { content: [{ type: "text", text: result }], }; } ); } async function postChat(message: string) { const response = await fetch(`${BASE_URL}/api/fern-docs/search/v2/chat`, { method: "POST", headers: { "content-type": "application/json", "x-fern-host": X_FERN_HOST, }, body: JSON.stringify({ messages: [{ role: "user", parts: [{ type: "text", text: message }] }], conversationId: randomUUID(), url: BASE_URL, source: "mcp", }), }); const result = await streamToString(response); return result; } async function streamToString(response: Response) { const reader = response.body?.getReader(); if (!reader) { throw new Error("!reader"); } let result = ""; while (true) { const { done, value } = await reader.read(); if (done) break; // Convert the Uint8Array to a string and append result += new TextDecoder().decode(value); } return result; }

Latest Blog Posts

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/webflow/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server