
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
mcp-reports-server
Advanced tools
Comprehensive MCP server for generating various reports with intelligent data presentation
A comprehensive Model Context Protocol (MCP) server for generating various business reports with intelligent data presentation. This server provides multiple report types and AI-driven presentation suggestions to help you analyze and visualize your business data effectively.
npm install -g mcp-reports-server
git clone https://github.com/yourusername/mcp-reports-server.git
cd mcp-reports-server
npm install
mcp-reports-server
smart_report_selector
🧠Intelligently select and run multiple reports based on natural language queries.
Parameters:
query
(string): Describe what reports you need (e.g., "Show me sales and user data for last month")timeframe
(string): Time period (e.g., "last 30 days", "this quarter")filters
(object): Additional filters to applyExample:
await callTool('smart_report_selector', {
query: "I need to see our sales performance and user engagement for the last quarter",
timeframe: "last 90 days"
});
sales_report
💰Generate comprehensive sales reports with revenue and performance metrics.
Parameters:
timeframe
(string): Time period for analysisgroupBy
(string): How to group data (day, week, month, quarter, year, product, category, region)metrics
(array): Which metrics to include (revenue, orders, average_order_value, units_sold, conversion_rate)filters
(object): Additional filters (product_category, region, customer_segment, min_order_value)Example:
await callTool('sales_report', {
timeframe: "last 30 days",
groupBy: "day",
metrics: ["revenue", "orders", "average_order_value"],
filters: { product_category: "Electronics" }
});
user_analytics_report
👥Generate user engagement and analytics reports.
Parameters:
timeframe
(string): Time period for analysismetrics
(array): User metrics (active_users, new_users, retention_rate, session_duration, page_views, bounce_rate)segmentation
(string): How to segment users (age_group, location, device_type, acquisition_channel)Example:
await callTool('user_analytics_report', {
timeframe: "last 30 days",
metrics: ["active_users", "retention_rate", "session_duration"],
segmentation: "device_type"
});
financial_report
💼Generate financial reports including profit/loss and expense analysis.
Parameters:
timeframe
(string): Time period for financial analysisreportType
(string): Type of report (profit_loss, cash_flow, balance_sheet, expense_analysis)currency
(string): Currency for the reportExample:
await callTool('financial_report', {
timeframe: "this quarter",
reportType: "profit_loss",
currency: "USD"
});
format_as_table
📋Format any data as a structured table for display.
Parameters:
data
(array): Array of data objects to formattitle
(string): Table titlecolumns
(array): Column definitionsExample:
await callTool('format_as_table', {
data: reportData,
title: "Sales Performance Summary",
columns: [
{ key: "date", label: "Date", type: "date" },
{ key: "revenue", label: "Revenue", type: "number" }
]
});
format_as_chart
📈Format data as chart configuration for visualization.
Parameters:
data
(array): Data for chartchartType
(string): Type of chart (bar, line, pie, scatter)title
(string): Chart titlexAxis
(string): X-axis fieldyAxis
(string): Y-axis fieldExample:
await callTool('format_as_chart', {
data: salesData,
chartType: "line",
title: "Revenue Trend",
xAxis: "date",
yAxis: "revenue"
});
prepare_download
💾Prepare data for download in various formats.
Parameters:
data
(array): Data to prepare for downloadformat
(string): Download format (csv, json, excel)filename
(string): Suggested filenameExample:
await callTool('prepare_download', {
data: reportData,
format: "csv",
filename: "sales_report_2024"
});
Add to your MCP client configuration:
{
"mcpServers": {
"reports": {
"command": "mcp-reports-server",
"args": [],
"env": {},
"disabled": false,
"autoApprove": [
"smart_report_selector",
"sales_report",
"user_analytics_report",
"financial_report",
"format_as_table",
"format_as_chart",
"prepare_download"
]
}
}
}
{
"mcpServers": {
"reports": {
"command": "npx",
"args": ["--yes", "mcp-reports-server"],
"env": {},
"disabled": false
}
}
}
{
"mcpServers": {
"reports": {
"command": "uvx",
"args": ["mcp-reports-server"],
"env": {},
"disabled": false
}
}
}
// Get intelligent report selection
const overview = await callTool('smart_report_selector', {
query: "Give me a complete business overview including sales, users, and financials",
timeframe: "last 30 days"
});
// Format key metrics as a table
await callTool('format_as_table', {
data: overview.results[0].data.data,
title: "Key Business Metrics"
});
// Create trend charts
await callTool('format_as_chart', {
data: overview.results[0].data.data,
chartType: "line",
title: "Revenue Trend"
});
// Get detailed sales report
const salesReport = await callTool('sales_report', {
timeframe: "last 90 days",
groupBy: "week",
metrics: ["revenue", "orders", "average_order_value"]
});
// Visualize as bar chart
await callTool('format_as_chart', {
data: salesReport.data,
chartType: "bar",
title: "Weekly Sales Performance",
xAxis: "period",
yAxis: "revenue"
});
// Prepare for download
await callTool('prepare_download', {
data: salesReport.data,
format: "excel",
filename: "sales_analysis_q4_2024"
});
// Get user analytics
const userReport = await callTool('user_analytics_report', {
timeframe: "last 30 days",
metrics: ["active_users", "new_users", "retention_rate"],
segmentation: "device_type"
});
// Create pie chart for device distribution
await callTool('format_as_chart', {
data: userReport.data,
chartType: "pie",
title: "Users by Device Type"
});
{
"reportType": "sales_report",
"timeframe": "last 30 days",
"summary": {
"revenue": {
"total": 450000,
"average": 15000,
"trend": "increasing"
}
},
"data": [
{
"date": "2024-01-01",
"revenue": 15000,
"orders": 150,
"average_order_value": 100
}
],
"insights": [
{
"type": "positive",
"message": "Revenue is trending upward"
}
]
}
{
"type": "chart",
"chartType": "line",
"title": "Revenue Trend",
"data": [
{ "x": "2024-01-01", "y": 15000, "label": "Jan 1", "value": 15000 }
],
"config": {
"xAxis": { "field": "date", "label": "Date" },
"yAxis": { "field": "revenue", "label": "Revenue" }
}
}
The smart_report_selector
tool uses intelligent keyword matching to automatically select relevant reports:
Each report includes AI-generated suggestions for optimal data presentation:
Easy to add new report types by implementing the report interface:
export class CustomReport {
constructor() {
this.name = 'custom_report';
this.description = 'Your custom report description';
this.inputSchema = { /* schema definition */ };
}
async execute(params) {
// Your report logic
return reportData;
}
}
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the MCP community
FAQs
Comprehensive MCP server for generating various reports with intelligent data presentation
The npm package mcp-reports-server receives a total of 4 weekly downloads. As such, mcp-reports-server popularity was classified as not popular.
We found that mcp-reports-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.