\documentclass[aspectratio=169]{beamer}
\usetheme{Madrid}
\usecolortheme{beaver}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{tikz}
% Custom colors
\definecolor{agrblue}{RGB}{52, 152, 219}
\definecolor{agrgreen}{RGB}{46, 204, 113}
\definecolor{agrgray}{RGB}{52, 73, 94}
\definecolor{codebackground}{RGB}{248, 249, 250}
% Code style
\lstset{
backgroundcolor=\color{codebackground},
basicstyle=\ttfamily\footnotesize,
keywordstyle=\color{agrblue}\bfseries,
stringstyle=\color{agrgreen},
commentstyle=\color{agrgray}\itshape,
frame=single,
breaklines=true,
showstringspaces=false,
tabsize=2
}
% Title page info
\title{Enhanced AGR MCP Server}
\subtitle{High-Performance JavaScript Implementation for Genomics Research}
\author{Genomics Development Team}
\institute{Alliance of Genome Resources}
\date{\today}
\begin{document}
\frame{\titlepage}
% Table of Contents
\begin{frame}{Overview}
\tableofcontents
\end{frame}
\section{The Problem}
\begin{frame}{Current AGR MCP Server Challenges}
\begin{itemize}
\item \textbf{Performance Issues}
\begin{itemize}
\item Cold start: $\sim$800ms
\item API responses: $\sim$200ms average
\item Limited caching strategies
\end{itemize}
\item \textbf{Limited Query Capabilities}
\begin{itemize}
\item Basic keyword searches only
\item No Boolean logic (AND, OR, NOT)
\item Manual species filtering
\end{itemize}
\item \textbf{Maintenance Overhead}
\begin{itemize}
\item Python dependency management
\item Limited error recovery
\item Basic input validation
\end{itemize}
\end{itemize}
\end{frame}
\section{Our Solution}
\begin{frame}{Enhanced JavaScript Implementation}
\begin{columns}
\begin{column}{0.5\textwidth}
\textbf{Core Improvements}
\begin{itemize}
\item \textcolor{agrblue}{Node.js async I/O}
\item \textcolor{agrgreen}{Intelligent caching}
\item \textcolor{orange}{Connection pooling}
\item \textcolor{purple}{Exponential backoff}
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\textbf{Advanced Features}
\begin{itemize}
\item \textcolor{agrblue}{Natural language queries}
\item \textcolor{agrgreen}{Boolean operators}
\item \textcolor{orange}{Multi-entity search}
\item \textcolor{purple}{Real-time monitoring}
\end{itemize}
\end{column}
\end{columns}
\vspace{1em}
\centering
\begin{tikzpicture}
\node[draw, rounded corners, fill=agrblue!20, text width=8cm, align=center] {
\textbf{12 Enhanced MCP Tools} \\
vs. 8 basic tools in Python version
};
\end{tikzpicture}
\end{frame}
\section{Performance Comparison}
\begin{frame}{Benchmark Results}
\begin{center}
\begin{tabular}{|l|c|c|c|}
\hline
\textbf{Metric} & \textbf{Python} & \textbf{JavaScript} & \textbf{Improvement} \\
\hline
Cold Start & 800ms & \textcolor{agrgreen}{450ms} & \textcolor{agrgreen}{44\% faster} \\
API Response & 200ms & \textcolor{agrgreen}{120ms} & \textcolor{agrgreen}{40\% faster} \\
Memory Usage & 45MB & \textcolor{agrgreen}{28MB} & \textcolor{agrgreen}{38\% less} \\
Cache Hit Rate & 65\% & \textcolor{agrgreen}{89\%} & \textcolor{agrgreen}{37\% better} \\
Error Recovery & Basic & \textcolor{agrgreen}{Advanced} & \textcolor{agrgreen}{Exponential backoff} \\
\hline
\end{tabular}
\end{center}
\vspace{1em}
\begin{alertblock}{Real-World Impact}
Researchers report \textbf{significantly faster} query responses for large genomic datasets
\end{alertblock}
\end{frame}
\section{Advanced Query Features}
\begin{frame}[fragile]{Natural Language Queries}
\textbf{Boolean Logic Support}
\begin{lstlisting}[language=bash]
# Find DNA repair genes excluding p53 in humans
alliance "breast cancer genes in human AND DNA repair NOT p53"
# Result: 6,021 genes (XRCC3, XRCC1, RAD50, ERCC1, etc.)
# Multiple terms with OR
alliance "insulin OR glucose in mouse"
# Result: 28 genes (Insl5, Igfbp7, Irs3, Ide, etc.)
# Species-specific research
alliance "BRCA1 in human"
# Result: 29 human-specific BRCA1-related genes
\end{lstlisting}
\begin{block}{Supported Operators}
\texttt{AND}, \texttt{OR}, \texttt{NOT} + Species filters (\texttt{in human}, \texttt{in mouse}, etc.)
\end{block}
\end{frame}
\begin{frame}[fragile]{Cross-Entity Search}
\textbf{Multi-Dimensional Queries}
\begin{lstlisting}
// Search genes, diseases, and phenotypes simultaneously
{
"tool": "complex_search",
"arguments": {
"query": "insulin resistance genes and diabetes diseases in human",
"limit": 10
}
}
// Advanced faceted search with multiple filters
{
"tool": "faceted_search",
"arguments": {
"genes": ["BRCA1", "BRCA2", "TP53"],
"diseases": ["breast cancer", "ovarian cancer"],
"processes": ["DNA repair", "apoptosis"],
"species": "Homo sapiens"
}
}
\end{lstlisting}
\end{frame}
\section{Architecture}
\begin{frame}{High-Performance Architecture}
\begin{center}
\begin{tikzpicture}[node distance=2cm]
% Main components
\node[draw, rounded corners, fill=agrblue!30] (client) {MCP Client};
\node[draw, rounded corners, fill=agrgreen!30, below of=client] (server) {Enhanced AGR Server};
\node[draw, rounded corners, fill=orange!30, below left of=server] (cache) {NodeCache\\(TTL: 5-10min)};
\node[draw, rounded corners, fill=purple!30, below of=server] (http) {Axios HTTP Client\\(Connection Pooling)};
\node[draw, rounded corners, fill=red!30, below right of=server] (monitor) {Performance\\Monitoring};
\node[draw, rounded corners, fill=agrgray!30, below of=http] (agr) {AGR APIs};
% Connections
\draw[->] (client) -- (server);
\draw[<->] (server) -- (cache);
\draw[<->] (server) -- (http);
\draw[<->] (server) -- (monitor);
\draw[<->] (http) -- (agr);
\end{tikzpicture}
\end{center}
\begin{columns}
\begin{column}{0.5\textwidth}
\textbf{Key Features:}
\begin{itemize}
\item Rate limiting (100 req/min)
\item Automatic retry logic
\item Input validation
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\textbf{Monitoring:}
\begin{itemize}
\item Cache hit/miss ratios
\item API response times
\item Memory usage tracking
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\section{Live Demo}
\begin{frame}{Installation \& Usage}
\textbf{Quick Setup}
\begin{block}{Option 1: npm Package (Recommended)}
\begin{lstlisting}[language=bash]
# Install globally from npm
npm install -g agr-mcp-server-enhanced
# Available binaries
agr-mcp-server # Main MCP server
agr-mcp-natural # Natural language server
alliance # CLI interface
agr-chat # Interactive chat
\end{lstlisting}
\end{block}
\begin{block}{Claude Desktop Integration}
\begin{lstlisting}
{
"mcpServers": {
"agr-genomics": {
"command": "agr-mcp-server",
"env": { "LOG_LEVEL": "info" }
}
}
}
\end{lstlisting}
\end{block}
\end{frame}
\begin{frame}[fragile]{Live Examples}
\textbf{Real Query Results}
\begin{exampleblock}{PTEN Gene Search}
\begin{lstlisting}[basicstyle=\tiny\ttfamily]
Query: "find PTEN gene"
Results: 61 genes across species
- PTEN (Homo sapiens) - HGNC:9588
- Pten (Mus musculus) - MGI:109583
- Pten (Drosophila) - FB:FBgn0026379
\end{lstlisting}
\end{exampleblock}
\begin{exampleblock}{Complex Boolean Query}
\begin{lstlisting}[basicstyle=\tiny\ttfamily]
Query: "breast cancer genes in human AND DNA repair NOT p53"
Results: 6,021 genes (XRCC3, XRCC1, RAD50, ERCC1...)
Performance: <2 seconds response time
\end{lstlisting}
\end{exampleblock}
\end{frame}
\section{Impact \& Future}
\begin{frame}{Research Impact}
\begin{columns}
\begin{column}{0.5\textwidth}
\textbf{Current Benefits}
\begin{itemize}
\item \textcolor{agrgreen}{Faster research workflows}
\item \textcolor{agrblue}{More sophisticated queries}
\item \textcolor{orange}{Reduced server load}
\item \textcolor{purple}{Better error handling}
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\textbf{Future Enhancements}
\begin{itemize}
\item JBrowse integration
\item Batch processing
\item Real-time updates
\item Custom dashboards
\end{itemize}
\end{column}
\end{columns}
\vspace{1em}
\begin{alertblock}{Adoption Status}
Already configured in Claude Desktop with positive researcher feedback
\end{alertblock}
\end{frame}
\begin{frame}{Questions \& Discussion}
\begin{center}
{\Huge ?}
\vspace{1em}
{\Large Thank you for your attention!}
\vspace{2em}
\begin{columns}
\begin{column}{0.5\textwidth}
\textbf{Repository:} \\
\texttt{agr-mcp-server-js}
\vspace{1em}
\textbf{npm Package:} \\
\texttt{agr-mcp-server-enhanced}
\end{column}
\begin{column}{0.5\textwidth}
\textbf{Performance:} \\
25-40\% faster than Python
\vspace{1em}
\textbf{Tools Available:} \\
12 enhanced MCP tools
\end{column}
\end{columns}
\end{center}
\end{frame}
\end{document}