Skip to main content
Glama
mysleekdesigns

CrawlForge MCP Server

extract_with_llm

Read-only

Extract structured data from URLs or text using natural-language prompts, with optional LLM provider selection.

Instructions

Extract data from a URL or text using a natural-language prompt. Defaults to a local Ollama model (http://localhost:11434, no API key required) and picks an installed model itself; pass model to choose one, or provider: "openai" or "anthropic" with the matching API key to use a cloud model instead. Not for known selectors (scrape_structured) or a schema-shaped result (extract_structured). Call list_ollama_models only when a model name is rejected. Cost: 3 credits plus your LLM provider's own charge.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL to fetch and extract from (one of url/content required)
modelNoOverride the model. For ollama, pass a name returned by list_ollama_models (e.g. 'llama3.2', 'qwen2.5:7b'). Defaults: openai='gpt-4o-mini', anthropic='claude-haiku-4-5-20251001', ollama='llama3.2' or $OLLAMA_DEFAULT_MODEL.
promptYesNatural-language extraction instruction
schemaNoOptional JSON-schema for output shape (used as Ollama structured-outputs format when provider is 'ollama')
contentNoPre-fetched text to extract from (one of url/content required)
providerNoLLM provider. Defaults to 'ollama' (local, no key, http://localhost:11434). Use 'openai' or 'anthropic' for cloud models (requires the matching API key).auto
maxTokensNoMaximum output tokens
user_agentNoOverride the outbound User-Agent. CrawlForge identifies itself honestly by default; use this only for targets you have your own agreement with.
respect_robotsNoRespect the target site's robots.txt (default: true). Setting this to false is honoured, returns a warning in the response, and is recorded against your API key — it is your decision, not a silent default.
verify_numbersNoNumeric provenance guard (default: true): every price or numeric value the LLM returns must appear literally in the page source, else it is returned as null with a reason in `provenance.unverified`. Set false to get the model's raw numbers back, including ones it derived (a count, a sum, a total) rather than read off the page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv6.0.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / schema / propertyNames
      Added value: +{
      +  "type": "string"
      +}
  2. Changed3 schema fields changedv5.4.0
    • addedInput schema / properties / respect_robots
      Added value: +{
      +  "description": "Respect the target site's robots.txt (default: true). Setting this to false is honoured, returns a warning in the response, and is recorded against your API key — it is your decision, not a silent default.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / user_agent
      Added value: +{
      +  "description": "Override the outbound User-Agent. CrawlForge identifies itself honestly by default; use this only for targets you have your own agreement with.",
      +  "type": "string"
      +}
    • addedInput schema / properties / verify_numbers
      Added value: +{
      +  "default": true,
      +  "description": "Numeric provenance guard (default: true): every price or numeric value the LLM returns must appear literally in the page source, else it is returned as null with a reason in `provenance.unverified`. Set false to get the model's raw numbers back, including ones it derived (a count, a sum, a total) rather than read off the page.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changedv5.0.4
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  4. First observedv4.10.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context beyond annotations: default Ollama local endpoint with no API key, automatic model selection, cloud providers needing matching API keys, and cost (3 credits plus the provider's own charge). No contradiction with annotations; the extra context justifies a score above baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but every sentence earns its place: purpose, default behavior, model/provider overrides, exclusions, when to call a sibling, and cost. The core purpose is front-loaded, and there is no fluff or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters and no output schema, the description covers the key invocation decisions: required prompt, url/content mutual requirement, provider/model defaults, and when to use alternatives. It omits the return-value shape, but the absence of an output schema makes this a minor gap; the essential behavioral and routing information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents every parameter. The description adds meaning beyond the schema by specifying default model names per provider, explaining that 'auto' resolves to Ollama, and clarifying that url/content are mutually required. This is genuinely additive to the structured field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Extract data from a URL or text using a natural-language prompt.' It explicitly names the siblings it is not for ('Not for known selectors (scrape_structured) or a schema-shaped result (extract_structured)'), so an agent can distinguish it from extract_structured and scrape_structured without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use context: use for natural-language extraction from URL/text, not for selector-based scraping or schema-shaped results, and call list_ollama_models only when a model name is rejected. Provider selection (ollama vs openai/anthropic) and API key requirements are also made clear, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.