Skip to main content
Glama
ClawyPro

Clawy MCP Server

by ClawyPro

firecrawl_scrape

Extract clean, structured content from any URL with JavaScript rendering and bypass common blocks. Returns markdown optimized for LLM processing.

Instructions

Scrape a single URL and extract clean, structured content. Handles JavaScript rendering and bypasses common blocks. Returns markdown optimized for LLMs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesURL to scrape
formatsNoOutput formats (default: ['markdown'])
onlyMainContentNoExtract only main content, skip nav/footer (default true)
waitForNoWait milliseconds for JS rendering

Implementation Reference

  • Definition and registration of the 'firecrawl_scrape' tool.
    {
      name: "firecrawl_scrape",
      description: "Scrape a single URL and extract clean, structured content. Handles JavaScript rendering and bypasses common blocks. Returns markdown optimized for LLMs.",
      inputSchema: z.object({
        url: z.string().describe("URL to scrape"),
        formats: z.array(z.enum(["markdown", "html", "rawHtml", "links", "screenshot"])).optional()
          .describe("Output formats (default: ['markdown'])"),
        onlyMainContent: z.boolean().optional().describe("Extract only main content, skip nav/footer (default true)"),
        waitFor: z.number().optional().describe("Wait milliseconds for JS rendering"),
      }),
      endpoint: "/v1/firecrawl/scrape",
    },
  • The generic handler for all registered tools, including firecrawl_scrape. It uses gatewayRequest to fetch data from the API endpoint defined in tool configurations.
    // Register all tools
    for (const tool of allTools) {
      server.tool(
        tool.name,
        tool.description,
        tool.inputSchema.shape,
        async (params) => {
          const method = tool.method || "POST";
          const result = await gatewayRequest(method, tool.endpoint, params as Record<string, unknown>);
    
          if (result.error) {
            return {
              content: [{ type: "text" as const, text: `Error (${result.status}): ${result.error}` }],
              isError: true,
            };
          }
    
          const text = typeof result.data === "string"
            ? result.data
            : JSON.stringify(result.data, null, 2);
    
          return {
            content: [{ type: "text" as const, text }],
          };
        },
      );

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

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