Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug]: MCP "ask" tool exposes an empty parameters schema ({"type":"object"} with no "properties"), rejected by strict tool-calling clients

Abierto
#2,207 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
fastapi, python
Área
api

Línea de trabajo

Start at the @app.get("/ask") endpoint and the attach_mcp registration path, then inspect the /mcp/schema output for the ask tool. Ensure its object parameters schema includes a properties key while preserving context_type, query, score_ratio, and max_results, and verify that strict MCP clients accept the generated schema.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

🐞 Bug 🩺 Needs Triage
crawl4ai version

0.9.2

Expected Behavior

Every MCP tool exposed by the mcp server should publish a valid JSON-Schema for its parameters. For an object-type schema that means including a properties key (even if empty). Strict OpenAI-compatible tool-calling clients require parameters.properties to be present, otherwise the fail to load.

Current Behavior

The ask MCP tool publishes a parameters schema of exactly:

{ "type": "object" }

with no properties key. Strict validators reject it. LM Studio or LibreChat, for example, returns a 400 before the request even runs:

400 [{"code":"invalid_type","expected":"object","received":"undefined",
      "path":[<n>,"function","parameters","properties"],"message":"Required"}]

Every other MCP tool (md, html, screenshot, pdf, crawl) works, because they are POST endpoints backed by a Pydantic body model and therefore get a fully-populated properties schema. ask is the only tool defined as @app.get("/ask") using FastAPI Query(...) params (context_type, query, score_ratio, max_results). The MCP bridge appears to derive the input schema from the Pydantic request body only, so a query-parameter endpoint yields an empty object schema. Net effect: the ask tool is unusable with any MCP client that strictly validates tool schemas, and there is no config/env flag to disable just that tool (attach_mcp registers all @mcp_tool endpoints unconditionally).

Is this reproducible?

Yes

Inputs Causing the Bug
- Any OpenAI-compatible MCP client that validates tool JSON-Schemas (e.g. LM Studio)
- Tool: ask  (function name "ask_mcp_crawl4ai" in clients)
- Server: official Crawl4AI Docker deployment, MCP over /mcp/sse (or HTTP)
Steps to Reproduce
1. Run the Crawl4AI Docker server (0.9.2) with the MCP endpoint enabled.
2. GET /mcp/schema and inspect the "ask" tool — its parameters are {"type":"object"} with no "properties".
3. Connect a strict OpenAI-compatible client (LM Studio, Librechat) to the MCP endpoint, enabling the crawl4ai tools.
4. Send any chat completion that includes the tool list.
5. Observe a 400: parameters.properties "Required" for the ask tool; the request never runs.
Code snippets
Not applicable
OS

Linux (official Crawl4AI Docker image)

Python version

unclecode/crawl4ai:0.9.2 image (Python 3.x)

Browser

N/A

Browser version

N/A

Error logs & Screenshots (if applicable)

No response

Lenguaje dominante
Python
Estrellas
84.5k
Forks
8.7k
Merge medio
3 d 9 h
PR fusionados (30 d)
17

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de unclecode/crawl4ai

Todos los issues de unclecode/crawl4ai

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.