330 lines
7.1 KiB
Plaintext
330 lines
7.1 KiB
Plaintext
|
|
# MCP Server Configuration - TOML Export
|
||
|
|
# Generates TOML configuration for Model Context Protocol (MCP) server
|
||
|
|
# Supports 4 deployment modes: solo, multiuser, cicd, enterprise
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# nickel export --format toml mcp-server-config.toml.ncl > mcp-server.toml
|
||
|
|
|
||
|
|
{
|
||
|
|
# Server Configuration
|
||
|
|
server = {
|
||
|
|
host = "0.0.0.0",
|
||
|
|
port = 8888,
|
||
|
|
|
||
|
|
# Protocol: "stdio" (process-based) or "http" (network-based)
|
||
|
|
protocol = "stdio",
|
||
|
|
|
||
|
|
workers = 4,
|
||
|
|
keep_alive = 75,
|
||
|
|
},
|
||
|
|
|
||
|
|
# MCP Capabilities Configuration
|
||
|
|
capabilities = {
|
||
|
|
# Tools: functions available to Claude and other LLMs
|
||
|
|
tools = {
|
||
|
|
enabled = true,
|
||
|
|
max_concurrent = 10,
|
||
|
|
timeout = 30000, # milliseconds
|
||
|
|
categories = [
|
||
|
|
"orchestrator",
|
||
|
|
"provisioning",
|
||
|
|
"workspace",
|
||
|
|
"configuration",
|
||
|
|
"system",
|
||
|
|
],
|
||
|
|
},
|
||
|
|
|
||
|
|
# Resources: files, databases, external systems
|
||
|
|
resources = {
|
||
|
|
enabled = true,
|
||
|
|
max_size = 1073741824, # 1GB in bytes
|
||
|
|
caching = {
|
||
|
|
enabled = true,
|
||
|
|
ttl = 3600, # seconds (1 hour)
|
||
|
|
max_entries = 1000,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Prompts: predefined prompts for Claude
|
||
|
|
prompts = {
|
||
|
|
enabled = true,
|
||
|
|
max_length = 10000,
|
||
|
|
template_engine = "jinja2",
|
||
|
|
},
|
||
|
|
|
||
|
|
# Sampling: model configuration for LLM calls
|
||
|
|
sampling = {
|
||
|
|
enabled = false,
|
||
|
|
models = ["claude-3-opus", "claude-3-sonnet"],
|
||
|
|
default_model = "claude-3-opus",
|
||
|
|
temperature = 0.7,
|
||
|
|
max_tokens = 4096,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Tool Configuration
|
||
|
|
tools = {
|
||
|
|
# Orchestrator tools
|
||
|
|
orchestrator = {
|
||
|
|
enabled = true,
|
||
|
|
submit_workflow = {
|
||
|
|
description = "Submit a workflow to the orchestrator",
|
||
|
|
timeout = 60000,
|
||
|
|
},
|
||
|
|
list_workflows = {
|
||
|
|
description = "List all workflows",
|
||
|
|
timeout = 10000,
|
||
|
|
},
|
||
|
|
get_workflow = {
|
||
|
|
description = "Get workflow details",
|
||
|
|
timeout = 10000,
|
||
|
|
},
|
||
|
|
cancel_workflow = {
|
||
|
|
description = "Cancel a running workflow",
|
||
|
|
timeout = 30000,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Provisioning tools
|
||
|
|
provisioning = {
|
||
|
|
enabled = true,
|
||
|
|
deploy_infrastructure = {
|
||
|
|
description = "Deploy infrastructure",
|
||
|
|
timeout = 300000,
|
||
|
|
},
|
||
|
|
validate_config = {
|
||
|
|
description = "Validate provisioning configuration",
|
||
|
|
timeout = 30000,
|
||
|
|
},
|
||
|
|
list_deployments = {
|
||
|
|
description = "List deployments",
|
||
|
|
timeout = 10000,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Workspace tools
|
||
|
|
workspace = {
|
||
|
|
enabled = true,
|
||
|
|
list_workspaces = {
|
||
|
|
description = "List workspaces",
|
||
|
|
timeout = 10000,
|
||
|
|
},
|
||
|
|
create_workspace = {
|
||
|
|
description = "Create a new workspace",
|
||
|
|
timeout = 60000,
|
||
|
|
},
|
||
|
|
delete_workspace = {
|
||
|
|
description = "Delete a workspace",
|
||
|
|
timeout = 60000,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Resource Configuration
|
||
|
|
resources = {
|
||
|
|
# File system resources
|
||
|
|
file_system = {
|
||
|
|
enabled = true,
|
||
|
|
root_path = "/var/lib/provisioning",
|
||
|
|
allow_write = false,
|
||
|
|
allowed_extensions = ["ncl", "toml", "yaml", "json", "txt"],
|
||
|
|
max_file_size = 10485760, # 10MB in bytes
|
||
|
|
},
|
||
|
|
|
||
|
|
# Database resources
|
||
|
|
database = {
|
||
|
|
enabled = true,
|
||
|
|
connections = {
|
||
|
|
orchestrator = {
|
||
|
|
type = "http",
|
||
|
|
url = "http://orchestrator:9090/api",
|
||
|
|
},
|
||
|
|
control_center = {
|
||
|
|
type = "http",
|
||
|
|
url = "http://control-center:8080/api",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# External API resources
|
||
|
|
external_apis = {
|
||
|
|
enabled = true,
|
||
|
|
allowed_domains = [
|
||
|
|
"orchestrator:9090",
|
||
|
|
"control-center:8080",
|
||
|
|
"api.example.com",
|
||
|
|
],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Prompt Configuration
|
||
|
|
prompts = {
|
||
|
|
# System prompts available to Claude
|
||
|
|
system_prompts = {
|
||
|
|
infrastructure_expert = {
|
||
|
|
name = "Infrastructure Expert",
|
||
|
|
description = "Expert in provisioning and infrastructure management",
|
||
|
|
content = "You are an expert in cloud infrastructure and provisioning systems.",
|
||
|
|
},
|
||
|
|
workflow_assistant = {
|
||
|
|
name = "Workflow Assistant",
|
||
|
|
description = "Assistant for orchestrating workflows",
|
||
|
|
content = "You are an assistant for managing and orchestrating workflows.",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# User prompts
|
||
|
|
user_prompts = {
|
||
|
|
enabled = true,
|
||
|
|
max_custom = 50, # Maximum custom user prompts
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Integration Configuration
|
||
|
|
integration = {
|
||
|
|
# Orchestrator integration
|
||
|
|
orchestrator = {
|
||
|
|
enabled = true,
|
||
|
|
url = "http://orchestrator:9090",
|
||
|
|
timeout = 30, # seconds
|
||
|
|
auth = {
|
||
|
|
method = "jwt",
|
||
|
|
token = "${ORCHESTRATOR_TOKEN}",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Control Center integration
|
||
|
|
control_center = {
|
||
|
|
enabled = true,
|
||
|
|
url = "http://control-center:8080",
|
||
|
|
timeout = 30,
|
||
|
|
auth = {
|
||
|
|
method = "jwt",
|
||
|
|
token = "${CONTROL_CENTER_TOKEN}",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Claude integration
|
||
|
|
claude = {
|
||
|
|
enabled = true,
|
||
|
|
api_key = "${CLAUDE_API_KEY}",
|
||
|
|
model = "claude-3-opus-20240229",
|
||
|
|
max_tokens = 4096,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Security Configuration
|
||
|
|
security = {
|
||
|
|
# Authentication
|
||
|
|
auth = {
|
||
|
|
enabled = true,
|
||
|
|
method = "jwt",
|
||
|
|
jwt_secret = "${JWT_SECRET}",
|
||
|
|
},
|
||
|
|
|
||
|
|
# Authorization
|
||
|
|
authorization = {
|
||
|
|
enabled = true,
|
||
|
|
role_based = true,
|
||
|
|
default_role = "viewer",
|
||
|
|
},
|
||
|
|
|
||
|
|
# Rate limiting
|
||
|
|
rate_limit = {
|
||
|
|
enabled = true,
|
||
|
|
requests_per_second = 100,
|
||
|
|
burst_size = 20,
|
||
|
|
},
|
||
|
|
|
||
|
|
# Input validation
|
||
|
|
input_validation = {
|
||
|
|
enabled = true,
|
||
|
|
max_input_size = 1000000, # 1MB
|
||
|
|
sanitize_inputs = true,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Monitoring and Observability
|
||
|
|
monitoring = {
|
||
|
|
enabled = true,
|
||
|
|
|
||
|
|
# Metrics
|
||
|
|
metrics = {
|
||
|
|
enabled = true,
|
||
|
|
interval = 30,
|
||
|
|
export_format = "prometheus",
|
||
|
|
},
|
||
|
|
|
||
|
|
# Health checks
|
||
|
|
health_check = {
|
||
|
|
enabled = true,
|
||
|
|
interval = 30,
|
||
|
|
timeout = 10,
|
||
|
|
},
|
||
|
|
|
||
|
|
# Audit logging
|
||
|
|
audit = {
|
||
|
|
enabled = true,
|
||
|
|
log_all_requests = true,
|
||
|
|
log_sensitive_data = false,
|
||
|
|
retention_days = 90,
|
||
|
|
},
|
||
|
|
|
||
|
|
# Error tracking
|
||
|
|
error_tracking = {
|
||
|
|
enabled = true,
|
||
|
|
sample_rate = 1.0,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
# Logging Configuration
|
||
|
|
logging = {
|
||
|
|
level = "info",
|
||
|
|
format = "json",
|
||
|
|
outputs = [
|
||
|
|
{
|
||
|
|
destination = "stdout",
|
||
|
|
level = "info",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
destination = "file",
|
||
|
|
path = "/var/log/provisioning/mcp-server/mcp-server.log",
|
||
|
|
level = "debug",
|
||
|
|
rotation = {
|
||
|
|
max_size = "100MB",
|
||
|
|
max_backups = 10,
|
||
|
|
max_age = 30,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
|
||
|
|
# Feature Flags
|
||
|
|
features = {
|
||
|
|
enable_audit_logging = true,
|
||
|
|
enable_caching = true,
|
||
|
|
enable_sampling = false, # Experimental LLM sampling
|
||
|
|
enable_experimental_tools = false,
|
||
|
|
},
|
||
|
|
|
||
|
|
# Performance Tuning
|
||
|
|
performance = {
|
||
|
|
# Thread pool sizes
|
||
|
|
worker_threads = 4,
|
||
|
|
blocking_threads = 2,
|
||
|
|
|
||
|
|
# Timeouts
|
||
|
|
default_timeout = 30000, # milliseconds
|
||
|
|
max_timeout = 300000, # milliseconds
|
||
|
|
|
||
|
|
# Buffering
|
||
|
|
request_buffer_size = 1000,
|
||
|
|
response_buffer_size = 1000,
|
||
|
|
|
||
|
|
# Caching
|
||
|
|
cache_enabled = true,
|
||
|
|
cache_size = "256MB",
|
||
|
|
cache_ttl = 3600,
|
||
|
|
},
|
||
|
|
}
|