We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chakri01/research-assistant-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
import streamlit as st
import json
import pandas as pd
from pathlib import Path
import plotly.express as px
st.title("📊 Metrics Dashboard")
log_dir = "./data/query_logs"
if not Path(log_dir).exists():
st.warning("No query logs found. Run some searches first!")
else:
# Load all logs
logs = []
for file in Path(log_dir).glob("*.jsonl"):
with open(file) as f:
for line in f:
logs.append(json.loads(line))
if logs:
df = pd.DataFrame(logs)
# Metrics
col1, col2, col3 = st.columns(3)
with col1:
st.metric("Total Queries", len(df))
with col2:
avg_latency = df['query_time_ms'].mean()
st.metric("Avg Latency", f"{avg_latency:.1f}ms")
with col3:
p95_latency = df['query_time_ms'].quantile(0.95)
st.metric("95th Percentile", f"{p95_latency:.1f}ms")
# Latency histogram
st.subheader("Query Latency Distribution")
fig = px.histogram(df, x='query_time_ms', nbins=20,
labels={'query_time_ms': 'Latency (ms)'})
st.plotly_chart(fig, use_container_width=True)
# Query history table
st.subheader("Query History")
display_df = df[['timestamp', 'query', 'query_time_ms', 'results_count', 'top_score']].copy()
display_df['timestamp'] = pd.to_datetime(display_df['timestamp']).dt.strftime('%Y-%m-%d %H:%M')
st.dataframe(display_df.sort_values('timestamp', ascending=False), use_container_width=True)
else:
st.info("No queries logged yet!")