-
Notifications
You must be signed in to change notification settings - Fork 547
Open
Description
The firecrawl_search tool’s OpenAPI specification defines sources as an array of objects with a required type field:
"firecrawl_search_form_model_sources_item_model": {
"properties": {
"type": { "type": "string", "title": "Type" }
},
"type": "object",
"required": ["type"]
}However, the tool’s description text in src/index.ts shows usage examples that use a string array instead:
"sources": ["web"]This mismatch causes LLMs and clients that rely on the example (like OpenWebUI or LangChain tool integrations) to send ["web"], which leads to 422 validation errors:
HTTP error 422: {"detail":[{"type":"model_attributes_type","loc":["body","sources",0],"msg":"Input should be a valid dictionary or object to extract fields from","input":"web"}]}
Here is a link to the line in question:
firecrawl-mcp-server/src/index.ts
Line 391 in 8d24d6a
| "sources": [ |
I think there are more examples further down that also have the same problem.
Expected behavior:
The examples in the tool description should match the actual schema and use the object form:
"sources": [ { "type": "web" } ]Possible improvements:
- Update the example JSON blocks in
src/index.tsforfirecrawl_searchto use the object form. - Optionally make the Zod schema backward compatible by accepting both
List[str]andList[{type:str}]to avoid breaking older clients.
Environment:
- firecrawl-mcp version: 3.4.0
- mcpo CLI version: 0.0.17
- Python base image: 3.11-slim
- Observed in OpenWebUI when connected through mcpo as a tool server
clx69
Metadata
Metadata
Assignees
Labels
No labels