Skip to content
Star -

Reference

Related Topics: Concepts (understand MXCP) | Tutorials (learn by doing) | YAML Schemas (configuration files) | Quality (testing, validation)

This section provides comprehensive reference documentation for all MXCP components.

Looking for how to do something? See Common Tasks - quick answers to “How do I…?” questions.

Quick how-to reference for frequent tasks:

  • Adding authentication
  • Filtering sensitive data
  • Writing tests
  • Configuring production

Complete command-line interface documentation:

  • All commands and options
  • Output formats
  • Environment variables
  • Error handling

SQL capabilities in MXCP:

  • DuckDB SQL syntax
  • Built-in authentication functions
  • Parameter binding
  • Common extensions

Python runtime API:

  • Database access (db)
  • Configuration (config)
  • Plugin access (plugins)
  • Lifecycle hooks

Plugin development guide:

  • Plugin structure
  • UDF definition
  • Type mapping
  • Authentication integration
Terminal window
# Project management
mxcp init # Initialize project
mxcp init --bootstrap # With example endpoint
# Server
mxcp serve # Start server (default transport)
mxcp serve --transport stdio # For Claude Desktop
mxcp serve --transport streamable-http # HTTP API
# Development
mxcp validate # Validate endpoints
mxcp test # Run tests
mxcp lint # Check metadata quality
mxcp list # List endpoints
# Execution
mxcp run tool my_tool # Run a tool
mxcp query "SELECT 1" # Execute SQL
# Quality
mxcp evals # Run LLM evaluations
mxcp drift-snapshot # Create baseline
mxcp drift-check # Check for drift
# Audit
mxcp log # Query audit logs
mxcp log-cleanup # Apply retention
# dbt
mxcp dbt-config # Generate dbt config
mxcp dbt run # Run dbt models
from mxcp.runtime import db, config, plugins, on_init, on_shutdown
# Database
results = db.execute("SELECT * FROM users WHERE id = $id", {"id": 123})
# Configuration
secret = config.get_secret("api_key")
setting = config.get_setting("project")
# Plugins
plugin = plugins.get("my_plugin")
# Lifecycle
@on_init
def setup():
print("Starting")
@on_shutdown
def cleanup():
print("Stopping")
-- Authentication (when enabled)
SELECT get_username();
SELECT get_user_email();
SELECT get_user_provider();
SELECT get_user_external_token();
-- Request headers (HTTP transport)
SELECT get_request_header('Authorization');
SELECT get_request_headers_json();
-- Parameters
SELECT * FROM users WHERE id = $user_id;
YAML TypePython TypeDuckDB Type
stringstrVARCHAR
integerintINTEGER
numberfloatDOUBLE
booleanboolBOOLEAN
arraylistArray
objectdictSTRUCT/JSON

See Type System for format annotations, constraints, and sensitive data marking.

VariableDescription
MXCP_DEBUGEnable debug logging
MXCP_PROFILEDefault profile
MXCP_READONLYRead-only mode
MXCP_DUCKDB_PATHOverride DuckDB path
MXCP_CONFIG_PATHUser config path
VariableDescription
OTEL_EXPORTER_OTLP_ENDPOINTOTLP collector endpoint
OTEL_SERVICE_NAMEService name
MXCP_TELEMETRY_ENABLEDEnable/disable telemetry
VariableDescription
MXCP_ADMIN_ENABLEDEnable admin socket
MXCP_ADMIN_SOCKETAdmin socket path
my-project/
├── mxcp-site.yml # Project configuration (required)
├── tools/ # Tool definitions
├── resources/ # Resource definitions
├── prompts/ # Prompt definitions
├── python/ # Python code
├── plugins/ # DuckDB plugins
├── sql/ # SQL files
├── data/ # DuckDB database files
├── evals/ # Evaluation suites
├── drift/ # Drift snapshots
├── audit/ # Audit logs
├── models/ # dbt models
└── target/ # dbt output