FastMCP

by ryuichi1208
  • Linux
  • Apple

Integrations

  • Allows configuration of the server through .env files, enabling storage of sensitive information like API keys outside of the codebase.

  • Provides metrics and monitoring integration, sending data about context operations (creation, updates, deletions, access), query executions, and server events to Datadog for observability and performance tracking.

FastMCP - Model Context Protocol Server

A lightweight Model Context Protocol (MCP) server implemented with FastMCP, a fast and Pythonic framework for building MCP servers and clients.

Features

  • Create, retrieve, update, and delete model contexts
  • Query execution against specific contexts
  • Filtering by model name and tags
  • In-memory storage (for development)
  • FastMCP integration for easy MCP server development
  • Datadog integration for metrics and monitoring

Requirements

  • Python 3.7+
  • FastMCP
  • uv (recommended for environment management)
  • Datadog account (optional, for metrics)

Installation

The simplest way to install is using the provided scripts:

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.sh
Windows
# Clone the repository git clone https://github.com/yourusername/datadog-mcp-server.git cd datadog-mcp-server # Run the installer .\install.ps1

Manual Installation

# 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.txt

Datadog Configuration

The server integrates with Datadog for metrics and monitoring. You can configure Datadog API credentials in several ways:

1. Environment Variables

Set these environment variables before starting the server:

# 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' # Optional

2. .env File

Create a .env file in the project directory:

DATADOG_API_KEY=your_api_key DATADOG_APP_KEY=your_app_key DATADOG_SITE=datadoghq.com

3. FastMCP CLI Installation

When installing as a Claude Desktop tool, you can pass environment variables:

fastmcp install mcp_server.py --name "Model Context Server" -v DATADOG_API_KEY=your_api_key

4. Runtime Configuration

Use the configure_datadog tool at runtime:

result = await client.call_tool("configure_datadog", { "api_key": "your_api_key", "app_key": "your_app_key", # Optional "site": "datadoghq.com" # Optional })

Usage

Starting the Server

# 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.py

Installing as a Claude Desktop Tool

# 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_key

Using the Tools

The server provides the following tools:

  • create_context - Create a new context
  • get_context - Retrieve a specific context
  • update_context - Update an existing context
  • delete_context - Delete a context
  • list_contexts - List all contexts (with optional filtering)
  • query_model - Execute a query against a specific context
  • health_check - Server health check
  • configure_datadog - Configure Datadog integration at runtime

Example Requests

Creating a Context

result = await client.call_tool("create_context", { "context_id": "model-123", "model_name": "gpt-3.5", "data": { "parameters": { "temperature": 0.7 } }, "tags": ["production", "nlp"] })

Executing a Query

result = await client.call_tool("query_model", { "context_id": "model-123", "query_data": { "prompt": "Hello, world!" } })

Configuring 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 })

Datadog Metrics

The server reports the following metrics to Datadog:

  • mcp.contexts.created - Context creation events
  • mcp.contexts.updated - Context update events
  • mcp.contexts.deleted - Context deletion events
  • mcp.contexts.accessed - Context access events
  • mcp.contexts.total - Total number of contexts
  • mcp.contexts.listed - List contexts operation events
  • mcp.queries.executed - Query execution events
  • mcp.server.startup - Server startup events
  • mcp.server.shutdown - Server shutdown events

Development

See the included mcp_example.py for a client implementation example:

# Run the example client (with activated environment) python mcp_example.py # Run with uv (no activation needed) uv run python mcp_example.py

License

MIT

Resources

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.
    Last updated -
    48
    4
    TypeScript
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that provides file system operations, analysis, and manipulation capabilities through a standardized tool interface.
    Last updated -
    1
    TypeScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.
    Last updated -
    46
    2
    Python
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server for data wrangling that provides standardized interfaces for data preprocessing, transformation, and analysis tasks including data aggregation and descriptive statistics.
    Last updated -
    1
    Python
    MIT License
    • Linux
    • Apple

View all related MCP servers

ID: qhguasjdci