Orchestra MCP AI — Multi-provider AI chat with skills system, conversation management, and markdown rendering

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/orchestra-mcp/ai

v0.0.1 2026-02-11 15:10 UTC

This package is auto-updated.

Last update: 2026-02-11 15:12:35 UTC


README

Screenshot

AI

Orchestra MCP AI plugin — Multi-provider AI chat with skills system, conversation management, and REST API.

AI Chat

Features

  • Multi-Provider — Built-in support for Anthropic Claude and OpenAI GPT with extensible provider system
  • Skills System — Register custom skills that can be invoked during conversations
  • Conversation Management — Create, continue, and manage multi-turn conversations
  • 4 MCP Tools — Chat, list providers, list skills, get config
  • 3 Artisan Commands — List providers, list skills, send messages
  • REST API — Full HTTP API for chat, providers, skills, and conversations
  • Configurable — Default provider, model, token limits, temperature via config/env

Requirements

  • PHP 8.2+
  • Laravel 12.x
  • orchestra-mcp/plugins package

Installation

composer require orchestra-mcp/ai

The service provider is auto-discovered.

Quick Start

Send a Message

use OrchestraMcp\Ai\Facades\Ai;

$response = Ai::chat('Explain quantum computing in simple terms');
echo $response->content;

Choose a Provider

// Use Claude
$response = Ai::chat('Hello', providerId: 'claude', model: 'claude-opus-4-6');

// Use OpenAI
$response = Ai::chat('Hello', providerId: 'openai', model: 'gpt-4o');

Manage Conversations

$conversation = Ai::createConversation('claude', 'claude-sonnet-4-5-20250929', 'You are a helpful assistant.');

$response = Ai::chat('What is Laravel?', conversationId: $conversation->id);
$followUp = Ai::chat('Tell me more about Eloquent', conversationId: $conversation->id);

Register a Custom Skill

use OrchestraMcp\Ai\Contracts\SkillInterface;
use OrchestraMcp\Ai\Facades\Ai;

Ai::registerSkill(new MyTranslationSkill());
$result = Ai::executeSkill('translate', 'Hello world', ['target' => 'es']);

Artisan Commands

php artisan ai:providers              # List registered providers
php artisan ai:skills                 # List registered skills
php artisan ai:chat "What is PHP?"    # Send a message

Built-in Providers

Provider ID Models
Anthropic Claude claude claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001
OpenAI openai gpt-4o, gpt-4o-mini, gpt-4-turbo, o1, o1-mini

MCP Tools

Tool Annotation Description
ai-chat Send a message to an AI provider
ai-providers #[IsReadOnly] List available providers
ai-skills #[IsReadOnly] List registered skills
ai-config #[IsReadOnly] Get AI configuration

Configuration

Publish the config:

php artisan vendor:publish --tag=orchestra-ai-config
Key Default Env Variable Description
enabled true ORCHESTRA_AI_ENABLED Enable/disable AI plugin
default_provider 'claude' ORCHESTRA_AI_DEFAULT_PROVIDER Default provider
max_tokens 4096 ORCHESTRA_AI_MAX_TOKENS Max response tokens
temperature 0.7 ORCHESTRA_AI_TEMPERATURE Sampling temperature
providers.claude.api_key ANTHROPIC_API_KEY Claude API key
providers.openai.api_key OPENAI_API_KEY OpenAI API key

REST API

Method Path Description
POST /api/ai/chat Send a chat message
GET /api/ai/providers List providers
GET /api/ai/skills List skills
GET /api/ai/config Get configuration
GET /api/ai/conversations List conversations
DELETE /api/ai/conversations/{id} Delete a conversation

Documentation

Full documentation is available in the docs/ directory:

Development

# Install dependencies
composer install

# Run tests
composer test

# Format code
composer format

# Static analysis
composer check

# Lint
composer lint

License

MIT