Skip to main content

Overview

Configuration endpoints allow you to create, retrieve, update, and delete MCP configurations and their associated servers. Each configuration can contain multiple MCP server definitions with their commands, arguments, environment variables, and guardrail policies.

List All Configurations

Retrieve a list of all MCP configurations.
curl -X GET "http://localhost:8001/api/v1/configs" \
  -H "Authorization: Bearer ${ADMIN_KEY}"
Response: 200 OK
{
  "message": "Configurations retrieved successfully",
  "data": [
    {
      "mcp_config_id": "550e8400-e29b-41d4-a716-446655440000",
      "mcp_config_name": "development-config",
      "servers": 3,
      "used_by_projects": [
        {
          "project_id": "660e8400-e29b-41d4-a716-446655440000",
          "project_name": "dev-project"
        }
      ]
    }
  ],
  "timestamp": "2024-01-01T12:00:00.000000"
}
data
array

Create Configuration

Create a new MCP configuration.
curl -X POST "http://localhost:8001/api/v1/configs" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"config_name": "production-config"}'
config_name
string
required
Name for the new configuration
Response: 200 OK
{
  "message": "Configuration created successfully",
  "data": {
    "config_id": "550e8400-e29b-41d4-a716-446655440000",
    "config_name": "production-config"
  },
  "timestamp": "2024-01-01T12:00:00.000000"
}

Get Configuration

Retrieve details of a specific configuration.
curl -X GET "http://localhost:8001/api/v1/configs/{config_identifier}" \
  -H "Authorization: Bearer ${ADMIN_KEY}"
config_identifier
string
required
Configuration ID or name
Response: 200 OK
{
  "message": "Configuration retrieved successfully",
  "data": {
    "mcp_config_id": "550e8400-e29b-41d4-a716-446655440000",
    "mcp_config_name": "production-config",
    "mcp_config": [
      {
        "server_name": "github",
        "description": "GitHub MCP Server",
        "config": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"]
        },
        "enable_tool_guardrails": true,
        "input_guardrails_policy": {
          "enabled": false
        },
        "output_guardrails_policy": {
          "enabled": false
        }
      }
    ]
  },
  "timestamp": "2024-01-01T12:00:00.000000"
}

Update Configuration Name

Rename an existing configuration.
curl -X PUT "http://localhost:8001/api/v1/configs/{config_identifier}/rename" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"new_name": "prod-config-v2"}'
config_identifier
string
required
Configuration ID or name
new_name
string
required
New name for the configuration
Response: 200 OK
{
  "message": "Configuration renamed successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Delete Configuration

Delete a configuration (must not be in use by any projects).
curl -X DELETE "http://localhost:8001/api/v1/configs/{config_identifier}" \
  -H "Authorization: Bearer ${ADMIN_KEY}"
config_identifier
string
required
Configuration ID or name
Response: 200 OK
{
  "message": "Configuration deleted successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Copy Configuration

Create a copy of an existing configuration.
curl -X POST "http://localhost:8001/api/v1/configs/copy" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "source_config": "production-config",
    "target_config": "staging-config"
  }'
source_config
string
required
Source configuration ID or name
target_config
string
required
Name for the new configuration
Response: 200 OK
{
  "message": "Configuration copied successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

List Servers in Configuration

Get all servers configured in a specific configuration.
curl -X GET "http://localhost:8001/api/v1/configs/{config_identifier}/servers" \
  -H "Authorization: Bearer ${ADMIN_KEY}"
config_identifier
string
required
Configuration ID or name
Response: 200 OK
{
  "message": "Servers retrieved successfully",
  "data": [
    {
      "server_name": "github",
      "description": "GitHub MCP Server",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {},
      "enable_tool_guardrails": true
    },
    {
      "server_name": "filesystem",
      "description": "Filesystem MCP Server",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"],
      "env": {},
      "enable_tool_guardrails": true
    }
  ],
  "timestamp": "2024-01-01T12:00:00.000000"
}

Add Server to Configuration

Add a new MCP server to a configuration.
curl -X POST "http://localhost:8001/api/v1/configs/{config_identifier}/servers" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "server_name": "github",
    "server_command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
    },
    "description": "GitHub MCP Server",
    "input_guardrails_policy": {
      "enabled": true,
      "policy_name": "GitHub Input Policy",
      "block": ["policy_violation", "injection_attack"]
    },
    "output_guardrails_policy": {
      "enabled": true,
      "policy_name": "GitHub Output Policy",
      "block": ["policy_violation"]
    }
  }'
config_identifier
string
required
Configuration ID or name
server_name
string
required
Unique name for the server within this configuration
server_command
string
required
Command to execute the MCP server (e.g., “npx”, “python”, “node”)
args
array
Command-line arguments for the server
env
object
Environment variables to pass to the server
tools
object
Tool-specific configuration overrides
description
string
Human-readable description of the server
input_guardrails_policy
object
Input guardrail policy configuration
output_guardrails_policy
object
Output guardrail policy configuration (same structure as input)
Response: 200 OK
{
  "message": "Server added successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Update Server in Configuration

Update an existing server’s configuration.
curl -X PUT "http://localhost:8001/api/v1/configs/{config_identifier}/servers/{server_name}" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "server_command": "python3",
    "args": ["/updated/path/to/server.py"],
    "description": "Updated server description"
  }'
config_identifier
string
required
Configuration ID or name
server_name
string
required
Name of the server to update
server_command
string
Updated command (optional)
args
array
Updated arguments (optional)
env
object
Updated environment variables (optional)
tools
object
Updated tool configuration (optional)
description
string
Updated description (optional)
Response: 200 OK
{
  "message": "Server updated successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Remove Server from Configuration

Remove a specific server from a configuration.
curl -X DELETE "http://localhost:8001/api/v1/configs/{config_identifier}/servers/{server_name}" \
  -H "Authorization: Bearer ${ADMIN_KEY}"
config_identifier
string
required
Configuration ID or name
server_name
string
required
Name of the server to remove
Response: 200 OK
{
  "message": "Server removed successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Update Server Guardrails

Update both input and output guardrail policies for a server.
curl -X PUT "http://localhost:8001/api/v1/configs/{config_identifier}/servers/{server_name}/guardrails" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "input_policy": {
      "enabled": true,
      "policy_name": "Strict Input Policy",
      "additional_config": {
        "pii_redaction": true
      },
      "block": ["policy_violation", "injection_attack", "nsfw"]
    },
    "output_policy": {
      "enabled": true,
      "policy_name": "Strict Output Policy",
      "additional_config": {
        "relevancy": true,
        "hallucination": true
      },
      "block": ["policy_violation", "nsfw"]
    }
  }'
config_identifier
string
required
Configuration ID or name
server_name
string
required
Name of the server
input_policy
object
Input guardrail policy configuration
output_policy
object
Output guardrail policy configuration
Response: 200 OK
{
  "message": "Guardrails updated successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Validate Configuration

Validate a configuration structure and server definitions.
curl -X POST "http://localhost:8001/api/v1/configs/{config_identifier}/validate" \
  -H "Authorization: Bearer ${ADMIN_KEY}"
config_identifier
string
required
Configuration ID or name
Response: 200 OK
{
  "message": "Configuration is valid",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Export Configuration

Export a configuration to a JSON file.
curl -X POST "http://localhost:8001/api/v1/configs/{config_identifier}/export" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"output_file": "/path/to/export.json"}'
config_identifier
string
required
Configuration ID or name
output_file
string
required
Path where the configuration will be exported
Response: 200 OK
{
  "message": "Configuration exported successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Import Configuration

Import a configuration from a JSON file.
curl -X POST "http://localhost:8001/api/v1/configs/import" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "input_file": "/path/to/import.json",
    "config_name": "imported-config"
  }'
input_file
string
required
Path to the configuration file to import
config_name
string
required
Name for the imported configuration
Response: 200 OK
{
  "message": "Configuration imported successfully",
  "timestamp": "2024-01-01T12:00:00.000000"
}

Search Configurations

Search configurations by name or content.
curl -X POST "http://localhost:8001/api/v1/configs/search" \
  -H "Authorization: Bearer ${ADMIN_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"search_term": "production"}'
search_term
string
required
Search query (matches against config names and server names)
Response: 200 OK
{
  "message": "Search completed successfully",
  "data": [
    {
      "mcp_config_id": "550e8400-e29b-41d4-a716-446655440000",
      "mcp_config_name": "production-config",
      "servers": 5
    }
  ],
  "timestamp": "2024-01-01T12:00:00.000000"
}

Next Steps

Project Endpoints

Manage projects and assign configurations

User Endpoints

Create and manage users

API Key Endpoints

Generate and rotate API keys

System Endpoints

System backup and restore

Build docs developers (and LLMs) love