Tiling Trees MCP Server
Click on "Deploy 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., "@Tiling Trees MCP Server create a tiling tree for improving urban air quality"
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.
Tiling Trees MCP Server
A Model Context Protocol (MCP) server implementing the Tiling Trees Method - a systematic approach to exploring solution spaces by recursively partitioning them into mutually exclusive and collectively exhaustive (MECE) subsets.
Based on the method described in The Tiling Tree Method.
What is the Tiling Trees Method?
The tiling trees method helps you systematically explore all possible solutions to a problem by:
Starting with the complete solution space - all possible approaches to your challenge
Splitting using MECE principles - divide into categories that don't overlap (Mutually Exclusive) but together cover everything (Collectively Exhaustive)
Recursively subdividing - continue splitting each subset until you reach concrete ideas/projects
Evaluating leaves - assess the viability of each concrete solution
The key insight: like tiles covering a wall completely without overlaps, your categories should partition the solution space with precision.
Related MCP server: Paperlib MCP
Why Use This Method?
Guarantees completeness: You won't overlook viable solutions
Forces creative thinking: Systematic exploration surfaces ideas you might not normally consider
Enables objective comparison: All solutions emerge from the same structured process
Identifies gaps: Missing categories become obvious
Evolves over time: Revisit trees as technologies and contexts change
Installation
npm install
npm run buildConfiguration
Add to your MCP settings file (e.g., claude_desktop_config.json):
{
"mcpServers": {
"tiling-trees": {
"command": "node",
"args": ["/path/to/tiling-trees-mcp/dist/index.js"]
}
}
}Core Concepts
Tiles
Each tile represents a subset of the solution space with a precise definition to avoid overlaps with siblings.
MECE Splits
When splitting a tile, choose an attribute/dimension that creates Mutually Exclusive and Collectively Exhaustive subsets:
Mutually Exclusive: No solution belongs to multiple categories
Collectively Exhaustive: Every solution belongs to exactly one category
Split Attributes
The dimension used to partition (examples):
Energy source: electric, chemical, mechanical, nuclear
Scale: nano, micro, meso, macro
Physical mechanism: conduction, convection, radiation
Timeframe: immediate, short-term, long-term
Cost: low, medium, high
Tip: Physics and math-oriented splits often work best because physical laws are concise and comprehensive.
Leaves
Terminal nodes representing concrete ideas or projects ready for evaluation.
Evaluation
Rate leaves on:
Impact (1-10): Potential effect if successful
Feasibility (1-10): Likelihood of success with available resources
Uniqueness (1-10): How novel compared to existing solutions
Timeframe: Expected development timeline
Available Tools
1. create_tree
Create a new tiling tree to explore a problem
Start by defining your challenge. The tree begins with a root tile representing all possible solutions.
{
"name": "Transportation Decarbonization",
"problemStatement": "How can we reduce carbon emissions in transportation by 80% by 2050?"
}2. split_tile
Split a tile into MECE subsets (the core operation)
Choose a meaningful attribute and create categories that completely partition the parent space.
{
"tileId": "root-tile-id",
"splitAttribute": "Transportation mode",
"splitRationale": "Different modes have distinct technical constraints and emission profiles",
"subsets": [
{
"title": "Road vehicles",
"description": "Cars, trucks, buses, motorcycles - vehicles operating on roads",
"isLeaf": false
},
{
"title": "Rail",
"description": "Trains, trams, subways - vehicles on rails",
"isLeaf": false
},
{
"title": "Aviation",
"description": "Airplanes, helicopters - atmospheric flight vehicles",
"isLeaf": false
},
{
"title": "Maritime",
"description": "Ships, boats, ferries - water-based transport",
"isLeaf": false
}
]
}3. mark_mece
Validate that a split is truly MECE
After creating a split, verify completeness and exclusivity.
{
"tileId": "parent-tile-id",
"isMECE": true,
"coverageNotes": "Covers all major transportation modes. Edge cases like cable cars fall under 'Rail'. Space transport excluded as not relevant to 2050 target."
}4. add_tiles_to_split
Add missing categories to an existing split
When you realize a category was missed, add it (invalidates MECE status).
{
"parentId": "parent-tile-id",
"newTiles": [
{
"title": "Pipeline transport",
"description": "Movement of goods through pipelines (oil, gas, etc.)",
"isLeaf": false
}
]
}5. evaluate_tile
Evaluate a leaf tile (concrete solution)
Assess viability with quantitative metrics.
{
"tileId": "leaf-tile-id",
"impact": 8,
"feasibility": 6,
"uniqueness": 4,
"timeframe": "5-10 years",
"notes": "High impact but faces infrastructure challenges",
"calculationsOrPilots": "Pilot study in 3 cities showed 60% reduction in emissions"
}6. get_coverage_analysis
Analyze solution space coverage
Identify unexplored branches, unvalidated splits, and next steps.
{
"treeId": "tree-id"
}Returns:
Tiles not yet split (exploration gaps)
Splits not validated for MECE
Leaves not evaluated
Coverage percentage
Suggestions for next steps
7. get_unexplored_tiles
Find gaps in your exploration
Get tiles that haven't been split yet.
8. get_top_leaves
Find the best solutions
Get highest-rated leaves by impact, feasibility, uniqueness, or combined score.
{
"criteria": "combined",
"limit": 10,
"treeId": "tree-id"
}9. export_tree
Export for visualization
Export in JSON, Markdown, Mermaid diagrams, or DOT (GraphViz) format.
{
"treeId": "tree-id",
"format": "mermaid"
}Additional Tools
get_trees: List all tiling treesget_tile: Get details of a specific tileexplore_path: Explore tree structure from a tileget_leaf_tiles: Get all concrete ideas/projectssearch_tiles: Search by contentupdate_tile: Update tile informationget_statistics: Overall statistics
10. validate_split_quality
Detect common antipatterns in a split
Automatically checks for:
Vague language: Imprecise terms like "natural", "traditional", "simple"
Catch-all buckets: Categories like "other" or "misc" that prevent exploration
Mixed dimensions: Splitting along inconsistent attributes
Retroactive splitting: Using pre-existing solution taxonomies instead of first principles
Incomplete coverage: Splits not validated for MECE
{
"tileId": "parent-tile-id"
}Returns:
Quality score (0-100)
List of issues with severity (error/warning)
Specific recommendations for improvement
11. get_tree_validation_report
Validate entire tree for quality
Get validation reports for all splits in a tree with an overall quality score.
{
"treeId": "tree-id"
}Common Failure Modes
Based on real-world usage, watch out for these antipatterns:
1. Retroactive Splitting (Taxonomy Import)
Problem: Starting with known solution types from literature locks you into existing categories.
Bad: Splitting "battery improvements" by {Li-ion optimizations, NiMH advancements, Lead-acid improvements} Good: Splitting by {chemistry type, electrode material, electrolyte state, architecture}
Why: Retroactive splitting only generates variations within known categories. First-principles splitting discovers fundamentally new possibilities.
2. Catch-All Buckets
Problem: Creating "other materials" or "miscellaneous" categories prevents systematic exploration.
Bad: {Silicon, Graphite, Lithium metal, Other materials} Good: {Crystalline, Amorphous, Composite, Layered}
Why: You can't split "everything else" systematically. If you don't know what belongs in a category, the split dimension needs revision.
Use validate_split_quality to automatically detect catch-all buckets (error severity).
3. Vague Language ("Words That Mean Nothing")
Problem: Terms like "natural", "forced", "traditional" lack physical precision and create unavoidable overlaps.
Bad: {Natural cooling, Forced cooling} Good: {Passive convection, Active forced-air, Liquid cooling, Phase-change}
Why: "Natural" doesn't map to unique physical properties - it could mean many things. Use measurable properties instead.
Use validate_split_quality to automatically flag vague terms (warning severity).
4. Mixed Dimensions (Category Errors)
Problem: Splitting along inconsistent dimensions creates inherent overlaps.
Bad: Vegetables classified as {Red ones, Sweet ones, Crunchy ones} - mixing color, taste, and texture Good: Split by ONE dimension: {Root, Stem, Leaf, Fruit, Flower} OR {Raw-edible, Requires-cooking}
Why: One vegetable can be red AND sweet AND crunchy. Categories must be mutually exclusive.
Use validate_split_quality to detect mixed dimension warnings.
5. Incomplete Coverage
Problem: Missing possibilities in the split leaves gaps unexplored.
Solution: Always validate splits with mark_mece and use get_coverage_analysis to find gaps.
Validation Workflow
After creating splits, validate quality:
// Check a specific split
validate_split_quality({
tileId: "<parent-tile-id>"
})
// Response:
{
"score": 70,
"issues": [
{
"type": "vague_language",
"severity": "warning",
"message": "Tile 'Advanced materials' uses vague term 'advanced'",
"suggestion": "Replace 'advanced' with measurable properties..."
}
],
"recommendations": [
"Replace vague terms with measurable physical properties"
]
}
// Check entire tree
get_tree_validation_report({
treeId: "<tree-id>"
})
// Response includes overall score and all split reportsWorkflow Example
Problem: Improve battery energy density
Step 1: Create the tree
create_tree({
name: "Battery Energy Density Improvements",
problemStatement: "How can we increase battery energy density by 3x?"
})Step 2: First split - by chemistry
split_tile({
tileId: "<root-id>",
splitAttribute: "Battery chemistry",
splitRationale: "Fundamental chemistry determines theoretical energy density limits",
subsets: [
{ title: "Lithium-based", description: "Li-ion, Li-polymer, Li-metal, Li-S, Li-air" },
{ title: "Sodium-based", description: "Na-ion and variants" },
{ title: "Metal-air", description: "Zn-air, Al-air (excluding Li-air)" },
{ title: "Solid-state", description: "Solid electrolyte batteries (any chemistry)" },
{ title: "Alternative chemistries", description: "Mg, Ca, multivalent ion, organic" }
]
})Step 3: Validate MECE
mark_mece({
tileId: "<root-id>",
isMECE: true,
coverageNotes: "Covers main battery chemistry families. Some overlap (e.g., Li-air could be 'metal-air'), resolved by treating Li as primary classifier."
})Step 4: Continue splitting
Split "Lithium-based" by approach:
Electrode material improvements
Electrolyte improvements
Cell architecture innovations
Manufacturing process optimizations
Step 5: Reach leaves and evaluate
When you reach concrete ideas:
evaluate_tile({
tileId: "<silicon-anode-id>",
impact: 9,
feasibility: 7,
uniqueness: 5,
timeframe: "2-3 years",
calculationsOrPilots: "Lab tests show 40% capacity increase; volume expansion remains challenge"
})Step 6: Analyze coverage
get_coverage_analysis({ treeId: "<tree-id>" })Step 7: Find top solutions
get_top_leaves({
criteria: "combined",
limit: 5,
treeId: "<tree-id>"
})Best Practices
1. Define Precisely
Write explicit definitions for each tile to ensure no overlaps. Be mathematical/physical when possible.
Good: "Electric vehicles using only battery power (no combustion engine)" Bad: "Clean cars"
2. Choose Good Split Attributes
Prefer physics/math-based dimensions
Ensure the attribute creates natural, complete partitions
Document rationale for future reference
3. Validate MECE Rigorously
Check for overlaps between sibling tiles
Verify all possibilities are covered
Document edge cases
4. Split to Appropriate Depth
Don't stop too early (you'll miss solutions)
Don't go too deep too fast (you'll lose the forest for the trees)
Leaf nodes should be concrete enough to evaluate
5. Evaluate Honestly
Base ratings on data when possible
Document assumptions
Include calculations or pilot results
Be consistent across evaluations
6. Revisit Periodically
Technologies evolve
Contexts change
Previously unviable branches may become promising
Tips for AI Assistants Using This MCP
When helping users with tiling trees:
Start with problem clarification - ensure the problem statement is specific
Suggest physics/math splits when applicable - avoid retroactive splitting from known solutions
Run validation after splits - use
validate_split_qualityto catch antipatterns earlyFlag vague language - watch for terms like "natural", "traditional", "advanced"
Prevent catch-all buckets - never allow "other" or "misc" categories
Enforce single dimensions - ensure each split uses one consistent attribute
Encourage precision - push for measurable properties and explicit definitions
Use coverage analysis - regularly check for unexplored areas
Balance breadth and depth - explore widely before going deep
Prompt evaluation - remind users to rate leaves with calculations/pilots, not just intuition
Proactive Validation: After each split, automatically run validate_split_quality and present any issues with constructive suggestions. This helps users learn the method correctly.
Integration with Web Interface
This MCP server complements the tiling-trees web interface. Use the server for:
Systematic exploration and validation
Programmatic tree construction
Coverage analysis
Bulk operations
Use the web interface for:
Visual exploration
Presentations
Collaborative sessions
Quick modifications
Export from MCP → Import to web interface for best of both worlds.
Example Split Attributes by Domain
Engineering/Physical
Energy source
Scale (nano/micro/macro)
Physical mechanism
Material type
Phase (solid/liquid/gas/plasma)
Business/Strategy
Market segment
Revenue model
Geographic region
Customer type
Distribution channel
Software/Computing
Architecture pattern
Data structure
Computational complexity class
Deployment model
Interface type
Research/Science
Methodology (experimental/theoretical/computational)
Organism/system type
Time scale
Spatial scale
Measurement technique
Troubleshooting
Q: My split has overlaps - what do I do? A: Refine definitions to make categories mutually exclusive. Sometimes this means choosing a different split attribute.
Q: I can't cover everything with my categories A: Add an "Other" category temporarily, then revisit with a better split attribute that creates natural, complete partitions.
Q: How do I know when to stop splitting? A: Stop when you reach concrete, evaluable ideas/projects. If a tile is still too abstract to assess impact/feasibility, keep splitting.
Q: Can I have multiple trees for the same problem? A: Yes! Different split strategies yield different insights. Compare trees to find the most useful partitioning.
License
MIT
References
The Tiling Tree Method - Original article
MECE Principle - Background on mutually exclusive and collectively exhaustive categorization
Available Tools
18 toolsadd_tiles_to_splitA
Add additional tiles to an existing split (when you realize a category was missed). This invalidates the MECE validation and requires re-verification.
Inputs: parentId (required), newTiles (required).
create_treeA
Create a new tiling tree to explore a problem/challenge. The tree starts with a root tile representing the complete solution space, which you'll then split recursively using MECE (Mutually Exclusive, Collectively Exhaustive) principles.
Inputs: name (required), problemStatement (required).
evaluate_tileC
Evaluate a leaf tile (concrete idea/project) on impact, feasibility, and uniqueness. Include any calculations or pilot studies performed.
Inputs: tileId (required), impact, feasibility, uniqueness, +3 more.
explore_pathC
Explore the tree structure from a specific tile, showing the hierarchical breakdown
Inputs: tileId (required), depth.
export_treeC
Export a tiling tree in various formats for visualization or documentation
Inputs: treeId (required), format (required).
get_coverage_analysisC
Analyze the completeness of solution space exploration for a tree. Shows unexplored branches, unvalidated splits, and suggestions for next steps.
Inputs: treeId (required).
get_leaf_tilesC
Get all leaf tiles (concrete ideas/projects) from a tree
Inputs: treeId.
get_statisticsB
Get overall statistics about all tiling trees
Inputs: no named parameters.
get_tileC
Get details of a specific tile
Inputs: tileId (required).
get_top_leavesC
Get the highest-rated leaf tiles based on evaluation criteria
Inputs: criteria (required), limit, treeId.
get_treesC
Get all tiling trees
Inputs: no named parameters.
get_tree_validation_reportA
Get validation report for all splits in a tree. Identifies antipatterns and provides an overall quality score. Use this after building a tree to check for common failure modes.
Inputs: treeId (required).
get_unexplored_tilesB
Get tiles that haven't been split yet - these are gaps in your solution space exploration
Inputs: treeId.
mark_meceC
Mark a split as validated for MECE (Mutually Exclusive, Collectively Exhaustive) properties. Verify that the children completely cover the parent space with no overlaps.
Inputs: tileId (required), isMECE (required), coverageNotes.
search_tilesC
Search for tiles by content
Inputs: query (required), treeId.
split_tileB
Split a tile into MECE (Mutually Exclusive, Collectively Exhaustive) subsets using a specific attribute/dimension. This is the core operation of the tiling trees method - partitioning the solution space systematically. Use physics/math-oriented splits when possible.
Inputs: tileId (required), splitAttribute (required), splitRationale (required), subsets (required).
update_tileC
Update a tile's information (title, description, split attributes, etc.)
Inputs: tileId (required), title, description, splitAttribute, +2 more.
validate_split_qualityA
Validate split quality and detect common antipatterns (vague language, catch-all buckets, mixed dimensions, retroactive splitting, incomplete coverage). Returns a detailed quality report with issues and recommendations.
Inputs: tileId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Most tools have distinct purposes, such as create_tree for tree creation, split_tile for splitting, and evaluate_tile for evaluation. However, get_coverage_analysis and get_unexplored_tiles both focus on identifying gaps in exploration, which could cause slight confusion, though their descriptions help differentiate them.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_tree, split_tile, and evaluate_tile. All tools use snake_case and clear action-oriented verbs, making the set predictable and easy to understand.
With 18 tools, the count is slightly high but reasonable for the domain of tiling tree management, covering operations like creation, splitting, evaluation, validation, and analysis. It supports comprehensive workflows without being overly bloated, though it borders on the heavier side.
The tool set provides complete coverage for the tiling tree domain, including CRUD-like operations (create_tree, get_trees, update_tile), core methods (split_tile, mark_mece), evaluation (evaluate_tile), validation (validate_split_quality, get_tree_validation_report), and analysis (get_coverage_analysis, get_statistics). No obvious gaps exist for systematic solution space exploration.
Maintenance
Related MCP Connectors
Mind maps with a full document in every node. Read, search and edit your maps from AI tools.
Turn AI conversations into visual knowledge maps. Create, connect, search, and organize thoughts.
Research portfolio management — organize projects and track research artifacts.
Claimora expands AI agents' research horizons through an interconnected graph of scientific claims, evidence, contradictions, and cross-disciplinary relationships. Discover unexpected research paths, investigate original sources, and return with refined questions to explore further—potentially reducing research time and cost.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered academic research workflow from keyword search to hypothesis generation. Integrates multiple AI models to automatically search ArXiv papers, extract key information, and generate innovative research hypotheses for researchers.2-
- FlicenseCqualityBmaintenanceEnables academic literature management through PDF import, hybrid search, knowledge graph construction, and automated literature review generation. Combines full-text search with semantic vector search for comprehensive paper analysis.55-
- FlicenseNot gradedqualityDmaintenanceAutomates literature review, research gap detection, and novelty evaluation for academic research, providing tools to search, summarize, find gaps, generate ideas, and evaluate novelty.-
- AlicenseAqualityDmaintenanceBuilds a dynamic knowledge graph from your notes and uses LLM reasoning to discover blindspots, hidden cross-domain connections, track concept evolution, and spark creative inspiration.82Apache 2.0