Qingflow MCP (CRUD)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QINGFLOW_BASE_URL | Yes | Base URL of the Qingflow API | |
| QINGFLOW_EXPORT_DIR | No | Directory for exports | /tmp/qingflow-mcp-exports |
| QINGFLOW_ACCESS_TOKEN | Yes | Access token for authentication | |
| QINGFLOW_ADAPTIVE_PAGING | No | Enable adaptive paging (1 or 0) | 1 |
| QINGFLOW_EXPORT_MAX_ROWS | No | Maximum rows for export | 10000 |
| QINGFLOW_FORM_CACHE_TTL_MS | No | Form cache TTL in milliseconds | 300000 |
| QINGFLOW_REQUEST_TIMEOUT_MS | No | Request timeout in milliseconds | 18000 |
| QINGFLOW_EXECUTION_BUDGET_MS | No | Execution budget in milliseconds | 20000 |
| QINGFLOW_ADAPTIVE_MIN_PAGE_SIZE | No | Minimum page size for adaptive paging | 20 |
| QINGFLOW_ADAPTIVE_TARGET_PAGE_MS | No | Target page time in milliseconds for adaptive paging | 1200 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| qf_tool_spec_getA | Return MCP tool parameter requirements, limits, aliases and minimal examples for agent prompt grounding. |
| qf_form_getC | Get form metadata and compact field summaries for one app. |
| qf_field_resolveB | Resolve natural language field names/aliases into stable que_id mappings for one app. |
| qf_value_probeA | Probe likely field values for one app field, with explicit match mode and matched value evidence. |
| qf.query.planB | Preflight canonical query DSL, normalize loose inputs, translate into internal tools and estimate whether the query is ready for a final conclusion. |
| qf.query.rowsC | Query rows through the canonical DSL and return query handles plus resource links. |
| qf.query.recordC | Fetch one record through the canonical DSL and return a query handle. |
| qf.query.aggregateB | Aggregate records through the canonical DSL and return metrics_by_column plus query handle resources. |
| qf.records.mutateC | Canonical write entry for create/update operations. |
| qf.query.exportA | Export canonical row queries and return resource links instead of large inline payloads. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze-period-comparison | Build a structured comparison workflow for two time ranges using qf.query.plan and qf.query.aggregate. |
| build-query-from-question | Turn a natural language request into canonical Qingflow query DSL, then verify it with qf.query.plan. |
| prepare-record-write | Prepare a canonical qf.records.mutate payload from human field descriptions, then write only after validation. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose. Query tools (aggregate, export, plan, record, rows) are separated from non-query tools (field resolve, form get, mutate, spec get, value probe), and even within queries, each serves a unique function.
Naming convention is inconsistent: some tools use underscores (qf_field_resolve, qf_form_get, qf_tool_spec_get, qf_value_probe) while others use dot notation (qf.query.aggregate, qf.query.export, etc.). This mixed pattern can confuse an agent.
10 tools is appropriate for a CRUD server with advanced query capabilities. Each tool serves a well-defined purpose without excessive overlap.
Significant gaps exist: no explicit delete operation (qf.records.mutate only mentions create/update), no listing tools for forms or apps, and no field management beyond resolving. This will cause agent failures when delete or listing is needed.