Pypddlengine
БесплатноНе проверенEnables AI agents to interactively explore PDDL planning problems by exposing a PDDL engine as MCP tools for initialization, action execution, state inspection,
Описание
Enables AI agents to interactively explore PDDL planning problems by exposing a PDDL engine as MCP tools for initialization, action execution, state inspection, and goal checking.
README
A Python PDDL engine and MCP (Model Context Protocol) server that enables AI agents to interactively explore PDDL planning problems.
Features
- Standalone PDDL engine — parse, validate, and execute PDDL domains and problems
- Interactive plan exploration — step through plans, query reachable actions, inspect world state
- MCP server — expose the engine as tools to any MCP-compatible AI agent (Claude Desktop, VS Code, etc.)
- Python API — direct programmatic access with structured JSON responses
- Session logging — record agent interactions to CSV/JSON for analysis
Supported PDDL Features
| Feature | Requirement | Notes |
|---|---|---|
| STRIPS | :strips |
Basic actions, positive/negative preconditions & effects |
| Typing | :typing |
Typed objects/parameters, type hierarchies |
| Equality | :equality |
(= ?x ?y) in preconditions |
| Negative preconditions | :negative-preconditions |
(not ...) in preconditions and goals |
| Disjunctive preconditions | :disjunctive-preconditions |
(or ...) in preconditions |
| Existential preconditions | :existential-preconditions |
(exists (?x - type) ...) |
| Universal preconditions | :universal-preconditions |
(forall (?x - type) ...) in preconditions |
| Conditional effects | :conditional-effects |
(when ...) and (forall ... effect) |
| Implication | :adl |
(imply ...) in preconditions |
| Numeric fluents | :numeric-fluents |
increase, decrease, assign, scale-up, scale-down |
| Action costs / metric | :action-costs |
(total-cost) with (:metric minimize ...) |
| Constants | — | :constants in domain |
Unsupported PDDL Features
| Feature | Notes |
|---|---|
Durative actions (:durative-actions) |
Raises an explicit error with a descriptive message |
Derived predicates (:derived) |
Not parsed; will fail on load |
| Maximize metric | Only minimize is supported |
| Arithmetic in conditions | Numeric expressions like (+ ?x ?y) in preconditions are not supported |
Installation
git clone https://github.com/kgoe-ait/pypddlengine
cd pypddlengine
uv sync
Or install from PyPI (once published):
pip install pypddlengine
Usage
Python API — Simulator
from pypddlengine.engine import Simulator
sim = Simulator(domain_str, problem_str, plan_str)
sim.step_all()
print(sim.is_goal_reached())
Step through manually:
sim = Simulator(domain_str, problem_str)
sim.step(("move", ("loc1", "loc2")))
print(sim.get_executable_actions())
print(sim.is_goal_reached())
Python API — Exploration API
Higher-level API with structured JSON responses, designed for AI agent tool use:
from pypddlengine.api import PDDLExplorationAPI
api = PDDLExplorationAPI(domain_str, problem_str)
actions = api.get_available_actions() # {"count": 4, "actions": [...]}
result = api.execute_action("move", ("a", "b")) # {"success": true, ...}
api.is_goal_reached() # {"goal_reached": false, ...}
api.reset()
Session Logger
Wraps the exploration API and logs every interaction to CSV/JSON:
from pypddlengine.session_logger import PDDLSessionLogger
session = PDDLSessionLogger(domain_str, problem_str, session_id="experiment_1")
session.execute_action("move", ["loc1", "loc2"])
session.export_to_csv("session.csv")
session.export_to_json("session.json")
session.print_summary()
MCP Server (Claude Desktop)
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"pddl-engine": {
"command": "uv",
"args": ["run", "python", "-m", "pypddlengine.server"],
"cwd": "/path/to/pypddlengine"
}
}
}
MCP Server (VS Code)
Already configured in .vscode/mcp.json — works out of the box when opening this project.
MCP Tools
Once connected, the AI agent can use these tools:
| Tool | Description |
|---|---|
pddl_init |
Initialize session with domain and problem PDDL strings |
pddl_init_from_files |
Initialize session from domain and problem file paths |
pddl_get_available_actions |
Get all executable actions in current state |
pddl_execute_action |
Execute an action by name and arguments |
pddl_get_current_state |
View all true predicates and fluents |
pddl_is_goal_reached |
Check if goal conditions are met |
pddl_reset |
Reset to initial state |
pddl_get_action_history |
Review actions taken so far |
pddl_get_domain |
Re-read the PDDL domain definition |
pddl_get_problem |
Re-read the PDDL problem definition |
Running Tests
uv run pytest
Project Structure
pypddlengine/
├── server.py # MCP server
├── api.py # Exploration API (structured JSON responses)
├── session_logger.py # Session logging wrapper
└── engine/ # Core PDDL engine
├── simulator.py # Plan simulation
├── parser/ # PDDL lexer & parser
├── interpreter/ # Domain/problem interpretation
└── execution/ # State management & action execution
License
Apache 2.0 — see LICENSE.
Установка Pypddlengine
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/AIT-Complex-Dynamical-Systems/pypddlengineFAQ
Pypddlengine MCP бесплатный?
Да, Pypddlengine MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Pypddlengine?
Нет, Pypddlengine работает без API-ключей и переменных окружения.
Pypddlengine — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Pypddlengine в Claude Desktop, Claude Code или Cursor?
Открой Pypddlengine на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Pypddlengine with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
