{"id":50762117,"url":"https://github.com/neo4j-php/neo4j-boost","last_synced_at":"2026-06-11T11:01:40.733Z","repository":{"id":338794711,"uuid":"1153382703","full_name":"neo4j-php/neo4j-boost","owner":"neo4j-php","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-03T07:31:28.000Z","size":181,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-03T09:21:41.990Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neo4j-php.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T08:32:44.000Z","updated_at":"2026-05-06T07:31:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/neo4j-php/neo4j-boost","commit_stats":null,"previous_names":["nagels-tech/neo4j-boost","neo4j-php/neo4j-boost"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/neo4j-php/neo4j-boost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-php%2Fneo4j-boost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-php%2Fneo4j-boost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-php%2Fneo4j-boost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-php%2Fneo4j-boost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neo4j-php","download_url":"https://codeload.github.com/neo4j-php/neo4j-boost/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-php%2Fneo4j-boost/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34195117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-11T11:01:39.876Z","updated_at":"2026-06-11T11:01:40.727Z","avatar_url":"https://github.com/neo4j-php.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neo4j Laravel Boost\n\nLaravel integration for the [official Neo4j MCP server](https://github.com/neo4j/mcp/releases). Use Neo4j tools (get-schema, read-cypher, write-cypher, etc.) from MCP clients like Cursor or Claude.\n\nRelease notes: [CHANGELOG.md](CHANGELOG.md).\n\n**Requirements:** PHP 8.2+, Laravel 12 or 13, [Laravel Boost](https://github.com/laravel/boost).\n\n### CI (this repository)\n\nGitHub Actions include four workflows on a **PHP × Laravel** matrix compatible with upstream constraints: **Laravel 12** on PHP **8.2** and **8.5**; **Laravel 13** (requires PHP **^8.3**) on PHP **8.3** and **8.5**. Workflows: [Pint](https://github.com/laravel/pint) (`.github/workflows/pint.yml`), [PHPStan](https://phpstan.org/) + [Larastan](https://github.com/larastan/larastan) (`.github/workflows/phpstan.yml`), PHPUnit (`.github/workflows/phpunit.yml`), and **[Testbench](https://packages.tools/testbench.html)** (`.github/workflows/testbench.yml`) — which runs `composer run build` then PHPUnit against [`Orchestra\\Testbench\\TestCase`](tests/TestCase.php).\n\nLocally after `composer install`:\n\n```bash\ncomposer run ci\n# or: ./vendor/bin/pint --test \u0026\u0026 ./vendor/bin/phpstan analyse -c phpstan.neon.dist --no-progress \u0026\u0026 ./vendor/bin/phpunit -c phpunit.xml.dist\n```\n\n### Workbench (`composer run serve`)\n\nThe [Orchestra Testbench](https://packages.tools/testbench.html) workbench is a small Laravel app inside this repo. **`composer run build`** only runs asset steps so it works **without** the PHP SQLite extension (`pdo_sqlite`). Session/cache/queue defaults are set in `testbench.yaml` (`env:`) so the skeleton does not need a SQL database for a quick `composer run serve`.\n\n**Neo4j** is configured separately via **`NEO4J_*`** (Bolt) and **`NEO4J_MCP_*`** (MCP HTTP), not via `DB_*`. Defaults are in `testbench.yaml` under `env:`; override them by copying `workbench/.env.example` to `workbench/.env` and editing.\n\n**Optional SQL (migrations / `DatabaseSeeder`):** install `php-sqlite3` (or configure MySQL in `workbench/.env`), then run `./vendor/bin/testbench workbench:create-sqlite-db` and `./vendor/bin/testbench migrate:fresh` if you need the database.\n\n---\n\n## Installation\n\n### 1. Install the package\n\n```bash\ncomposer require neo4j/laravel-boost\n```\n\n### 2. Run interactive setup\n\n```bash\nphp artisan neo4j-boost:setup\n```\n\nBy default, this package uses **STDIO transport** and manages the official `neo4j-mcp` binary directly for local usage.  \nThe setup command installs/checks the binary, validates STDIO requirements, keeps `NEO4J_MCP_TRANSPORT=stdio`, and writes Cursor MCP config.\n\n### 3. Start local Neo4j (for STDIO mode)\n\n```bash\nphp artisan neo4j-boost:start-neo4j\n```\n\nThis command starts a local Docker Neo4j instance on:\n\n- `bolt://localhost:7687`\n- `http://localhost:7474`\n\nIt also configures APOC defaults required by schema tools.\n\n### Optional: automate setup with a Composer hook\n\nAdd this to your app `composer.json` to run setup automatically after `composer update`:\n\n```json\n{\n  \"scripts\": {\n    \"post-update-cmd\": [\n      \"@php artisan neo4j-boost:setup --no-interaction\"\n    ]\n  }\n}\n```\n\n### 4. Configure Neo4j connection (for the MCP server)\n\nFor STDIO mode, the `neo4j-mcp` binary still needs Neo4j credentials. If you use Laravel’s Neo4j driver elsewhere, add to your `.env`:\n\n```env\nNEO4J_TRANSPORT_MODE=stdio\nNEO4J_URI=bolt://localhost:7687\nNEO4J_USERNAME=neo4j\nNEO4J_PASSWORD=your-password\n```\n\nFor full local clarity, a complete example is:\n\n```env\nNEO4J_TRANSPORT_MODE=stdio\nNEO4J_URI=bolt://localhost:7687\nNEO4J_USERNAME=neo4j\nNEO4J_PASSWORD=password\n```\n\n### 5. (Optional) Cursor MCP config\n\nTo add/update Cursor MCP config:\n\n```bash\nphp artisan neo4j-boost:cursor-config\n```\n\nThis creates or updates `.cursor/mcp.json` for the Boost MCP entry, merged with any existing servers.\n\n### 6. Advanced / Custom Server (HTTP or Docker)\n\nIf you want to run Neo4j MCP as a separate server instead of local STDIO binary mode:\n\n- Set `NEO4J_MCP_TRANSPORT=http`\n- Set `NEO4J_MCP_URL=http://localhost:8080/mcp` (or your remote URL)\n\nRun your own Neo4j MCP server (manually, Docker, or remote host), then point this package at that URL.\n\n**Example with Docker (custom server mode):**\n\n```bash\ndocker run --rm -p 8080:8080 \\\n  -e NEO4J_URI=bolt://host.docker.internal:7687 \\\n  -e NEO4J_TRANSPORT_MODE=http \\\n  docker.io/mcp/neo4j:latest\n```\n\n### 7. (Optional) Enable GDS for `list-gds-procedures`\n\nThe **list-gds-procedures** tool requires the [Graph Data Science](https://neo4j.com/docs/graph-data-science/current/) (GDS) plugin in Neo4j. Without it, that tool will error; other tools (get-schema, read-cypher, write-cypher) still work.\n\n**Docker:** enable the GDS and APOC plugins and allow procedures:\n\n```yaml\n# docker-compose.yml (neo4j service)\nneo4j:\n  image: neo4j:5-community\n  environment:\n    NEO4J_AUTH: neo4j/your-password\n    NEO4J_PLUGINS: '[\"apoc\", \"graph-data-science\"]'\n    NEO4J_dbms_security_procedures_unrestricted: 'apoc.*,gds.*'\n    NEO4J_dbms_security_procedures_allowlist: 'apoc.*,gds.*'\n  ports:\n    - \"7474:7474\"\n    - \"7687:7687\"\n```\n\n**Non-Docker:** install the GDS plugin for your Neo4j version and configure procedure allowlists as in the [Neo4j GDS docs](https://neo4j.com/docs/graph-data-science/current/installation/).\n\n---\n\n## Single MCP server with Laravel Boost\n\nThis package requires [Laravel Boost](https://github.com/laravel/boost) and automatically adds Neo4j tools to Boost's MCP server, so you get **both** Boost tools and Neo4j tools from **one** server.\n\n1. Install both packages:\n\n   ```bash\n   composer require laravel/boost laravel/mcp neo4j/laravel-boost\n   ```\n\n   For local development, default to STDIO and run:\n\n   ```bash\n   php artisan neo4j-boost:setup\n   php artisan neo4j-boost:start-neo4j\n   ```\n\n   If you prefer a remote/custom MCP server, set `NEO4J_MCP_TRANSPORT=http` and `NEO4J_MCP_URL=...`.\n\n2. Use **one** Cursor MCP entry that runs Laravel Boost:\n\n   ```json\n   \"mcpServers\": {\n     \"laravel-boost\": {\n       \"command\": \"php\",\n       \"args\": [\"artisan\", \"boost:mcp\"],\n       \"env\": {\n         \"APP_ENV\": \"local\"\n       }\n     }\n   }\n   ```\n\n   **If your workspace is this package repo** (neo4j-boost): the `env` block is required so Laravel Boost registers its commands. In a normal Laravel app with `.env` already set to `APP_ENV=local`, you can omit `env` if you prefer.\n\n3. This package adds its Neo4j tools to Boost's tool list. You get Boost tools (search-docs, browser-logs, database, etc.) **and** the official Neo4j tools (get-schema, read-cypher, write-cypher, list-gds-procedures). Neo4j tools call the official server over STDIO by default, or over HTTP when `NEO4J_MCP_TRANSPORT=http`.\n\n\n---\n\n## Using with Cursor\n\n1. Open your **Laravel application folder** (the project where you ran `composer require`) as the Cursor workspace—not the neo4j-boost package directory.\n2. Reload Cursor or open MCP settings so it picks up `.cursor/mcp.json`.\n3. Enable **laravel-boost** (one MCP server via `php artisan boost:mcp`). Cursor uses stdio; this package calls Neo4j MCP over HTTP internally. Tools (get-schema, read-cypher, write-cypher, list-gds-procedures) appear when the server is connected.\n\n---\n\n## Local development (this repo)\n\nWhen developing the package and running Artisan from the repo (e.g. e2e testing `boost:mcp`), either:\n\n- **Option A:** In `.cursor/mcp.json`, add `\"env\": { \"APP_ENV\": \"local\" }` to the `laravel-boost` server entry (see config above). Cursor will pass it when starting the process.\n- **Option B:** Copy `.env.example` to `.env` in the repo root so that `php artisan boost:mcp` sees `APP_ENV=local` when run from the terminal or by Cursor.\n\n---\n\n## Artisan commands\n\n| Command | Description |\n|--------|-------------|\n| `php artisan neo4j-boost:cursor-config` | Create or update `.cursor/mcp.json` with the Neo4j MCP server URL (merge with existing servers) |\n| `php artisan container:graph` | Export Laravel container bindings/dependencies into Neo4j graph (`--dry-run`, `--print-cypher`) |\n\nNeo4j tools exposed via Laravel Boost MCP (`php artisan boost:mcp`) include **get-class-dependency-graph**, which returns a structured dependency graph for a fully-qualified class (requires `container:graph` export first). Other tools: get-schema, read-cypher, write-cypher, list-gds-procedures.\n\n---\n\n## Container Graph POC (LLM Debugging)\n\nThis spike exports runtime Laravel container wiring into Neo4j so dependency resolution can be queried as a graph.\n\n### Environment variables\n\n**Option A – explicit URI (recommended for local dev):**\n\n```env\nNEO4J_URI=bolt://localhost:7687\nNEO4J_USER=neo4j\nNEO4J_PASSWORD=password\n```\n\n`NEO4J_USERNAME` is also supported as a fallback for `NEO4J_USER`.\n\n**Option B – only a DSN (e.g. Docker / Laravel `NEO4J_DEFAULT_CONNECTION_DSN`):**\n\nIf `NEO4J_URI` is not set, `container:graph` uses `NEO4J_DEFAULT_CONNECTION_DSN` when it looks like a Neo4j URL (user and password can be embedded: `neo4j://user:pass@host:7687`).\n\nThis matches setups that already set the DSN in `docker-compose` and avoids duplicating the host. Inside Docker, use the Neo4j service host name (for example `neo4j-core1:7687`), not `localhost` in the DSN.\n\n`config/neo4j-boost.php` exposes `container_graph.uri` and `container_graph.default_connection_dsn` (both read from the env vars above). Re-publish the config after upgrading the package if you use a published copy:\n\n```bash\nphp artisan vendor:publish --tag=neo4j-boost-config --force\n```\n\n### Run\n\n```bash\nphp artisan container:graph\nphp artisan container:graph --dry-run\nphp artisan container:graph --print-cypher\n```\n\n### Graph model\n\n- `(:Interface:Abstract)-[:BINDS_TO {shared}]-\u003e(:Class:Abstract)` when the binding key is an interface\n- `(:Class:Abstract)-[:BINDS_TO {shared}]-\u003e(:Class:Abstract)` when the binding key is a class\n- `(:Class:Abstract)` class nodes are also added for discovered project classes (PSR-4 autoloaded classes from the app)\n- **`Abstract`** – use as the entry label to start from registered binding keys and walk the graph (`MATCH (a:Abstract) …`).\n- `(:Class:Abstract)-[:DEPENDS_ON]-\u003e(:Class:Abstract|:Interface:Abstract|:UnresolvedDependency:Abstract)`\n- `(:UnresolvedDependency:Abstract {name, reason})`\n\n### Example Cypher queries\n\nFor ad-hoc exploration you can still use **read-cypher**. For Laravel DI questions, prefer the **get-class-dependency-graph** MCP tool (after running `container:graph`):\n\n```json\n{ \"class\": \"App\\\\Services\\\\FooService\", \"direction\": \"outbound\", \"depth\": 4, \"page\": 1, \"per_page\": 100 }\n```\n\nReturns structured JSON with `dependencies`, `dependents`, `binding`, pagination metadata (`dependencies_pagination` / `dependents_pagination`), and `graph_export_required` when data is missing. Default page size is 100 entries.\n\n**Explore from container binding keys outward (graph view in Neo4j Browser):**\n\n```cypher\nMATCH p = (a:Abstract)-[:BINDS_TO|DEPENDS_ON*1..10]-\u003e(n)\nRETURN p\nLIMIT 200;\n```\n\n**Bidirectional neighborhood (idiomatic; no duplicate reverse edges):**\n\n```cypher\nMATCH p = (a:Abstract)-[:BINDS_TO|DEPENDS_ON*1..6]-(n)\nRETURN p\nLIMIT 200;\n```\n\nCycle-only patterns such as `(x:Abstract)-[*..]-\u003e(x)` mostly surface self-binds or trivial paths; prefer outward or undirected expansion above.\n\n```cypher\nMATCH (i:Interface:Abstract)-[:BINDS_TO]-\u003e(c:Class:Abstract)\nRETURN i.name, c.name\nLIMIT 25;\n```\n\n```cypher\nMATCH p = (:Class:Abstract {name: 'App\\\\Services\\\\FooService'})-[:DEPENDS_ON*1..4]-\u003e(d)\nRETURN p\nLIMIT 10;\n```\n\n```cypher\nMATCH (c:Class:Abstract)-[:DEPENDS_ON]-\u003e(u:UnresolvedDependency:Abstract)\nRETURN c.name, u.name, u.reason\nLIMIT 25;\n```\n\nRe-running the command is idempotent (`MERGE`-based), so nodes/relationships are not duplicated.\n| `php artisan neo4j-boost:setup` | Interactive STDIO-first setup (binary, env checks, Cursor config) |\n| `php artisan neo4j-boost:install-mcp` | Download/install the official `neo4j-mcp` binary |\n| `php artisan neo4j-boost:start-neo4j` | Start local Neo4j Docker for STDIO mode |\n| `php artisan neo4j-boost:doctor` | Diagnose transport, binary, password, and readiness |\n| `php artisan neo4j-boost:test-stdio --tool=get-schema` | Verbose end-to-end STDIO handshake/tool test |\n\n### Auto-install supported platforms (`neo4j-boost:install-mcp`)\n\nThe binary is downloaded from the [official Neo4j MCP GitHub releases](https://github.com/neo4j/mcp/releases) and auto-detected for the current platform. Override with `NEO4J_MCP_PLATFORM_ASSET` in `.env`.\n\n| OS | Architecture | Archive | PHP requirement |\n|---|---|---|---|\n| Linux | x86\\_64 / amd64 | `.tar.gz` | — |\n| Linux | arm64 / aarch64 | `.tar.gz` | — |\n| Linux | i386 / i686 | `.tar.gz` | — |\n| macOS | x86\\_64 / amd64 | `.tar.gz` | — |\n| macOS | arm64 (Apple Silicon) | `.tar.gz` | — |\n| Windows | x86\\_64 / amd64 | `.zip` | **ext-zip** required |\n| Windows | arm64 | `.zip` | **ext-zip** required |\n| Windows | i386 | `.zip` | **ext-zip** required |\n\n\u003e [!NOTE]\n\u003e Windows platforms use ZIP archives. The `ext-zip` PHP extension must be enabled (`extension=zip` in `php.ini`). On Linux and macOS, only the built-in `PharData` class is used — no extra extensions needed.\n\n---\n\n## Configuration\n\nPublish the config file (optional):\n\n```bash\nphp artisan vendor:publish --tag=neo4j-boost-config\n```\n\nEdit `config/neo4j-boost.php`:\n\n- **`neo4j_mcp.transport`** – How Neo4j MCP tools run (`stdio` default, `http`, or `driver` for in-process Bolt). Env: `NEO4J_MCP_TRANSPORT`.\n- **`bolt.uri`** / **`bolt.username`** / **`bolt.password`** – Bolt connection when `NEO4J_MCP_TRANSPORT=driver`. Env: `NEO4J_URI`, `NEO4J_USERNAME`, `NEO4J_PASSWORD` (or `NEO4J_DEFAULT_CONNECTION_DSN`).\n- **`neo4j_mcp.binary_path`** / **`neo4j_mcp.version`** – Local binary install path and version.\n- **`http.url`** – MCP endpoint (e.g. `http://localhost:8080/mcp`). Env: `NEO4J_MCP_URL`.\n- **`http.username`** / **`http.password`** – Optional Basic Auth for the HTTP endpoint. Env: `NEO4J_MCP_USERNAME`, `NEO4J_MCP_PASSWORD` (fallback to `NEO4J_USERNAME` / `NEO4J_PASSWORD`).\n- **`container_graph.uri`** / **`container_graph.default_connection_dsn`** – Used by `php artisan container:graph` for the direct Neo4j driver. Env: `NEO4J_URI`, `NEO4J_DEFAULT_CONNECTION_DSN` (DSN is used when `NEO4J_URI` is empty).\n\n---\n\n## Troubleshooting\n\n- **\"Could not open input file: artisan\"** or **\"Loading tools\" stuck**  \n  When using Laravel Boost, Cursor must run the MCP command from your Laravel app directory. Open the **Laravel app folder** as the workspace and ensure `.cursor/mcp.json` exists.\n\n- **\"Unexpected token … is not valid JSON\"** or **\"ERROR … Did you mean this? neo4j-boost\"** when Cursor runs `boost:mcp`  \n  The MCP client expects only JSON on stdout. That error usually means `boost:mcp` failed to start and Artisan printed a message to stdout (e.g. \"There are no commands defined in the 'boost' namespace\"). Laravel Boost only registers its commands when **APP_ENV=local** or **APP_DEBUG=true**. Fix: in `.cursor/mcp.json`, add `\"env\": { \"APP_ENV\": \"local\" }` to the `laravel-boost` server entry so Cursor passes it when starting the process. Alternatively, ensure `.env` in the project root has `APP_ENV=local` (or copy `.env.example` to `.env`).\n\n- **Neo4j MCP HTTP errors**  \n  Ensure the Neo4j MCP server is running with HTTP transport and that `NEO4J_MCP_URL` matches. Check the MCP server logs for connection or Neo4j errors.\n\n- **`container:graph` connects to `bolt://localhost:7687` in Docker (or \"Cannot connect to any server on alias: container-graph\")**  \n  Set `NEO4J_URI` to your Neo4j host on the container network, or set `NEO4J_DEFAULT_CONNECTION_DSN` to a full URL (for example `neo4j://neo4j:password@neo4j-core1:7687`). In Docker, `localhost` in the DSN/URI is the app container, not the Neo4j service. Re-publish `neo4j-boost` config after upgrading and run `php artisan config:clear` if you use `config:cache`.\n\n- **STDIO test fails with \"Neo4j password is required for STDIO mode\"**  \n  Set `NEO4J_PASSWORD` in your `.env`, then run `php artisan config:clear`.\n\n- **STDIO test fails with APOC/meta error**  \n  Recreate local Neo4j with required plugins:\n  `php artisan neo4j-boost:start-neo4j --recreate`\n\n- **HTTP 404: \"This server only handles requests to /mcp\"**  \n  Cursor may try several connection methods (streamable HTTP, SSE) and can send **GET** requests. The official Neo4j MCP server in HTTP mode typically only accepts **POST** on `/mcp`, so those GETs return this 404.  \n  **Recommended:** Use **Laravel Boost** so Cursor talks to one MCP server over stdio (`php artisan boost:mcp`). This package then calls the Neo4j MCP server over HTTP (POST only) from your app; Cursor never hits the Neo4j HTTP URL directly.  \n  If you must connect Cursor directly to the Neo4j MCP URL: ensure the URL in `.cursor/mcp.json` ends with `/mcp` (run `php artisan neo4j-boost:cursor-config` to normalize it) and that the Neo4j MCP server is running with `NEO4J_TRANSPORT_MODE=http`. Compatibility depends on the client using POST to the configured URL.\n\n- **GDS errors**  \n  Messages like \"Unknown function 'gds.version'\" mean Neo4j does not have the GDS plugin. Install it and set procedure allowlists (see **Enable GDS** above). The MCP server still runs and standard Cypher (get-schema, read-cypher, write-cypher) works without GDS.\n\n---\n\n## License\n\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j-php%2Fneo4j-boost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo4j-php%2Fneo4j-boost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j-php%2Fneo4j-boost/lists"}