Connector Marketplace API
Discover, install, and manage MCP connectors through the Orchestrator API.
Overview
The Connector Marketplace API enables:
- Discovery: Browse available connectors with metadata
- Installation: Install connectors with custom configuration
- Management: Monitor health and uninstall connectors
- Multi-tenant: Isolate connector instances per tenant
Base URL: http://localhost:8081 (Orchestrator)
Endpoints
GET /api/v1/connectors
List all available connectors in the marketplace.
Request:
curl http://localhost:8081/api/v1/connectors
Response (200 OK):
{
"connectors": [
{
"id": "postgresql",
"name": "PostgreSQL Database",
"type": "postgres",
"version": "0.1.0",
"description": "Connect to PostgreSQL databases with connection pooling",
"category": "Database",
"icon": "🐘",
"tags": ["database", "sql", "postgres"],
"capabilities": ["query", "execute", "transactions"],
"config_schema": {
"type": "object",
"required": ["host", "database"],
"properties": {
"host": {
"type": "string",
"description": "PostgreSQL host"
},
"port": {
"type": "number",
"default": 5432,
"description": "PostgreSQL port"
},
"database": {
"type": "string",
"description": "Database name"
}
},
"credentials": {
"username": {
"type": "string",
"description": "Database username"
},
"password": {
"type": "string",
"description": "Database password"
}
}
},
"installed": true,
"healthy": true,
"last_check": "2025-01-02T10:00:00Z"
},
{
"id": "redis-cache",
"name": "Redis Cache",
"type": "redis",
"version": "0.2.0",
"description": "High-performance key-value caching with sub-10ms latency",
"category": "Cache",
"icon": "⚡",
"tags": ["cache", "redis", "kv-store", "performance"],
"capabilities": ["query", "execute", "cache", "kv-store"],
"installed": false
},
{
"id": "amadeus-travel",
"name": "Amadeus Travel API",
"type": "amadeus",
"version": "0.2.0",
"description": "Access flight search, hotel search, and airport information from Amadeus Travel API",
"category": "Travel",
"icon": "✈️",
"tags": ["travel", "flights", "hotels", "api"],
"capabilities": ["query", "flights", "hotels", "airports"],
"installed": false
},
{
"id": "http-rest",
"name": "HTTP REST API",
"type": "http",
"version": "0.2.0",
"description": "Generic REST API connector with multiple authentication methods",
"category": "API",
"icon": "🔌",
"tags": ["http", "rest", "api", "generic"],
"capabilities": ["query", "execute", "rest-api"],
"installed": false
}
],
"total": 4
}
GET /api/v1/connectors/{id}
Get detailed information about a specific connector.
Request:
curl http://localhost:8081/api/v1/connectors/postgresql
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Connector ID |
Response (200 OK):
{
"id": "postgresql",
"name": "PostgreSQL Database",
"type": "postgres",
"version": "0.1.0",
"description": "Connect to PostgreSQL databases with connection pooling",
"category": "Database",
"icon": "🐘",
"tags": ["database", "sql", "postgres"],
"capabilities": ["query", "execute", "transactions"],
"config_schema": {
"type": "object",
"required": ["host", "database"],
"properties": {
"host": {
"type": "string",
"description": "PostgreSQL host"
},
"port": {
"type": "number",
"default": 5432,
"description": "PostgreSQL port"
},
"database": {
"type": "string",
"description": "Database name"
},
"ssl_mode": {
"type": "string",
"enum": ["disable", "require", "verify-ca", "verify-full"],
"default": "disable",
"description": "SSL mode"
}
},
"credentials": {
"username": {
"type": "string",
"description": "Database username"
},
"password": {
"type": "string",
"description": "Database password"
}
}
},
"installed": true,
"healthy": true,
"last_check": "2025-01-02T10:00:00Z"
}
Response (404 Not Found):
Connector not found
POST /api/v1/connectors/{id}/install
Install a connector with custom configuration.
Request:
curl -X POST http://localhost:8081/api/v1/connectors/postgresql/install \
-H "Content-Type: application/json" \
-d '{
"name": "analytics-db",
"tenant_id": "my-tenant",
"options": {
"host": "analytics.database.com",
"port": 5432,
"database": "analytics",
"ssl_mode": "require"
},
"credentials": {
"username": "analytics_user",
"password": "secure_password_here"
}
}'
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Instance name for this installation |
tenant_id | string | No | Tenant to associate with |
options | object | Yes | Connector-specific options |
credentials | object | No | Connector credentials |
Connector-specific Options:
PostgreSQL:
| Option | Type | Default | Description |
|---|---|---|---|
host | string | localhost | Database host |
port | number | 5432 | Database port |
database | string | - | Database name |
ssl_mode | string | disable | SSL mode |
Redis:
| Option | Type | Default | Description |
|---|---|---|---|
host | string | localhost | Redis host |
port | number | 6379 | Redis port |
db | number | 0 | Database number |
HTTP REST:
| Option | Type | Default | Description |
|---|---|---|---|
base_url | string | - | Base URL of the API |
auth_type | string | none | Auth type (none, bearer, basic, api-key) |
timeout | number | 30 | Request timeout in seconds |
Amadeus:
| Option | Type | Default | Description |
|---|---|---|---|
environment | string | test | API environment (test, production) |
Response (200 OK):
{
"success": true,
"message": "Connector installed successfully",
"connector_id": "postgresql",
"name": "analytics-db"
}
Response (400 Bad Request):
{
"error": "Invalid request body"
}
Response (404 Not Found):
Connector not found
DELETE /api/v1/connectors/{id}/uninstall
Uninstall a connector instance.
Request:
curl -X DELETE http://localhost:8081/api/v1/connectors/postgresql/uninstall
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Connector ID to uninstall |
Response (200 OK):
{
"success": true,
"message": "Connector uninstalled successfully"
}
Response (500 Internal Server Error):
{
"error": "Failed to uninstall connector: connector not found"
}
GET /api/v1/connectors/{id}/health
Check the health status of an installed connector.
Request:
curl http://localhost:8081/api/v1/connectors/postgresql/health
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Connector ID |
Response (200 OK):
{
"connector_id": "postgresql",
"healthy": true,
"status": "connected",
"latency_ms": 5,
"timestamp": "2025-01-02T10:00:00Z",
"details": {
"version": "PostgreSQL 15.4",
"connection_pool": {
"active": 2,
"idle": 8,
"max": 10
}
}
}
Response (Unhealthy):
{
"connector_id": "postgresql",
"healthy": false,
"status": "connection_failed",
"error": "connection refused",
"timestamp": "2025-01-02T10:00:00Z"
}
Available Connectors
Community Connectors
| ID | Name | Category | Description |
|---|---|---|---|
postgresql | PostgreSQL | Database | SQL database with connection pooling |
mysql | MySQL | Database | MySQL/MariaDB database connector |
mongodb | MongoDB | Database | Document database connector |
redis-cache | Redis Cache | Cache | High-performance key-value store |
http-rest | HTTP REST API | API | Generic REST API connector |
Enterprise Connectors
| ID | Name | Category | Description |
|---|---|---|---|
amadeus-travel | Amadeus Travel | Travel | Flight, hotel, and airport search |
salesforce | Salesforce | CRM | Salesforce CRM integration |
slack | Slack | Communication | Slack messaging integration |
snowflake | Snowflake | Data Warehouse | Snowflake data warehouse |
Configuration Examples
PostgreSQL with SSL
{
"name": "prod-db",
"options": {
"host": "prod.database.com",
"port": 5432,
"database": "production",
"ssl_mode": "verify-full"
},
"credentials": {
"username": "app_user",
"password": "secure_password"
}
}
Redis with Authentication
{
"name": "session-cache",
"options": {
"host": "redis.internal.com",
"port": 6379,
"db": 0
},
"credentials": {
"password": "redis_auth_password"
}
}
HTTP API with Bearer Token
{
"name": "internal-api",
"options": {
"base_url": "https://api.internal.com/v1",
"auth_type": "bearer",
"timeout": 30
},
"credentials": {
"token": "your_bearer_token_here"
}
}
Error Responses
| HTTP Status | Description |
|---|---|
| 400 | Invalid request body or configuration |
| 404 | Connector not found |
| 500 | Installation/uninstallation failed |
Next Steps
- MCP Overview - MCP connector documentation
- Agent Endpoints - MCP query endpoints
- SDK Documentation - Language-specific SDKs