guanling
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., "@guanlingAdd a task to prepare slides for Monday, owner me, next step is to outline."
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.
guanling (關令)
A task-management MCP server that refuses.
Most task tools do what you tell them. This one has opinions and enforces them.
Why this exists
A real task list grew to 280 items. Sixteen were marked "in progress". Not one of them was actually being worked on.
The missing thing was not a tool — there already was a list. The missing thing was anything that forced a decision. Every operation said yes, so the list accumulated intentions and never spent them.
What makes Linear work is not its feature set. It is its refusals: a small fixed set of states you cannot extend, and limits you cannot argue with. This server copies the refusals, not the features.
Related MCP server: todo-mcp
The gates
Each one is a refusal, not a warning.
Gate | Behaviour |
|
|
Five states, hardcoded |
|
WIP limit on | Moving past the limit is rejected, and the error names what currently occupies it so you have to close something first. |
External items land in triage | Anything with a |
Closing requires a reason |
|
Rollover is visible |
|
Refused calls write nothing to disk — there is a test for this.
Install
npm install -g guanlingThen add it to your MCP client config:
{
"mcpServers": {
"guanling": {
"command": "npx",
"args": ["-y", "guanling"],
"env": {
"GUANLING_AGENT": "me",
"GUANLING_FILE": "/path/to/my-tasks.json",
"GUANLING_WIP": "3"
}
}
}
}Variable | Default | Meaning |
|
| Identity for this instance. |
|
| Path to the JSON store. |
|
| Maximum concurrent |
⚠️ Give every instance its own GUANLING_FILE. Two processes sharing one
file will overwrite each other — see Limitations.
Tools
Tool | Purpose |
| Open a task. Rejects without owner + next_step. |
| Change status/owner/next_step. Enforces the WIP limit and the close-reason rule. |
| List open work. |
| Resolve inbox items: accept / decline / duplicate / snooze. |
| Days left, WIP usage, stale count, and what has rolled twice or more. |
| Close the cycle, carry unfinished work forward with a visible counter. |
Storage
One JSON file, written atomically (write to a temp file, then rename).
Deliberately not a database. The scale is hundreds of rows, and a plain file
stays readable by a human, diffable in git, and backed up by cp. The complete
string is built before the file is opened, so an exception mid-serialisation
leaves the previous file intact.
Tests
node selftest.mjs16 arms, weighted toward the refusals — those are the product. Includes a
negative control asserting that a rejected task_add leaves nothing on disk.
The WIP gate is mutation-tested: removing it turns exactly the two arms that cover it red. A gate that cannot be observed failing has not been verified.
Limitations
Stated up front rather than discovered later.
No concurrency lock. One process per store file. Two writers will clobber each other.
No cross-instance visibility. Each instance sees only its own file. This is intentional for per-agent isolation, but it means separate agents cannot see each other's work and may duplicate effort.
snoozesetssnooze_untilbut nothing wakes it. Items do not return on their own;task_listis how you find them.No history or audit trail. The file holds current state only.
The name
關令尹喜 was the gatekeeper at Hangu Pass. When Laozi tried to leave through it, the gatekeeper would not let him pass until he wrote his teaching down — which is why the Tao Te Ching exists.
Same idea: you do not get through until you write it down.
Privacy Policy
What is collected: nothing. Guanling has no telemetry, no analytics, no crash reporting, and no update check.
What is stored, and where: only the tasks you create — their title, owner,
next step, status, optional source and blocker, timestamps, and close reason.
They are written to a single JSON file on your own machine, at the path you
configure (GUANLING_FILE, or ~/.guanling/<agent>.json by default). Nothing
is written anywhere else.
Third-party sharing: none. The server makes no network requests of any
kind — it has no HTTP client, no sockets, and no dependencies beyond two Node
builtins (node:fs and node:path). It communicates only over stdio with the
MCP client that launched it. Its network behaviour is verifiable by reading
server.mjs, which is short and has no imports other than those two.
Data retention: entirely yours. The file persists until you delete it.
Guanling never expires, prunes, or deletes data on its own — closing a task
marks it done or dropped and keeps the record. To erase everything, delete
the JSON file.
Your control: the store is plain JSON. You can read it, edit it, copy it, back it up, or delete it with ordinary file tools. No export feature is needed because the file is the export.
Contact: open an issue at https://github.com/fateLiang/guanling/issues.
License
MIT
This server cannot be installed
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
- AlicenseAqualityDmaintenanceAn MCP server for Taskwarrior that implements agent claim and lease semantics for task management. It enables agents to list, create, and modify tasks while ensuring mutual exclusion through a system where tasks must be claimed before they are updated.Last updated1011MIT
- Flicense-qualityBmaintenanceA minimal MCP server for file-based task management and multi-agent team orchestration, enabling creation, completion, and reassignment of tasks across teams.Last updated
- AlicenseBqualityDmaintenanceA task management MCP server for AI-driven development, enabling creation, tracking, and organization of tasks with subtasks, priorities, and dependencies via natural language commands.Last updated136MIT
Related MCP Connectors
MCP protocol requiring task acceptance and provenance tags. Self-hosted only - see README.
MCP server for generating rough-draft project plans from natural-language prompts.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
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/fateLiang/guanling'
If you have feedback or need assistance with the MCP directory API, please join our Discord server