Crypto Sentinel Agent
Enables querying cryptocurrency market data, refreshing data from CoinGecko, and performing market analysis through a FastMCP agent backed by a dlt pipeline and FastAPI.
README
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:
- Data Pipeline: A
dltpipeline that ingests cryptocurrency market data from the CoinGecko API and loads it into a local DuckDB database. - API Backend: A
FastAPIapplication that exposes the data from the DuckDB database through a REST API. - Agent: A
FastMCPagent that provides tools to interact with the API, refresh the data, and perform market analysis.
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:
- Fetch the top 10 cryptocurrencies by market cap from the CoinGecko API.
- Load the data into a DuckDB database named
crypto_pipeline.duckdb. - The data is stored in a table named
top_coinswithin themarket_dataschema.
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 supportsmin_priceandlimitquery 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 thedltpipeline 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: Showsdltmetadata 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.