Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Pypddlengine

БесплатноНе проверен

Enables AI agents to interactively explore PDDL planning problems by exposing a PDDL engine as MCP tools for initialization, action execution, state inspection,

GitHubEmbed

Описание

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.

from github.com/AIT-Complex-Dynamical-Systems/pypddlengine

Установка Pypddlengine

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/AIT-Complex-Dynamical-Systems/pypddlengine

FAQ

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

Compare Pypddlengine with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai