Skip to main content
Glama
AdamNone

Crypto Sentinel Agent

by AdamNone

DLT, FastAPI, and FastMCP Integration

This project is a demonstration of how to integrate dlt (data load tool), FastAPI, and FastMCP to create a simple cryptocurrency market analysis agent.

Project Overview

The project consists of three main components:

  1. Data Pipeline: A dlt pipeline that ingests cryptocurrency market data from the CoinGecko API and loads it into a local DuckDB database.

  2. API Backend: A FastAPI application that exposes the data from the DuckDB database through a REST API.

  3. Agent: A FastMCP agent that provides tools to interact with the API, refresh the data, and perform market analysis.

Related MCP server: mcp-coincap-jj

How it Works

┌───────────────────┐      ┌──────────────────┐      ┌──────────────────┐
│   CoinGecko API   │ ◄─── │   dlt Pipeline   │ ───► │  DuckDB Database │
└───────────────────┘      └──────────────────┘      └──────────────────┘
                                                          ▲
                                                          │
                                                          │
┌───────────────────┐      ┌──────────────────┐      ┌────┴─────┐
│      User         │ ◄─── │  FastMCP Agent   │ ◄─── │  FastAPI  │
└───────────────────┘      └──────────────────┘      └──────────┘

Components

Data Pipeline (dlt)

The data pipeline is defined in data_pipeline/ingest_coins.py. It uses the dlt library to:

  1. Fetch the top 10 cryptocurrencies by market cap from the CoinGecko API.

  2. Load the data into a DuckDB database named crypto_pipeline.duckdb.

  3. The data is stored in a table named top_coins within the market_data schema.

API Backend (FastAPI)

The API backend is defined in backend.py. It uses the FastAPI framework to create a simple API with the following endpoints:

  • GET /: Returns a status message.

  • GET /coins: Returns a list of cryptocurrencies from the database. It supports min_price and limit query parameters for filtering and pagination.

Agent (fastmcp)

The agent is defined in agent.py. It uses the FastMCP framework to create an agent with the following tools:

  • get_crypto_market_data: Fetches cryptocurrency data from the FastAPI backend.

  • refresh_data: Triggers the dlt pipeline to refresh the data from the CoinGecko API.

  • analyze_market: Performs a simple market analysis on the data.

How to Run

1. Install Dependencies

Install the required Python packages from requirements.txt:

pip install -r requirements.txt

2. Run the Data Pipeline

Run the data pipeline to populate the database:

python data_pipeline/ingest_coins.py

This will create a crypto_pipeline.duckdb file in the project root.

3. Run the API Backend

Start the FastAPI server:

python backend.py

The API will be available at http://localhost:8000.

4. Run the Agent

In a separate terminal, run the agent:

python agent.py

You can now interact with the agent in your terminal.

Verifying the Data

You can manually verify the data in the database using the provided scripts:

  • check_data.py: Shows the top 5 coins by price.

  • check_metadata.py: Shows dlt metadata for the loaded data.

Run them like this:

python check_data.py
python check_metadata.py

Adding the Agent to Gemini CLI

To add the FastMCP agent to the Gemini CLI, create a settings.json file inside your .gemini folder (if it doesn't already exist). Then, copy and paste the following configuration into your settings.json file:

{
  "mcpServers": {
    "Crypto Sentinel Agent": {
      "command": "/Users/adpuz/Documents/Projects/dlt_fastapi_mcp/.venv/bin/python",
      "args": [
        "/Users/adpuz/Documents/Projects/dlt_fastapi_mcp/agent.py"
      ]
    }
  }
}

Make sure the command and args paths are correct for your environment. After saving the settings.json file, you can use the @Crypto Sentinel Agent in the Gemini CLI to interact with your agent, for example, by typing @Crypto Sentinel Agent check the latest crypto market data.

Related MCP Connectors

  • Your agent needs crypto prices it can rely on — spot, ranked market tables, history, OHLC, per-venue tickers, and what is trending right now. **What you can ask for** • "What is the price of these 20 tokens in USD and EUR right now?" • "Give me the top 100 by market cap with 24h and 7d change." • "Chart this coin's price over the last year, hourly." • "Where does this token trade, and at what spread per venue?" • "What is trending on CoinGecko today?" **How to use it** Point any MCP client at https://mcp.aisa.one/crypto-market-data/mcp and sign in with OAuth — there is no key to create or paste. 21 CoinGecko tools: simple price and token price by contract, supported currencies, coin list and detail, ranked markets, history, market charts and ranges, OHLC, per-coin tickers, categories, exchanges and their tickers, token data and charts, and trending. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Price the token here, then ask the same agent what X is posting about it — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/finance/mcp for equities, crypto and prediction markets in one place.

  • Market Data App MCP — wraps the Market Data App API (marketdata.app)

  • CoinGecko MCP — wraps CoinGecko free API (no auth required)

  • Agent-native crypto market-data over MCP+REST: order flow, whales, liquidations, calibrated scores

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the CoinGecko Pro API to access cryptocurrency data including price history and market metrics through both MCP and OpenAI function calling.
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface. Updated to use Coin Cap API v3
    3
    79 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for accessing crypto market data (prices, portfolio analytics) from CoinGecko and performing RAG-based search over internal documents with responsible-AI guardrails.
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables fetching cryptocurrency prices, historical OHLC data, and news via CryptoCompare API through an MCP gateway.
    4 npm
    MIT