Discover MCPs & agents
Loading MCPs and agents…
Loading MCPs and agents…
An open-source AI system for TRIZ-based inventive problem solving with interpretable, step-by-step reasoning flow
From the repo.
An open-source AI system for TRIZ-based inventive problem solving with interpretable, step-by-step reasoning flow
🌍 Languages: English | 中文 | Русский | العربية
Heinrich is an open-source AI engine that combines classical TRIZ (Theory of Inventive Problem Solving) methodology with modern Large Language Models to provide systematic, interpretable inventive problem-solving capabilities. Named after Genrich Altshuller, the creator of TRIZ, Heinrich embodies the systematic thinking approach of the original methodology while leveraging contemporary AI advances.
git clone https://github.com/NickScherbakov/Heinrich-The-Inventing-Machine.git
cd Heinrich-The-Inventing-Machine
pip install -r requirements.txt
pip install -e .
Heinrich requires the following Python packages:
PyYAML>=6.0 - For TRIZ knowledge base (YAML files)numpy>=1.21.0 - For numerical computationsdataclasses-json>=0.5.0 - For data serializationgoogle-generativeai>=0.3.0 - For Google Gemini LLM integrationrequests>=2.31.0 - For HTTP requests (Ollama)All dependencies are automatically installed when using pip install.
Heinrich supports multiple LLM backends:
| Provider | Setup | Best For |
|---|---|---|
| Google Gemini | API key from AI Studio | Production, cloud deployment |
| Ollama | Local installation from ollama.ai | Local development, privacy |
| Vertex AI | GCP project with Vertex AI enabled | Enterprise, GCP integration |
from heinrich.llm.adapters import GeminiAdapter
adapter = GeminiAdapter({
"api_key": "your-gemini-api-key",
"model": "gemini-1.5-pro",
"temperature": 0.7,
})
response = adapter.generate("Analyze this TRIZ problem...")
See examples/gemini_usage.py for a complete example.
Here's a simple example to get started with Heinrich:
from problem_parser import ProblemParser
# Create a problem parser
parser = ProblemParser()
# Analyze a problem
problem = "We need to make a car faster, but increasing engine power makes it consume more fuel."
result = parser.parse(problem)
# View the analysis
print(f"Technical System: {result.technical_system}")
print(f"Desired Improvement: {result.desired_improvement}")
print(f"Undesired Consequence: {result.undesired_consequence}")
Output:
Technical System: car
Desired Improvement: faster
Undesired Consequence: increasing engine power makes it consume more fuel
Try the included basic usage example:
python3 examples/basic_usage.py
This demonstrates problem parsing with multiple examples.
For full TRIZ pipeline analysis, use the interactive CLI:
# Interactive problem-solving session
python3 heinrich_cli.py interactive
# Batch processing (coming soon)
python3 heinrich_cli.py batch problems.txt
# API server mode (coming soon)
python3 heinrich_cli.py api --port 8080
The interactive mode guides you through the complete TRIZ methodology:
Input: "We need to make a car faster, but increasing engine power makes it consume more fuel."
Heinrich Output:
Step 1: Problem Analysis
- Technical system: Automotive propulsion
- Desired improvement: Speed (Parameter 9)
- Harmful consequence: Energy consumption (Parameter 19)
Step 2: Contradiction Identification
- Physical contradiction: Engine must be powerful AND energy-efficient
- Technical contradiction: Speed vs Energy consumption
Step 3: Principle Selection
- Principle 15: Dynamics (variable characteristics)
- Principle 2: Taking out (separate conflicting properties)
- Principle 35: Parameter change (different states/properties)
Step 4: Solution Concepts
1. Variable compression ratio engine (Principle 15)
2. Hybrid powertrain with mode switching (Principle 2)
3. Active aerodynamics adaptation (Principle 35)
...
Heinrich implements a modular, interpretable TRIZ reasoning pipeline:
Problem Input
↓
[Problem Parser] → Normalized problem description
↓
[Contradiction Identifier] → Technical/Physical contradictions
↓
[Principle Selector] → Relevant TRIZ principles (1-40)
↓
[Effects Lookup] → Scientific effects and evolution patterns
↓
[Concept Generator] → Solution concepts with reasoning
↓
[Adaptation Planner] → Context-aware recommendations
↓
[Report Builder] → Structured solution report
Heinrich operates as an AI mentor inspired by Genrich Altshuller's methodical thinking style. This persona:
Heinrich includes comprehensive TRIZ knowledge:
Heinrich includes rigorous evaluation capabilities:
Full documentation and interface support for 4 languages:
All translations include:
See i18n/README.md for translation guidelines and contribution workflow.
Heinrich supports seamless AI-assisted workflows through the GitHub MCP (Model Context Protocol) Server. This integration enables AI assistants to directly interact with the repository, eliminating the need for manual copy-pasting and creating a true bridge between human intention and AI execution.
MCP (Model Context Protocol) is an open standard that provides AI assistants with standardized access to external tools and services. With MCP integration, AI can:
We offer two setup options:
For detailed setup instructions, see our comprehensive guide:
.mcp.json configuration file (see .mcp.json.example)This integration aligns perfectly with Heinrich's mission of automation and improving creative processes. MCP creates a seamless workflow where:
"Heinrich + MCP: Where systematic invention meets seamless AI collaboration" 🤝
We welcome contributions! See CONTRIBUTING.md for:
If you use Heinrich in your research, please cite:
@software{heinrich_triz_2025,
title={Heinrich: The Inventing Machine - Open Source TRIZ AI Engine},
author={Heinrich Development Team},
year={2025},
url={https://github.com/your-org/heinrich},
license={Apache-2.0}
}
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Heinrich - Where systematic invention meets artificial intelligence 🚀
"The best problems are those that seem impossible to solve... until you find the right principle." - Inspired by TRIZ methodology
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.