Both connectors declared `mcp_config: {command: "npx", args: ["-y", "<pkg>"]}`
and shipped no code at all. Skald treats a mcp_local `args[0]` as the *name of
the file to run*, not as an argument: install stores `script_path = "<id>/-y"`
and global_enable launches `npx /…/connectors/<id>/-y`, a path that does not
exist. The server never answered `initialize`, so start_server failed — and
since global_enable still returns 200 with an `error` in the body, the UI showed
the connector as enabled while `render_mcp_list` (built from the live runtime)
left it out of the agent's system context entirely.
Ship a two-file wrapper instead: a package.json pinning the upstream package
(mcp-fetch-server@1.1.2, firecrawl-mcp@3.23.7) and an index.js importing it for
its side effect, so `node index.js` is a real local_script and
ensure_installed_host installs the deps beside it. No node_modules, no lockfile.
Also: drop the legacy `launch_command` / top-level `transport` / `dependencies`
fields; drop firecrawl's inert `mcp_config.env` placeholder (same case as gmaps
— tokens are only substituted in the URL); add firecrawl_developer_search to
firecrawl's tools[] and API_KEY to its requires; realign manifest and fragment
versions to 5 / 1.1.0 (they were 2 vs 4, so no Update badge could ever appear).
Verified end-to-end against the shipped files by reproducing Skald's own path:
`npm ci || npm install --omit=dev` then `node <abs>/index.js` — initialize,
tools/list and a real tools/call, JSON-RPC only on stdout.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
139 lines
3.0 KiB
JSON
139 lines
3.0 KiB
JSON
{
|
|
"id": "firecrawl",
|
|
"name": "Firecrawl",
|
|
"type": "mcp_local",
|
|
"scope": "global",
|
|
"icon_small": "firecrawl/icon_sm.png",
|
|
"icon_large": "firecrawl/icon_lg.png",
|
|
"user_description": "Web scraping, crawling, search, deep research, and autonomous browsing \u2014 extract content from any website.",
|
|
"requires": [
|
|
"NODE",
|
|
"API_KEY"
|
|
],
|
|
"tags": [
|
|
"scraping",
|
|
"crawling",
|
|
"search",
|
|
"mcp",
|
|
"local",
|
|
"browser",
|
|
"research"
|
|
],
|
|
"auth": {
|
|
"type": "api_key"
|
|
},
|
|
"folder": "firecrawl",
|
|
"version": 5,
|
|
"version_string": "1.1.0",
|
|
"version_release_date": "2026-08-10",
|
|
"tools": [
|
|
{
|
|
"name": "firecrawl_scrape",
|
|
"display_name": "Scrape URL"
|
|
},
|
|
{
|
|
"name": "firecrawl_map",
|
|
"display_name": "Map Site"
|
|
},
|
|
{
|
|
"name": "firecrawl_search",
|
|
"display_name": "Web Search"
|
|
},
|
|
{
|
|
"name": "firecrawl_developer_search",
|
|
"display_name": "Developer Search"
|
|
},
|
|
{
|
|
"name": "firecrawl_search_feedback",
|
|
"display_name": "Search Feedback"
|
|
},
|
|
{
|
|
"name": "firecrawl_feedback",
|
|
"display_name": "Feedback"
|
|
},
|
|
{
|
|
"name": "firecrawl_crawl",
|
|
"display_name": "Crawl Site"
|
|
},
|
|
{
|
|
"name": "firecrawl_check_crawl_status",
|
|
"display_name": "Check Crawl Status"
|
|
},
|
|
{
|
|
"name": "firecrawl_extract",
|
|
"display_name": "Extract Data"
|
|
},
|
|
{
|
|
"name": "firecrawl_agent",
|
|
"display_name": "Research Agent"
|
|
},
|
|
{
|
|
"name": "firecrawl_agent_status",
|
|
"display_name": "Agent Status"
|
|
},
|
|
{
|
|
"name": "firecrawl_interact",
|
|
"display_name": "Interact with Page"
|
|
},
|
|
{
|
|
"name": "firecrawl_interact_stop",
|
|
"display_name": "Stop Interact"
|
|
},
|
|
{
|
|
"name": "firecrawl_parse",
|
|
"display_name": "Parse"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_create",
|
|
"display_name": "Create Monitor"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_list",
|
|
"display_name": "List Monitors"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_get",
|
|
"display_name": "Get Monitor"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_update",
|
|
"display_name": "Update Monitor"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_delete",
|
|
"display_name": "Delete Monitor"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_run",
|
|
"display_name": "Run Monitor"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_checks",
|
|
"display_name": "List Checks"
|
|
},
|
|
{
|
|
"name": "firecrawl_monitor_check",
|
|
"display_name": "Get Check"
|
|
},
|
|
{
|
|
"name": "firecrawl_research_search_papers",
|
|
"display_name": "Search Papers"
|
|
},
|
|
{
|
|
"name": "firecrawl_research_inspect_paper",
|
|
"display_name": "Inspect Paper"
|
|
},
|
|
{
|
|
"name": "firecrawl_research_related_papers",
|
|
"display_name": "Related Papers"
|
|
},
|
|
{
|
|
"name": "firecrawl_research_read_paper",
|
|
"display_name": "Read Paper"
|
|
},
|
|
{
|
|
"name": "firecrawl_research_search_github",
|
|
"display_name": "Search GitHub"
|
|
}
|
|
]
|
|
} |