PlantOntology
Enables querying a plant knowledge graph for companion planting, climate suitability, and landscape design recommendations via natural language.
README
<div align="center"> <img src="docs/logo.png" alt="PlantOntology" width="280">
PlantOntology
The world's first open-source plant knowledge graph β built by landscape professionals, for everyone.
plantontology-production.up.railway.app </div>
PlantOntology is an open-source knowledge graph that models plants, ecosystems, and landscape design relationships β making 19 years of professional landscape expertise available to everyone through AI.
π Why PlantOntology?
Existing plant databases (iNaturalist, GBIF, Plants.com) store facts β scientific names, photos, basic traits.
PlantOntology stores relationships and intelligence:
μμ’
ββ[λλ°μμ¬]βββΆ μμ’
# Companion planting
μμ’
ββ[κΈ°νΌκ΄κ³]βββΆ μμ’
# Allelopathy / conflict
μμ’
ββ[κΈ°νμ ν©]βββΆ κΈ°νμ‘΄ # Climate zone match
μμ’
ββ[μ μ§κ΄λ¦¬]βββΆ λμ΄λ # Maintenance complexity
μμ’
ββ[μνμν ]βββΆ μ‘°λ₯/κ³€μΆ© # Ecological function
μμ’
ββ[λ³ν΄μΆ©]ββββΆ λ°©μ λ² # Pest/disease management
ν¬μ₯ ββ[μ¬λ―Έμ‘°ν©]βββΆ μμ’
κ΅° # Aesthetic combinations
ν μ ββ[μ ν©μμ’
]βββΆ μμ’
# Soil-species match
This powers questions like:
- "λν°λ무 μμ λ μ¬μΌλ©΄ μ’μκΉ?" β companion planting recommendations
- "μμΈ κΈ°νμμ μμμ’ μΌλ‘ 곡μ μμ¬ κ³ν μ§μ€" β AI-generated planting plans
- "μ΄ λ°°μΉκ° μνμ μΌλ‘ 건κ°νκ°?" β ecosystem health scoring
- "λλΌμ΄κ°λ μ© λ΄κ±΄μ± μμ’ 20μ’ μΆμ²" β climate-adaptive selection
π― Who is this for?
| User | Use Case |
|---|---|
| π‘ Home gardeners | "What should I plant next to my roses?" |
| π Urban planners | Green infrastructure optimization |
| ποΈ Landscape architects | Design automation & spec generation |
| π Climate adaptation orgs | Drought-resistant, carbon-sequestering planting |
| π€ AI developers | Training data for AEC/landscape AI models |
| π Students | Open educational resource for landscape programs |
ποΈ Project Structure
PlantOntology/
βββ data/
β βββ species/ β Plant species JSON (Korean + global)
β βββ relationships/ β Companion, conflict, ecological edges
β βββ climate_zones/ β Korean climate zones (μΎ¨ν λΆλ₯)
β βββ regulations/ β λμ곡μλ², 건μΆλ² μ‘°κ²½ κΈ°μ€
βββ ontology/
β βββ schema.cypher β Neo4j node/relationship schema
β βββ constraints.cypher β Unique constraints & indexes
βββ api/
β βββ main.py β FastAPI app
β βββ routers/ β /species, /recommend, /plan, /ecosystem
βββ sdk/
β βββ plantontology/ β Python SDK (pip install plantontology)
βββ mcp/
β βββ server.py β MCP server for Claude Code integration
βββ scripts/
βββ seed_neo4j.py β Load initial dataset into Neo4j
βββ import_gbif.py β Import from GBIF open data
π Quick Start
git clone https://github.com/alexai-mcp/PlantOntology
cd PlantOntology
pip install -e ".[dev]"
# Start Neo4j (Docker)
docker run -p 7474:7474 -p 7687:7687 neo4j:latest
# Seed initial dataset
python scripts/seed_neo4j.py
# Start API
uvicorn api.main:app --reload
Use as MCP Server (Claude Code)
{
"mcpServers": {
"plantontology": {
"command": "python",
"args": ["-m", "mcp.server"],
"cwd": "/path/to/PlantOntology"
}
}
}
π Documentation
- Getting Started β Setup and first queries
- Contributing Guide β How to contribute
- Changelog β What's new in each release
- OpenCrab Grammar β 9-space semantic architecture
- API Reference β REST API endpoints (coming soon)
- Neo4j Setup β Full database configuration
π± Initial Dataset (Korean Native + Ornamental)
Phase 1: 500 species with full relationship data
- νκ΅ μμ μμ’ 200μ’ (Korean native trees/shrubs)
- μ‘°κ²½ νμ© κ΅λͺ©/κ΄λͺ© 200μ’ (Common landscape species)
- μ§νΌμλ¬Ό/μ΄νλ₯ 100μ’ (Ground covers & perennials)
Each species includes:
- νλͺ / κ΅λͺ / μλͺ
- μμ‘ νΉμ± (μκ³ , μν, μμ₯μλ)
- κΈ°ν μ ν©μ± (νκ΅ κΈ°νμ‘΄ 1β7)
- ν μ μ ν©μ±
- μ μ§κ΄λ¦¬ λμ΄λ
- λλ°μμ¬ / κΈ°νΌ κ΄κ³
- μν κΈ°λ₯ (νμν‘μ, μ‘°λ₯μ μΈ, λ°μ)
- μ‘°κ²½ νμ©μ² (κ°λ‘μ, 곡μ, μ μ, μ₯μλ Ήν)
πΊοΈ Roadmap
| Phase | Milestone | ETA |
|---|---|---|
| v0.1 | νκ΅ μμ μμ’ 200μ’ + Neo4j μ€ν€λ§ | 2026-04 |
| v0.2 | FastAPI + μΆμ² μμ§ MVP | 2026-05 |
| v0.3 | MCP μλ² + Claude Code ν΅ν© | 2026-05 |
| v0.4 | κΈλ‘λ² μμ’ νμ₯ (μμμ 1,000μ’ ) | 2026-06 |
| v1.0 | κΈ°ν μ μ μμ¬ κ³ν μλ μμ± | 2026-Q3 |
π€ Contributing
PlantOntology thrives on contributions from:
- Landscape architects β domain knowledge, species data
- Botanists β ecological relationships, taxonomy
- AI engineers β Graph RAG, recommendation algorithms
- Translators β Korean β English β Japanese species data
- Gardeners β real-world companion planting observations
See CONTRIBUTING.md for guidelines.
π License
MIT β free to use, modify, and distribute.
Built with 19 years of landscape expertise + AI by AlexLee Powered by Neo4j Β· FastAPI Β· Claude Code MCP
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.