Download the PHP package unopim/mcp without Composer

On this page you can find all versions of the php package unopim/mcp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package mcp

UnoPim MCP Bridge

Empower AI assistants (GitHub Copilot, Claude, Cursor, Windsurf) to interact with your UnoPim catalog, settings, and codebase using the Model Context Protocol (MCP).

The bridge exposes two transports in one package: Server Transport Best for
HTTP Agent POST /api/mcp/unopim (SSE) Remote AI assistants, PIM workflows
stdio Agent php artisan mcp:start unopim-dev Coding agents (Copilot, Cursor, Claude Code)

Features


📖 Detailed Documentation

Requirements

Requirement Version
PHP 8.2+
UnoPim 1.0+
Laravel 11.0+

🛠️ Quick Start & Setup

1. Installation

Install the package via composer into your UnoPim root:

2. Basic Configuration

Ensure APP_URL is set in your .env. If you plan to use the HTTP transport (SSE) for remote access, you may need to generate an API token for your user.

3. Usage (The 10-Second Test)

To verify everything is working, run the inspector:

This will launch a web interface where you can test each tool manually.


🔌 Connecting to AI Editors / Agents

Register the MCP server in your editor's config file. Both HTTP and stdio transports are supported.

VS Code / GitHub Copilot — .vscode/mcp.json

Cursor — Preferences > Models > MCP

Add a new MCP server with the following settings:

Claude Code

claude.ai — Remote Custom Connector (OAuth)

No manual setup is required — the package registers everything at boot: OAuth discovery + dynamic client registration endpoints, the Passport admin guard binding, a login route alias to the admin login page, and the guard-bridge middleware that maps the Passport token user onto UnoPim's ACL (bouncer()).

  1. Make sure Passport keys exist: php artisan passport:keys (skip if already generated).
  2. In claude.ai go to Settings > Connectors > Add custom connector.
  3. Enter your MCP endpoint: https://your-unopim-host/mcp/unopim.
  4. Complete the OAuth flow — you are redirected to the UnoPim admin login, then back to claude.ai.

Tool calls respect the connected admin's ACL permissions.

Windsurf — ~/.windsurf/mcp.json


Configuration (config/mcp.php)

mcp:install publishes the config file via the mcp-config tag. The published file mirrors packages/Webkul/MCP/src/Config/mcp.php:

Per-key behavior, env-var mapping, and a production checklist live in docs/configuration.md.


Available Tools

Source of truth: packages/Webkul/MCP/src/Registry/ToolRegistry.php. See docs/tool-reference.md for parameters and permission mapping.

Catalog (13 tools)

Tool Description
get_catalog_schema Returns filterable fields, operators, and pagination info per entity.
search_products Cursor-paginated product search with filters (max 100 per page).
get_product Fetch full product details by ID or SKU with relationships and completeness.
upsert_products Batch create/update products (max 50 per call, atomic transaction).
search_categories Cursor-paginated category search with filters.
upsert_categories Batch create/update categories (max 50 per call, atomic transaction).
search_attributes Cursor-paginated attribute search with filters.
upsert_attributes Batch create/update attributes (max 50 per call, atomic transaction).
search_attribute_options Cursor-paginated search across attribute options.
search_families Search attribute families.
upsert_families Batch create/update attribute families.
search_attribute_groups Search attribute groups.
upsert_attribute_groups Batch create/update attribute groups.

Settings (4 tools)

Tool Description
search_settings Search channels or locales (pass type: channels or locales).
upsert_settings Create/update channels or locales (max 50 per call).
search_currencies Search currencies with filters.
upsert_currencies Batch create/update currencies (max 50 per call).

Data Transfer (2 tools)

Tool Description
search_jobs Search import/export job instances by code, type, entity_type, action.
get_job_execution Fetch a single job execution (JobTrack) by ID with status, counts, and errors.

Developer Tools (6 core + dynamic)

Tool Description
dev_tools Unified action tool with 6 actions: create_file, read_file, update_file, run_command, generate_plugin, generate_test.
run_skill Execute a predefined skill from .ai/skills/ by name.
get_app_info Inspect the host app — Laravel/PHP versions, environment, installed packages.
get_database_schema Introspect tables, columns, and relationships. Pass a table to scope.
run_database_query Execute a read-only SQL query against the configured connection.
read_logs Tail entries from storage/logs/laravel.log (and named log channels).
Dynamic Skills Each SKILL.md under mcp.skills_path is auto-registered as execute_<skill_name>.

Artisan Commands

Command Description
php artisan mcp:install Run Passport scaffolding (if installed), publish config/mcp.php, and clear caches.
php artisan mcp:make plugin <Name> [--type=connector\|core-extension\|generic] Scaffold a complete UnoPim plugin.
php artisan mcp:make test <Package> <Class> Generate a Pest test skeleton for a class.
php artisan mcp:dev Alias for mcp:start unopim-dev — starts the stdio server for local coding agents.
php artisan mcp:start <handle> Start an MCP server over stdio (provided by laravel/mcp).
php artisan mcp:inspector <server> Launch the MCP Inspector against a stdio handle (e.g. unopim-dev) or HTTP path (e.g. mcp/unopim).

MCP Resources & Prompts

Name Type Description
catalog-schema Resource High-level catalog summary (product, category, attribute counts).
analyze-catalog Prompt Guided catalog analysis (completeness, consistency, optimization).

Query Operators

All search tools support the following filter operators:

Operator Description Example
= Equals {"field": "status", "operator": "=", "value": "active"}
!= Not equals {"field": "type", "operator": "!=", "value": "bundle"}
IN In list {"field": "type", "operator": "IN", "value": ["simple", "configurable"]}
NOT IN Not in list {"field": "id", "operator": "NOT IN", "value": [1, 2]}
CONTAINS Like %value% {"field": "name", "operator": "CONTAINS", "value": "shirt"}
STARTS WITH Like value% {"field": "sku", "operator": "STARTS WITH", "value": "PRD"}
ENDS WITH Like %value {"field": "sku", "operator": "ENDS WITH", "value": "001"}
> Greater than {"field": "price", "operator": ">", "value": 100}
< Less than {"field": "stock", "operator": "<", "value": 5}

Dynamic Skills

Create a SKILL.md file with YAML frontmatter in .ai/skills/<skill-name>/SKILL.md:

The skill is automatically discovered, cached, and registered as an MCP tool named execute_my_custom_skill.


Security Policy

The UnoPim MCP Bridge implements multi-layer security:

  1. Request Authentication: HTTP SSE endpoints default to auth:api (OAuth2 via Laravel Passport).
  2. Rate Limiting: Configurable per-minute limit per tool per client IP (default: 60 req/min).
  3. Path Traversal Guard: All file operations are jailed within configured allowed_paths with ./.. normalization.
  4. Command Whitelisting: Only php artisan and composer base commands are allowed. Shell operators (;, &, |, `, $(), <, >) are blocked.
  5. ACL Mapping: Every MCP tool maps to internal UnoPim permissions via bouncer(). CLI bypasses ACL for local development.
  6. Audit Logging: All destructive operations (upsert, create, update) are logged with user ID, IP, tool name, and arguments.
  7. MIME Validation Config: Media upload restrictions are defined in config/mcp.php for future media tool implementations.

Architecture


Testing

Run the full test suite:

Or from project root:

The test suite covers:


License

The MIT License (MIT). See LICENSE.md for details.


All versions of mcp with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
laravel/mcp Version ^0.5.1 || ^0.6 || ^0.7 || ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package unopim/mcp contains the following files

Loading the files please wait ...