Contemplative reasoning with Lotus Sutra wisdom framework and ext-apps visualization.
Lotus Wisdom MCP Server (io.github.linxule/lotus-wisdom)
The io.github.linxule/lotus-wisdom MCP server provides a tool for problem-solving using a Lotus Sutra–inspired wisdom framework. It combines analytical thinking with intuitive “Lotus” wisdom, and supports interactive visualization through MCP.
🛠️ Key Features
Multi-faceted problem-solving approach inspired by the Lotus Sutra
Step-by-step thought process with different thinking techniques
Meditation pauses to allow insights to emerge naturally
Interactive visualization via MCP
🚀 Use Cases
Problem-solving using a Lotus Sutra wisdom framework
Workflows that require step-by-step reasoning with distinct thinking techniques
The published description provides only high-level behavior; specific tool interfaces and inputs are not included in the available data.
Topics
mcpmcp-servermodelcontextprotocollotus-sutra
Captured live from the server via tools/list.
lotuswisdom
Contemplative reasoning tool. Use for complex problems needing multi-perspective understanding, contradictions requiring integration, or questions holding their own wisdom.
**Workflow:** Always start with tag='begin' (returns framework). Then continue with contemplation tags. Do NOT output wisdom until status='WISDOM_READY'.
**Tags:** begin (FIRST - receives framework), then: open/engage/express (process), examine/reflect/verify/refine/complete (meta-cognitive), recognize/transform/integrate/transcend/embody (non-dual), upaya/expedient/direct/gradual/sudden (skillful-means), meditate (pause).
Parameters8
tag
string
required
Current processing technique (wisdom-domain tag)
content
string
required
Your contemplation for this step
stepNumber
integer
optional
Current step number
totalSteps
integer
optional
Estimated total steps needed (adjustable as you go)
nextStepNeeded
boolean
optional
Whether another step is needed
isMeditation
boolean
optional
Whether this step is a meditative pause
meditationDuration
integer
optional
Duration for the meditation pause in seconds (1-10)
previousJourney
string
optional
Pass the journey string from the previous response to maintain journey tracking (e.g. "begin → open → examine").
Raw schema
{
"type": "object",
"properties": {
"tag": {
"type": "string",
"enum": [
"begin",
"upaya",
"expedient",
"direct",
"gradual",
"sudden",
"recognize",
"transform",
"integrate",
"transcend",
"embody",
"examine",
"reflect",
"verify",
"refine",
"complete",
"open",
"engage",
"express",
"meditate"
],
"description": "Current processing technique (wisdom-domain tag)"
},
"content": {
"type": "string",
"minLength": 1,
"description": "Your contemplation for this step"
},
"stepNumber": {
"default": 1,
"description": "Current step number",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"totalSteps": {
"default": 5,
"description": "Estimated total steps needed (adjustable as you go)",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"nextStepNeeded": {
"default": true,
"description": "Whether another step is needed",
"type": "boolean"
},
"isMeditation": {
"description": "Whether this step is a meditative pause",
"type": "boolean"
},
"meditationDuration": {
"description": "Duration for the meditation pause in seconds (1-10)",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"previousJourney": {
"description": "Pass the journey string from the previous response to maintain journey tracking (e.g. \"begin → open → examine\").",
"type": "string"
}
},
"required": [
"tag",
"content"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
lotuswisdom_summary
Get a summary of the current contemplative journey
Parameters1
previousJourney
string
optional
Pass the journey string from a previous response to reconstruct the current journey summary.
Raw schema
{
"type": "object",
"properties": {
"previousJourney": {
"description": "Pass the journey string from a previous response to reconstruct the current journey summary.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
An MCP server implementation that provides a tool for problem-solving using the Lotus Sutra's wisdom framework, combining analytical thinking with intuitive wisdom.
Multi-faceted problem-solving approach inspired by the Lotus Sutra
Step-by-step thought process with different thinking techniques
Meditation pauses to allow insights to emerge naturally
Interactive visualization via MCP ext-apps (Claude Desktop, Cursor, ChatGPT) — adapts to the host light/dark theme and is keyboard-accessible
MCP Prompts (contemplate, deep-inquiry) for one-step guided contemplative sessions
Structured tool output (structuredContent + outputSchema) alongside the text response
Tracks both tag journey and wisdom domain movements
Available as a local stdio package (npx) or a hosted remote Connector
Final integration of insights into a clear response
Background
This MCP server was developed from the Lotus OS prompt, which was designed to implement a cognitive framework based on the Lotus Sutra. The MCP server format makes this framework more accessible and easier to use with Claude and other AI assistants.
The MCP server exposes the framework through tools and prompts. How well a model follows that framework depends on the model and host.
Implementation Details
The server implements a structured thinking process using wisdom domains inspired by the Lotus Sutra:
Wisdom Domains and Tags
The server organizes thoughts using wisdom domains (all valid values for the tag input parameter):
Entry (🚪): begin
Begin your journey here - receives the full framework before contemplation starts
Skillful Means (🔆): upaya, expedient, direct, gradual, sudden
Different approaches to truth - sometimes direct pointing, sometimes gradual unfolding
A natural arc that can contain any of the above approaches
Meditation (🧘): meditate
Pausing to let insights emerge from stillness
Thought Visualization
In clients that support MCP ext-apps, each step renders inline as an interactive "Living Trace" (see Interactive Visualization below). For every client, each step also returns:
Journey tracking showing both the tag path and the wisdom-domain movements
Domain-specific labels and the current contemplation text
Structured output (structuredContent + outputSchema) for programmatic consumers
Note: The local stdio server can emit per-step trace lines to its console (stderr) when run with LOTUS_DEBUG=true, helping developers follow the thinking process.
Process Flow
The user submits a problem to solve
The model begins with tag='begin' to receive the full framework
The model continues with contemplation tags (open, examine, integrate, etc.)
Each thought builds on previous ones and may revise understanding
The tool tracks both the tag journey and wisdom domain movements
Meditation pauses can be included for clarity
When status='WISDOM_READY' is returned, the tool's work is complete
The model then expresses the final wisdom naturally in its own voice
Available Tools
lotuswisdom
A tool for problem-solving using the Lotus Sutra's wisdom framework, with various approaches to understanding.
Begin your journey with tag='begin' - this returns the full framework (philosophy, domains, guidance) to ground your contemplation. Then continue with the other tags.
Inputs:
tag (string, required): The current processing technique (must be one of the tags listed above)
content (non-empty string, required): The content of the current processing step, including begin
stepNumber (integer, optional, default 1): Current number in sequence
totalSteps (integer, optional, default 5): Estimated total steps needed
nextStepNeeded (boolean, optional, default true): Whether another step is needed
isMeditation (boolean, optional): Whether this step is a meditative pause
meditationDuration (integer, optional): Duration for meditation in seconds (1-10)
previousJourney (string, optional): The journey string from a previous response, e.g. "begin → open → examine". Lets the AI carry journey continuity forward in stateless clients (such as the remote Worker), where the server keeps no session state.
Returns: a JSON text block and structuredContent validated against the tool's outputSchema. For begin, the full framework is in the text block; structured output contains its status, welcome, and contemplation fields. Other result variants retain their fields in both representations.
Response statuses include:
Processing status with current step information, wisdom domain, and journey tracking
FRAMEWORK_RECEIVED status on a begin step
MEDITATION_COMPLETE status for meditation steps
WISDOM_READY status when the contemplative process is complete
The tool declares readOnlyHint, idempotentHint, destructiveHint: false, and openWorldHint: false. These are host hints, not a guarantee of zero side effects: local stdio calls update the in-memory journey, and the hosted worker records usage analytics. The tools do not modify user files or external business data.
lotuswisdom_summary
Get a summary of the current contemplative journey.
Inputs:
previousJourney (string, optional): The journey string from a previous response, used to reconstruct the summary in stateless clients.
Returns:
Journey length
Domain journey showing movement between wisdom domains
Summary of all steps with their tags, domains, and brief content
MCP Prompts
The server registers two prompts that scaffold a guided contemplative session (surfaced as slash commands or prompt pickers in clients that support MCP Prompts):
contemplate — argument question: opens a single-question contemplation, instructing the model to start with tag='begin', iterate, and speak the wisdom only once status='WISDOM_READY'.
deep-inquiry — argument topic: begins a longer inquiry that moves deliberately across the wisdom domains (process → meta-cognitive → non-dual → meditation).
Usage
The Lotus Wisdom tool is designed for:
Breaking down complex problems requiring multi-faceted understanding
Questions that benefit from both direct and gradual approaches
Problems where apparent contradictions need integration
Situations requiring both analytical and intuitive understanding
Tasks that benefit from meditative pauses to allow insight
Questions containing their own inherent wisdom
Example Usage
Here's how a conversation with Claude might flow when using the Lotus Wisdom MCP server:
User: "Help me understand the relationship between freedom and responsibility."
Claude would begin the journey with tag='begin' to receive the framework, then continue:
First, enter the contemplative space:
json
{"tag":"begin","content":"Entering contemplation on freedom and responsibility.","stepNumber":1,"totalSteps":6,"nextStepNeeded":true}
→ Returns FRAMEWORK_RECEIVED with full framework
Then, establish an opening thought:
json
{"tag":"open","content":"The question explores the relationship between freedom and responsibility, which contain an apparent tension but also deep connection.","stepNumber":2,"totalSteps":6,"nextStepNeeded":true}
Engage with different perspectives:
json
{"tag":"direct","content":"Freedom and responsibility are two sides of the same coin. True freedom isn't absence of constraints but the capacity to choose our response within constraints.","stepNumber":3,"totalSteps":6,"nextStepNeeded":true}
Perhaps take a meditation pause:
json
{"tag":"meditate","content":"Contemplating how freedom without responsibility becomes chaos, and responsibility without freedom becomes oppression.","stepNumber":4,"totalSteps":6,"nextStepNeeded":true,"isMeditation":true}
Integrate the understanding:
json
{"tag":"integrate","content":"Freedom and responsibility mutually enable each other. Our freedom to choose gives rise to our responsibility for what we choose, and our willingness to take responsibility expands our freedom.","stepNumber":5,"totalSteps":6,"nextStepNeeded":true}
Express the final understanding:
json
{"tag":"express","content":"The paradox resolves when we see that authentic freedom includes responsibility as its natural expression.","stepNumber":6,"totalSteps":6,"nextStepNeeded":false}
When the tool returns status: 'WISDOM_READY', Claude then speaks the final wisdom naturally, integrating all the insights from the contemplative journey.
Installation
Install via Smithery for one-click setup, or follow the manual instructions below.
Requires Node.js 18+. The server runs locally via npx.
bun install --frozen-lockfile
bun run typecheck
bun run test
bun run build
bun run start
The build installs the app's locked dependencies and rebuilds the tracked
dist/bundle.js and dist/journey.html artifacts. Check app types with
cd app && bunx tsc --noEmit; see worker validation
for the worker typecheck, dry-run build, and local HTTP regression.
Dependabot uses the bun ecosystem for the root, app, and worker packages so
updates include their bun.lock files. CI verifies all three packages on pull
requests. Merging a PR updates source only: a version tag publishes to npm and
the MCP Registry, and the Cloudflare Worker requires a separate deployment.
If npm publishes successfully but MCP Registry registration fails, retry only
registration for the existing tag:
bash
gh workflow run publish-mcp.yml --ref main -f registry_tag=v0.8.1
This revalidates the tagged source and waits for npm availability before
registration. It does not republish npm or move the release tag.
Enable debug mode:
bash
LOTUS_DEBUG=true bun run start
Interactive Visualization (ext-apps)
In MCP clients that support ext-apps (Claude Desktop, Cursor, ChatGPT), the tool renders an interactive "Living Trace" visualization inline in the chat:
Journey trace: SVG circles colored by wisdom domain appear as steps arrive
Domain colors: Process (gold), Skillful Means (amber), Non-Dual (green), Meta-Cognitive (blue), Meditation (teal)
Meditation breathing: Hollow circles with gentle inhale/exhale animation
Completion: Journey resolves into a gradient path showing the full domain arc
Click to explore: Pin any step to read its contemplation text
Collapse for long journeys: Shows last 8 steps with a "+N" cluster for earlier ones
Clients without ext-apps support are unaffected — they receive the same JSON tool responses as before.
How It Works
The Lotus Wisdom framework recognizes that wisdom often emerges not through linear thinking but through a dance between different modes of understanding. The tool facilitates this by:
Tracking Wisdom Domains: As you move through different tags, the tool tracks which wisdom domains you're engaging, helping you see the shape of your inquiry.
Journey Consciousness: The tool maintains awareness of your complete journey, showing both the sequence of tags used and the movement between wisdom domains.
Non-Linear Progress: While steps are numbered, the process isn't strictly linear. You can revisit, revise, and branch as understanding deepens.
Integration Points: Tags like integrate, transcend, and embody help weave insights together rather than keeping them separate.
Natural Expression: The tool handles the contemplative process, but the final wisdom is always expressed naturally by the AI, not as formatted output.
Token Optimization Design
MCP tool descriptions stay in the AI's context window constantly when the server is connected. To minimize this overhead while preserving the full teaching content:
Constant context (~150 tokens): The lotuswisdom tool description is kept minimal—just enough for the AI to know when and how to use it
On-demand learning (~1,200 tokens): The complete framework is delivered when calling with tag='begin', including:
Response format details (wisdomDomain, journey, domainJourney)
Meditation handling (MEDITATION_COMPLETE status)
When to use guidance
Learn first, practice second: The begin tag ensures models receive complete understanding before contemplating
This approach reduces constant context overhead by ~85% when the tool is idle. When actually used, the full framework is delivered on first step—nothing is lost.
License
This MCP server is licensed under the MIT License. For more details, please see the LICENSE file in the project repository.
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests on the GitHub repository.
Version
Current version: 0.8.1
What's New in 0.8.1
Updated dependencies and GitHub Actions, regenerated Bun lockfiles, and added
app and worker validation to CI.
Updated vulnerable transitive dependencies across all three packages and added
dependency audits to CI. All three Bun audits passed during release validation
on September 14, 2026.
Migrated the visualization to ext-apps 2 with its MCP client v2 and Zod 4
dependencies. The server transports remain on MCP SDK v1; the worker uses
the agents SDK's explicit compatibility handler and retains stateless JSON
responses.
What's New in 0.8.0
Single source of truth: domain logic, tool/server metadata, prompts, and the client parser now live in src/shared/ and are imported by both the stdio entry (index.ts) and the Cloudflare Worker — no more local-vs-remote drift
High-level McpServer everywhere: the local stdio server was migrated from the low-level Server API to McpServer, matching the Worker
MCP Prompts: contemplate and deep-inquiry for guided contemplative sessions
Structured tool output: tools now return structuredContent validated against an outputSchema, plus behavioral annotations (readOnlyHint, idempotentHint, destructiveHint: false, openWorldHint: false) and a server instructions field
Theme-aware, accessible UI: the ext-apps journey visualization adapts to the host light/dark theme and is keyboard-accessible
Security & cleanup: @modelcontextprotocol/sdk bumped to ^1.27.1, zod added, chalk removed; the legacy Express SSE server (server.ts), the express deps, and the Dockerfile were removed; the repo moved to bun lockfiles. Added a vitest test suite (tests/) and a single-source version workflow (src/shared/version.ts + bun run sync-version)
Server icon & website: server.json advertises the remote Worker (remotes[]), a websiteUrl, and icon sizes; the Worker advertises icons/website in the initialize handshake and serves the icon as same-origin bytes at /icon.png
What's New in 0.7.0
Fully stateless Worker: removed the Durable Object — the remote Worker now creates a fresh server per request and relies on the client-driven previousJourney parameter for journey continuity (eliminating accumulated SSE wall time)
What's New in 0.6.0
Server icon: added an icon to server.json and the Worker so MCP Registry and claude.ai Connectors display the lotus logo
Warmer UI and (since reverted) experimental Durable Object session state
What's New in 0.5.0
npm + MCP Registry publish: hardened packaging and published to npm and the official MCP Registry
What's New in 0.4.0
Interactive Visualization: MCP ext-apps UI renders a "Living Trace" journey inline in supporting clients (Claude Desktop, Cursor, ChatGPT)
Completion Fix: Any tag with nextStepNeeded=false now correctly returns WISDOM_READY (previously only express and complete could complete)
Cloudflare Worker: Worker deployment updated with ext-apps resource serving
What's New in 0.3.2
🚪 Simplified Begin: tag='begin' can now be called with just {"tag":"begin"} - all other params auto-filled
🤖 Better Haiku/Small Model Support: Removes friction for models that don't infer all required params
What's New in 0.3.1
📚 Complete Framework Learning: begin tag now returns full parameter explanations, response format details, and meditation handling
🔢 Accurate Token Counts: Updated documentation with actual token measurements (~150 constant, ~1,200 on-demand)
What's New in 0.3.0
🚪 Begin Tag: New tag='begin' opens the journey—returns full framework before contemplation starts
⚡ Optimized Token Footprint: Reduced constant context overhead from ~1400 to ~200 tokens while preserving full teaching content
🧘 Learn First, Practice Second: The begin tag ensures models receive complete understanding before contemplating
📦 Updated SDK: Upgraded to @modelcontextprotocol/sdk 1.23.0
What's New in 0.2.1
📋 MCP Registry Enhancement: Added title field for better discoverability
🎯 Full Compliance: Now fully compliant with official MCP publishing guide