FastMCP - Servidor de protocolo de contexto de modelo
Un servidor de Protocolo de Contexto de Modelo (MCP) liviano implementado con FastMCP , un marco rápido y Pythonic para crear servidores y clientes MCP.
Características
Crear, recuperar, actualizar y eliminar contextos de modelos
Ejecución de consultas en contextos específicos
Filtrar por nombre de modelo y etiquetas
Almacenamiento en memoria (para desarrollo)
Integración de FastMCP para un desarrollo sencillo del servidor MCP
Integración de Datadog para métricas y monitoreo
Related MCP server: PostgreSQL MCP Server
Requisitos
Python 3.7+
FastMCP
uv (recomendado para la gestión ambiental)
Cuenta Datadog (opcional, para métricas)
Instalación
Uso de uv (recomendado)
La forma más sencilla de instalarlo es utilizando los scripts proporcionados:
Unix/Linux/macOS
# Clone the repository
git clone https://github.com/yourusername/datadog-mcp-server.git
cd datadog-mcp-server
# Make the install script executable
chmod +x install.sh
# Run the installer
./install.shVentanas
# Clone the repository
git clone https://github.com/yourusername/datadog-mcp-server.git
cd datadog-mcp-server
# Run the installer
.\install.ps1Instalación manual
# Clone the repository
git clone https://github.com/yourusername/datadog-mcp-server.git
cd datadog-mcp-server
# Create and activate a virtual environment with uv
uv venv
# On Unix/Linux/macOS:
source .venv/bin/activate
# On Windows:
.\.venv\Scripts\activate
# Install dependencies
uv pip install -r requirements.txtConfiguración de Datadog
El servidor se integra con Datadog para métricas y monitorización. Puede configurar las credenciales de la API de Datadog de varias maneras:
1. Variables de entorno
Establezca estas variables de entorno antes de iniciar el servidor:
# Unix/Linux/macOS
export DATADOG_API_KEY=your_api_key
export DATADOG_APP_KEY=your_app_key # Optional
export DATADOG_SITE=datadoghq.com # Optional, default: datadoghq.com
# Windows PowerShell
$env:DATADOG_API_KEY = 'your_api_key'
$env:DATADOG_APP_KEY = 'your_app_key' # Optional
$env:DATADOG_SITE = 'datadoghq.com' # Optional2. Archivo .env
Cree un archivo .env en el directorio del proyecto:
DATADOG_API_KEY=your_api_key
DATADOG_APP_KEY=your_app_key
DATADOG_SITE=datadoghq.com3. Instalación de la CLI de FastMCP
Al instalar como una herramienta de Claude Desktop, puede pasar variables de entorno:
fastmcp install mcp_server.py --name "Model Context Server" -v DATADOG_API_KEY=your_api_key4. Configuración del tiempo de ejecución
Utilice la herramienta configure_datadog en tiempo de ejecución:
result = await client.call_tool("configure_datadog", {
"api_key": "your_api_key",
"app_key": "your_app_key", # Optional
"site": "datadoghq.com" # Optional
})Uso
Iniciando el servidor
# Start directly from activated environment
python mcp_server.py
# Or use uv run (no activation needed)
uv run python mcp_server.py
# Use FastMCP CLI for development (if in activated environment)
fastmcp dev mcp_server.py
# Use FastMCP CLI with uv (no activation needed)
uv run -m fastmcp dev mcp_server.pyInstalación como una herramienta de escritorio de Claude
# From activated environment
fastmcp install mcp_server.py --name "Model Context Server"
# Using uv directly
uv run python -m fastmcp install mcp_server.py --name "Model Context Server"
# With Datadog API key
fastmcp install mcp_server.py --name "Model Context Server" -v DATADOG_API_KEY=your_api_keyUsando las herramientas
El servidor proporciona las siguientes herramientas:
create_context- Crea un nuevo contextoget_context- Recuperar un contexto específicoupdate_context- Actualizar un contexto existentedelete_context- Eliminar un contextolist_contexts- Lista todos los contextos (con filtrado opcional)query_model- Ejecutar una consulta en un contexto específicohealth_check- Comprobación del estado del servidorconfigure_datadog- Configurar la integración de Datadog en tiempo de ejecución
Solicitudes de ejemplo
Creando un contexto
result = await client.call_tool("create_context", {
"context_id": "model-123",
"model_name": "gpt-3.5",
"data": {
"parameters": {
"temperature": 0.7
}
},
"tags": ["production", "nlp"]
})Ejecutar una consulta
result = await client.call_tool("query_model", {
"context_id": "model-123",
"query_data": {
"prompt": "Hello, world!"
}
})Configuración de Datadog
result = await client.call_tool("configure_datadog", {
"api_key": "your_datadog_api_key",
"app_key": "your_datadog_app_key", # Optional
"site": "datadoghq.com" # Optional
})Métricas de Datadog
El servidor informa las siguientes métricas a Datadog:
mcp.contexts.created- Eventos de creación de contextomcp.contexts.updated- Eventos de actualización de contextomcp.contexts.deleted- Eventos de eliminación de contextomcp.contexts.accessed- Eventos de acceso al contextomcp.contexts.total- Número total de contextosmcp.contexts.listed- Lista de eventos de operación de contextosmcp.queries.executed- Eventos de ejecución de consultasmcp.server.startup- Eventos de inicio del servidormcp.server.shutdown- Eventos de apagado del servidor
Desarrollo
Consulte el mcp_example.py incluido para ver un ejemplo de implementación del cliente:
# Run the example client (with activated environment)
python mcp_example.py
# Run with uv (no activation needed)
uv run python mcp_example.pyLicencia
Instituto Tecnológico de Massachusetts (MIT)