Qingflow MCP (CRUD)
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Qingflow MCP (CRUD)Query all records in app 'my_app' with field 1003 between 2026-01-01 and 2026-01-31"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Qingflow MCP (CRUD)
This MCP server exposes a canonical, agent-native public surface:
qf_tool_spec_getqf_form_getqf_field_resolveqf_value_probeqf.query.planqf.query.rowsqf.query.recordqf.query.aggregateqf.query.exportqf.records.mutate
Legacy tools still exist internally for compatibility logic, but they are no longer advertised via listTools().
It intentionally excludes delete for now.
Setup
Runtime requirement:
Node.js
>=18
Install dependencies:
npm installSet environment variables:
export QINGFLOW_BASE_URL="https://api.qingflow.com"
export QINGFLOW_ACCESS_TOKEN="your_access_token"Optional:
export QINGFLOW_FORM_CACHE_TTL_MS=300000
export QINGFLOW_REQUEST_TIMEOUT_MS=18000
export QINGFLOW_EXECUTION_BUDGET_MS=20000
export QINGFLOW_ADAPTIVE_PAGING=1
export QINGFLOW_ADAPTIVE_MIN_PAGE_SIZE=20
export QINGFLOW_ADAPTIVE_TARGET_PAGE_MS=1200
export QINGFLOW_EXPORT_MAX_ROWS=10000
export QINGFLOW_EXPORT_DIR="/tmp/qingflow-mcp-exports"Related MCP server: ragic-mcp
Run
Development:
npm run devBuild and run:
npm run build
npm startRun tests:
npm testCommand Line Usage
qingflow-mcp still defaults to MCP stdio mode:
qingflow-mcpUse CLI mode for quick local invocation:
# list all available tools
qingflow-mcp cli tools
# machine-readable tool list
qingflow-mcp cli tools --json
# canonical plan -> execute
qingflow-mcp cli call qf.query.plan --args '{
"kind":"rows",
"query":{
"app_key":"your_app_key",
"select":[1001,1002],
"where":[{"field":1003,"op":"between","from":"2026-01-01","to":"2026-01-31"}],
"limit":20
}
}'
# then execute with returned plan_id
qingflow-mcp cli call qf.query.rows --args '{"plan_id":"plan_xxx"}'CLI Install
Global install from GitHub:
npm i -g git+https://github.com/853046310/qingflow-mcp.gitInstall from npm (pinned version):
npm i -g qingflow-mcp@0.7.0Or one-click installer:
curl -fsSL https://raw.githubusercontent.com/853046310/qingflow-mcp/main/install.sh | bashSafer (review script before execution):
curl -fsSL https://raw.githubusercontent.com/853046310/qingflow-mcp/main/install.sh -o install.sh
less install.sh
bash install.shMCP client config example:
{
"mcpServers": {
"qingflow": {
"command": "qingflow-mcp",
"env": {
"QINGFLOW_BASE_URL": "https://api.qingflow.com",
"QINGFLOW_ACCESS_TOKEN": "your_access_token"
}
}
}
}Recommended Flow
qf_apps_listto pick app.qf_form_getto inspect field ids/titles.qf_field_resolvefor field-name toque_idmapping.qf_value_probewhen the agent needs candidate field values and explicit match evidence.qf_record_createorqf_record_update.If create/update returns only
request_id, callqf_operation_getto resolve async result.
Full calling contract (Chinese):
Canonical Usage
Public agent flow is now:
qf_form_get/qf_field_resolvewhen field mapping is unclearqf_value_probewhen field value candidates are unclearqf.query.planExecute the returned
plan_idwith:qf.query.rowsqf.query.recordqf.query.aggregateqf.query.exportqf.records.mutate
Planner Example
{
"kind": "aggregate",
"query": {
"app_key": "your_app_key",
"where": [
{ "field": 1003, "op": "between", "from": "2026-01-01", "to": "2026-01-31" }
],
"group_by": [1003],
"metrics": [
{ "op": "count" },
{ "column": 1002, "op": "sum" }
],
"strict_full": true
}
}Execute Example
{
"plan_id": "plan_xxx"
}Rules:
Public execute tools require
plan_id.Optional
query/actionecho is only used for drift checking.If execute input drifts from the planned canonical query, the server returns
PLAN_DRIFT.Public filtering uses canonical
where[]; legacyfiltersare no longer part of the public contract.
Aggregate Business Counts
Aggregate business summaries use one canonical count contract:
{
"summary": {
"counts": {
"source_record_count": 370,
"group_assignment_count": 405,
"metric_nonnull_record_count": 395
},
"primary_metric_total": 12272931.75,
"primary_metric_missing_count": 10
}
}Default answer for “多少单/多少条” must read summary.counts.source_record_count.
Completeness
Canonical completeness is technical-only:
is_completeraw_scan_completescan_limit_hitfetched_pagesrequested_pagesactual_scanned_pagesscanned_pagesscan_limithas_morenext_page_tokenstop_reasonoutput_truncatedomitted_itemsomitted_chars
When strict_full=true, any incomplete result fails with INCOMPLETE_RESULT.
Error Protocol
Failures return structured JSON with a machine-readable error.code, for example:
{
"ok": false,
"error": {
"code": "PLAN_REQUIRED",
"message": "...",
"fix_hint": "...",
"retryable": true
}
}Common codes:
PLAN_REQUIREDPLAN_NOT_READYPLAN_DRIFTFORBIDDEN_RUNTIME_ALIASVALIDATION_ERRORINCOMPLETE_RESULTUPSTREAM_TIMEOUTUPSTREAM_API_ERROR
Troubleshooting
If you see runtime errors around Headers or missing web APIs:
Upgrade Node to
>=18.Upgrade package to latest:
npm i -g qingflow-mcp@latestVerify runtime:
node -e "console.log(process.version, typeof fetch, typeof Headers)"Publish
npm login
npm publishIf you publish under an npm scope, use:
npm publish --access publicSecurity Notes
Keep
QINGFLOW_ACCESS_TOKENonly in runtime env vars; do not commit.env.Rotate token immediately if it appears in screenshots, logs, or chat history.
Community
Contributing: CONTRIBUTING.md
Security: SECURITY.md
Conduct: CODE_OF_CONDUCT.md
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI agents with direct access to FileMaker databases through the FileMaker Data API, enabling natural language interactions for querying, managing records, and database introspection.28203MIT
- AlicenseAqualityBmaintenanceEnables AI agents to interact with Ragic databases via MCP protocol, supporting form exploration, data CRUD, approval, and locking operations.11MIT
- Flicense-qualityDmaintenanceEnables AI agents to interact with the FormIO API for dynamic form creation, submission management, and user roles using natural language.
- Alicense-qualityDmaintenanceEnables AI agents to perform CRUD operations, query data, fetch schemas, and execute custom operations on Microsoft Dynamics 365 CRM entities.522MIT
Related MCP Connectors
Give AI agents access to form submissions — read, search, update, and process file attachments.
Provide real-time data querying and visualization by integrating Tako with your agents. Generate o…
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/853046310/qingflow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server