Help us improve
Share bugs, ideas, or general feedback.
From mcp-companion
Downloads Qlerify data such as workflows, OpenAPI specs, entities, and domain events to local JSON/YAML files via curl + jq. Bypasses slow AI-processed MCP tools for 100x faster large exports.
npx claudepluginhub qlerify/qlerify-plugins --plugin mcp-companionHow this skill is triggered — by the user, by Claude, or both
Slash command
/mcp-companion:downloadThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**CRITICAL:** When saving ANY Qlerify data to a file, use `curl + jq` instead of MCP tools. MCP responses pass through
Defines the shared routing ladder, result presentation contract, filesystem safety rules, and Tier 1-to-Tier 3 fallback policy for Retriever tasks.
Creates, updates, deletes, and manages Fabric Dataflows Gen2 artifacts via CLI (az rest/curl) using Power Query M mashup definitions. Supports inline definitions, query modification, connection binding, refresh triggers with parameter overrides, and CI/CD definition export/import.
Generates Dify workflow DSL files (YAML/JSON) from natural language descriptions, with correct node schemas, edges, and layout for direct import.
Share bugs, ideas, or general feedback.
CRITICAL: When saving ANY Qlerify data to a file, use curl + jq instead of MCP tools. MCP responses pass through
AI context which takes minutes for large data. Shell pipes take seconds.
cat ~/.claude.json 2>/dev/null | jq -r '.mcpServers.qlerify // empty'
Extract the url and headers.x-api-key.
curl -s "$MCP_URL" \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "TOOL_NAME",
"arguments": { ...ARGS... }
}
}' | jq -r '.result.content[0].text | fromjson' > output.json
curl -s "$MCP_URL" -H "x-api-key: $API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_workflow","arguments":{"workflowId":"...","projectId":"..."}}}' \
| jq -r '.result.content[0].text | fromjson | .specification' > workflow.json
curl -s "$MCP_URL" -H "x-api-key: $API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_openapi_spec","arguments":{"workflowId":"...","projectId":"...","boundedContext":"..."}}}' \
| jq -r '.result.content[0].text' > swagger.yaml
curl -s "$MCP_URL" -H "x-api-key: $API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_workflow","arguments":{"workflowId":"...","projectId":"..."}}}' \
| jq -r '.result.content[0].text | fromjson | .specification.schemas.entities' > entities.json
curl -s "$MCP_URL" -H "x-api-key: $API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_workflow","arguments":{"workflowId":"...","projectId":"..."}}}' \
| jq -r '.result.content[0].text | fromjson | .specification.domainEvents' > events.json
| Data size | Method | Example |
|---|---|---|
| Small (< 50 lines) | MCP tool | list_workflows |
| Large (> 50 lines) | curl + jq | get_workflow, generate_openapi_spec |
| Any "save to file" | curl + jq | Always, regardless of size |
Use MCP tools for small lookups:
list_workflows → get workflow ID and project IDThen use curl for the actual data fetch.